]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
build: 6.7.5 dist build
authorJoe Workman <joe@workmanmail.com>
Tue, 12 Jul 2022 18:46:53 +0000 (11:46 -0700)
committerJoe Workman <joe@workmanmail.com>
Tue, 12 Jul 2022 18:46:53 +0000 (11:46 -0700)
72 files changed:
dist/css/foundation-float.css
dist/css/foundation-float.css.map
dist/css/foundation-float.min.css
dist/css/foundation-float.min.css.map
dist/css/foundation-prototype.css
dist/css/foundation-prototype.css.map
dist/css/foundation-prototype.min.css
dist/css/foundation-prototype.min.css.map
dist/css/foundation-rtl.css
dist/css/foundation-rtl.css.map
dist/css/foundation-rtl.min.css
dist/css/foundation-rtl.min.css.map
dist/css/foundation.css
dist/css/foundation.css.map
dist/css/foundation.min.css
dist/css/foundation.min.css.map
dist/js/foundation.cjs.js
dist/js/foundation.cjs.js.map
dist/js/foundation.es6.js
dist/js/foundation.es6.js.map
dist/js/foundation.esm.js
dist/js/foundation.esm.js.map
dist/js/foundation.js
dist/js/foundation.js.map
dist/js/foundation.min.js
dist/js/foundation.min.js.map
dist/js/plugins/foundation.abide.js
dist/js/plugins/foundation.abide.js.map
dist/js/plugins/foundation.abide.min.js
dist/js/plugins/foundation.abide.min.js.map
dist/js/plugins/foundation.accordion.min.js.map
dist/js/plugins/foundation.accordionMenu.min.js.map
dist/js/plugins/foundation.core.js
dist/js/plugins/foundation.core.js.map
dist/js/plugins/foundation.core.min.js
dist/js/plugins/foundation.core.min.js.map
dist/js/plugins/foundation.drilldown.js
dist/js/plugins/foundation.drilldown.js.map
dist/js/plugins/foundation.drilldown.min.js
dist/js/plugins/foundation.drilldown.min.js.map
dist/js/plugins/foundation.dropdown.min.js.map
dist/js/plugins/foundation.dropdownMenu.min.js.map
dist/js/plugins/foundation.equalizer.min.js.map
dist/js/plugins/foundation.interchange.min.js.map
dist/js/plugins/foundation.magellan.min.js.map
dist/js/plugins/foundation.offcanvas.min.js.map
dist/js/plugins/foundation.orbit.min.js.map
dist/js/plugins/foundation.responsiveAccordionTabs.min.js.map
dist/js/plugins/foundation.responsiveMenu.min.js.map
dist/js/plugins/foundation.responsiveToggle.min.js.map
dist/js/plugins/foundation.reveal.min.js.map
dist/js/plugins/foundation.slider.js
dist/js/plugins/foundation.slider.js.map
dist/js/plugins/foundation.slider.min.js
dist/js/plugins/foundation.slider.min.js.map
dist/js/plugins/foundation.smoothScroll.min.js.map
dist/js/plugins/foundation.sticky.min.js.map
dist/js/plugins/foundation.tabs.min.js.map
dist/js/plugins/foundation.toggler.min.js.map
dist/js/plugins/foundation.tooltip.min.js.map
dist/js/plugins/foundation.util.box.min.js.map
dist/js/plugins/foundation.util.imageLoader.min.js.map
dist/js/plugins/foundation.util.keyboard.min.js.map
dist/js/plugins/foundation.util.mediaQuery.min.js.map
dist/js/plugins/foundation.util.motion.min.js.map
dist/js/plugins/foundation.util.nest.js
dist/js/plugins/foundation.util.nest.js.map
dist/js/plugins/foundation.util.nest.min.js
dist/js/plugins/foundation.util.nest.min.js.map
dist/js/plugins/foundation.util.timer.min.js.map
dist/js/plugins/foundation.util.touch.min.js.map
dist/js/plugins/foundation.util.triggers.min.js.map

index 1cfb8d197e359f3c097b4aa913f9fa17baca5c9c..60733168639720d1ee477c6bff9a979a315d48e4 100644 (file)
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /**
  * Foundation for Sites
- * Version 6.7.4
+ * Version 6.7.5
  * https://get.foundation
  * Licensed under MIT Open Source
  */
@@ -788,8 +788,7 @@ code, .code-inline {
   * {
     background: transparent !important;
     color: black !important;
-    -webkit-print-color-adjust: economy;
-            color-adjust: economy;
+    print-color-adjust: economy;
     -webkit-box-shadow: none !important;
             box-shadow: none !important;
     text-shadow: none !important; }
index d079f39d30e1f769071476b68393ca7cb2cea039..aad13689023e876bab62486d3ed8e4af42e193bc 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["foundation-float.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/grid/_classes.scss","../scss/grid/_row.scss","../scss/grid/_gutter.scss","../scss/grid/_size.scss","../scss/util/_math.scss","../scss/grid/_column.scss","../scss/grid/_position.scss","../scss/grid/_layout.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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lB,gBAH0D,EAAA;;AN2FtD;EM3DN,sBF+EkE,EAAA;;AJ3C9D;EGxFJ,UCmIkE,EAAA;;AJpC1D;EMzEN,kBAAkB;EAClB,SAH0D,EAAA;;ANiFpD;EM/EN,kBAAkB;EAClB,UAH0D,EAAA;;AN2FtD;EM3DN,sBF+EkE,EAAA;;AJ3C9D;EGxFJ,gBCmIkE,EAAA;;AJpC1D;EMzEN,kBAAkB;EAClB,eAH0D,EAAA;;ANiFpD;EM/EN,kBAAkB;EAClB,gBAH0D,EAAA;;AN2FtD;EM3DN,gBF+EkE,EAAA;;AJ3C9D;EGxFJ,gBCmIkE,EAAA;;AJpC1D;EMzEN,kBAAkB;EAClB,eAH0D,EAAA;;ANiFpD;EM/EN,kBAAkB;EAClB,gBAH0D,EAAA;;AN2FtD;EM3DN,sBF+EkE,EAAA;;AJ3C9D;EGxFJ,WCmIkE,EAAA;;AJpB5D;EM3DN,sBF+EkE,EAAA;;AJZ9D;EO/GF,WtBwGuD;EsBvGvD,WAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,UAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,gBAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,UAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,UAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,gBAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,gBAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,YAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeavD;EErHA,gBhB6ES;EgB5ET,ehB4ES,EAAA;;AcwCT;EAII,eAAe;EACf,cAAc,EAAA;;AAIlB;EACE,eAAe;EACf,cAAc,EAAA;;AAGhB;EEnIA,uBAFuC;EAGvC,sBAHuC,EAAA;;AF2IrC;EMjHF,kBAAkB;EAClB,iBAAiB,EAAA;EALjB;IACE,WAAW;IACX,WAAW,EAAA;;AN+HX;EMjHJ,gBAAgB;EAChB,eAAe;EACf,cAAc,EAAA;EAzCZ;IACE,WrB0GqD;IqBzGrD,WAAW,EAAA;EAKX;IACE,YrBoGoD,EAAA;;AHoDpD;EkB7EF;IGxFJ,eCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,cAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,eAH0D,EAAA;EN2FtD;IM3DN,eF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,qBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,WCmIkE,EAAA;EJpB5D;IM3DN,sBF+EkE,EAAA;EJZ9D;IO/GF,WtBwGuD;IsBvGvD,WAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,gBAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,gBAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,gBAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,YAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeavD;IErHA,gBhB6ES;IgB5ET,ehB4ES,EAAA;EcwCT;IAII,eAAe;IACf,cAAc,EAAA;EAIlB;IACE,eAAe;IACf,cAAc,EAAA;EAGhB;IEnIA,wBAFuC;IAGvC,uBAHuC,EAAA;EF2IrC;IMjHF,kBAAkB;IAClB,iBAAiB,EAAA;IALjB;MACE,WAAW;MACX,WAAW,EAAA;EN+HX;IMjHJ,gBAAgB;IAChB,eAAe;IACf,cAAc,EAAA;IAzCZ;MACE,WrB0GqD;MqBzGrD,WAAW,EAAA;IAKX;MACE,YrBoGoD,EAAA,EqBnGrD;;AxBuJC;EkB7EF;IGxFJ,eCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,cAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,eAH0D,EAAA;EN2FtD;IM3DN,eF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,qBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,WCmIkE,EAAA;EJpB5D;IM3DN,sBF+EkE,EAAA;EJZ9D;IO/GF,WtBwGuD;IsBvGvD,WAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;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","file":"foundation-float.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap;\n  display: table-cell;\n  vertical-align: middle; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  width: 1%;\n  height: 100%; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  width: 1%;\n  height: 100%; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    height: 2.4375rem;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\n.input-group .input-group-button {\n  display: table-cell; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.row {\n  max-width: 75rem;\n  margin-right: auto;\n  margin-left: auto; }\n  .row::before, .row::after {\n    display: table;\n    content: ' '; }\n  .row::after {\n    clear: both; }\n  .row.collapse > .column, .row.collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .row .row {\n    margin-right: -0.625rem;\n    margin-left: -0.625rem; }\n    @media print, screen and (min-width: 40em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    @media print, screen and (min-width: 64em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    .row .row.collapse {\n      margin-right: 0;\n      margin-left: 0; }\n  .row.expanded {\n    max-width: none; }\n    .row.expanded .row {\n      margin-right: auto;\n      margin-left: auto; }\n  .row:not(.expanded) .row {\n    max-width: none; }\n  .row.gutter-small > .column, .row.gutter-small > .columns {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem; }\n  .row.gutter-medium > .column, .row.gutter-medium > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n\n.column, .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  width: 100%;\n  float: left; }\n  @media print, screen and (min-width: 40em) {\n    .column, .columns {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: right; }\n  .column.end:last-child:last-child, .end.columns:last-child:last-child {\n    float: left; }\n\n.column.row.row, .row.row.columns {\n  float: none; }\n\n.row .column.row.row, .row .row.row.columns {\n  margin-right: 0;\n  margin-left: 0;\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-1 {\n  width: 8.33333%; }\n\n.small-push-1 {\n  position: relative;\n  left: 8.33333%; }\n\n.small-pull-1 {\n  position: relative;\n  left: -8.33333%; }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.small-2 {\n  width: 16.66667%; }\n\n.small-push-2 {\n  position: relative;\n  left: 16.66667%; }\n\n.small-pull-2 {\n  position: relative;\n  left: -16.66667%; }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.small-3 {\n  width: 25%; }\n\n.small-push-3 {\n  position: relative;\n  left: 25%; }\n\n.small-pull-3 {\n  position: relative;\n  left: -25%; }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.small-4 {\n  width: 33.33333%; }\n\n.small-push-4 {\n  position: relative;\n  left: 33.33333%; }\n\n.small-pull-4 {\n  position: relative;\n  left: -33.33333%; }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.small-5 {\n  width: 41.66667%; }\n\n.small-push-5 {\n  position: relative;\n  left: 41.66667%; }\n\n.small-pull-5 {\n  position: relative;\n  left: -41.66667%; }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.small-6 {\n  width: 50%; }\n\n.small-push-6 {\n  position: relative;\n  left: 50%; }\n\n.small-pull-6 {\n  position: relative;\n  left: -50%; }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.small-7 {\n  width: 58.33333%; }\n\n.small-push-7 {\n  position: relative;\n  left: 58.33333%; }\n\n.small-pull-7 {\n  position: relative;\n  left: -58.33333%; }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.small-8 {\n  width: 66.66667%; }\n\n.small-push-8 {\n  position: relative;\n  left: 66.66667%; }\n\n.small-pull-8 {\n  position: relative;\n  left: -66.66667%; }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.small-9 {\n  width: 75%; }\n\n.small-push-9 {\n  position: relative;\n  left: 75%; }\n\n.small-pull-9 {\n  position: relative;\n  left: -75%; }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.small-10 {\n  width: 83.33333%; }\n\n.small-push-10 {\n  position: relative;\n  left: 83.33333%; }\n\n.small-pull-10 {\n  position: relative;\n  left: -83.33333%; }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.small-11 {\n  width: 91.66667%; }\n\n.small-push-11 {\n  position: relative;\n  left: 91.66667%; }\n\n.small-pull-11 {\n  position: relative;\n  left: -91.66667%; }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.small-12 {\n  width: 100%; }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.small-up-1 > .column, .small-up-1 > .columns {\n  float: left;\n  width: 100%; }\n  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {\n    clear: both; }\n  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {\n    float: left; }\n\n.small-up-2 > .column, .small-up-2 > .columns {\n  float: left;\n  width: 50%; }\n  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {\n    clear: both; }\n  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {\n    float: left; }\n\n.small-up-3 > .column, .small-up-3 > .columns {\n  float: left;\n  width: 33.33333%; }\n  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {\n    clear: both; }\n  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {\n    float: left; }\n\n.small-up-4 > .column, .small-up-4 > .columns {\n  float: left;\n  width: 25%; }\n  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {\n    clear: both; }\n  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {\n    float: left; }\n\n.small-up-5 > .column, .small-up-5 > .columns {\n  float: left;\n  width: 20%; }\n  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {\n    clear: both; }\n  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {\n    float: left; }\n\n.small-up-6 > .column, .small-up-6 > .columns {\n  float: left;\n  width: 16.66667%; }\n  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {\n    clear: both; }\n  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {\n    float: left; }\n\n.small-up-7 > .column, .small-up-7 > .columns {\n  float: left;\n  width: 14.28571%; }\n  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {\n    clear: both; }\n  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {\n    float: left; }\n\n.small-up-8 > .column, .small-up-8 > .columns {\n  float: left;\n  width: 12.5%; }\n  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {\n    clear: both; }\n  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {\n    float: left; }\n\n.small-collapse > .column, .small-collapse > .columns {\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-collapse .row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.expanded.row .small-collapse.row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.small-uncollapse > .column, .small-uncollapse > .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n\n.small-centered {\n  margin-right: auto;\n  margin-left: auto; }\n  .small-centered, .small-centered:last-child:not(:first-child) {\n    float: none;\n    clear: both; }\n\n.small-uncentered, .small-push-0, .small-pull-0 {\n  position: static;\n  margin-right: 0;\n  margin-left: 0; }\n  .small-uncentered, .small-uncentered:last-child:not(:first-child), .small-push-0, .small-push-0:last-child:not(:first-child), .small-pull-0, .small-pull-0:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .small-uncentered:last-child:not(:first-child), .small-push-0:last-child:not(:first-child), .small-pull-0:last-child:not(:first-child) {\n    float: right; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-1 {\n    width: 8.33333%; }\n  .medium-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .medium-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .medium-2 {\n    width: 16.66667%; }\n  .medium-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .medium-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .medium-3 {\n    width: 25%; }\n  .medium-push-3 {\n    position: relative;\n    left: 25%; }\n  .medium-pull-3 {\n    position: relative;\n    left: -25%; }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .medium-4 {\n    width: 33.33333%; }\n  .medium-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .medium-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .medium-5 {\n    width: 41.66667%; }\n  .medium-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .medium-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .medium-6 {\n    width: 50%; }\n  .medium-push-6 {\n    position: relative;\n    left: 50%; }\n  .medium-pull-6 {\n    position: relative;\n    left: -50%; }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .medium-7 {\n    width: 58.33333%; }\n  .medium-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .medium-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .medium-8 {\n    width: 66.66667%; }\n  .medium-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .medium-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .medium-9 {\n    width: 75%; }\n  .medium-push-9 {\n    position: relative;\n    left: 75%; }\n  .medium-pull-9 {\n    position: relative;\n    left: -75%; }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .medium-10 {\n    width: 83.33333%; }\n  .medium-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .medium-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .medium-11 {\n    width: 91.66667%; }\n  .medium-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .medium-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .medium-12 {\n    width: 100%; }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .medium-up-1 > .column, .medium-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {\n      float: left; }\n  .medium-up-2 > .column, .medium-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {\n      float: left; }\n  .medium-up-3 > .column, .medium-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {\n      float: left; }\n  .medium-up-4 > .column, .medium-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {\n      float: left; }\n  .medium-up-5 > .column, .medium-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {\n      float: left; }\n  .medium-up-6 > .column, .medium-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {\n      float: left; }\n  .medium-up-7 > .column, .medium-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {\n      float: left; }\n  .medium-up-8 > .column, .medium-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {\n      float: left; }\n  .medium-collapse > .column, .medium-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .medium-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .medium-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .medium-uncollapse > .column, .medium-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .medium-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .medium-centered, .medium-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .medium-uncentered, .medium-push-0, .medium-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-uncentered, .medium-uncentered:last-child:not(:first-child), .medium-push-0, .medium-push-0:last-child:not(:first-child), .medium-pull-0, .medium-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .medium-uncentered:last-child:not(:first-child), .medium-push-0:last-child:not(:first-child), .medium-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-1 {\n    width: 8.33333%; }\n  .large-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .large-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .large-offset-0 {\n    margin-left: 0%; }\n  .large-2 {\n    width: 16.66667%; }\n  .large-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .large-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .large-3 {\n    width: 25%; }\n  .large-push-3 {\n    position: relative;\n    left: 25%; }\n  .large-pull-3 {\n    position: relative;\n    left: -25%; }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .large-4 {\n    width: 33.33333%; }\n  .large-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .large-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .large-5 {\n    width: 41.66667%; }\n  .large-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .large-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .large-6 {\n    width: 50%; }\n  .large-push-6 {\n    position: relative;\n    left: 50%; }\n  .large-pull-6 {\n    position: relative;\n    left: -50%; }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .large-7 {\n    width: 58.33333%; }\n  .large-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .large-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .large-8 {\n    width: 66.66667%; }\n  .large-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .large-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .large-9 {\n    width: 75%; }\n  .large-push-9 {\n    position: relative;\n    left: 75%; }\n  .large-pull-9 {\n    position: relative;\n    left: -75%; }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .large-10 {\n    width: 83.33333%; }\n  .large-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .large-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .large-11 {\n    width: 91.66667%; }\n  .large-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .large-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .large-12 {\n    width: 100%; }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .large-up-1 > .column, .large-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {\n      float: left; }\n  .large-up-2 > .column, .large-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {\n      float: left; }\n  .large-up-3 > .column, .large-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {\n      float: left; }\n  .large-up-4 > .column, .large-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {\n      float: left; }\n  .large-up-5 > .column, .large-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {\n      float: left; }\n  .large-up-6 > .column, .large-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {\n      float: left; }\n  .large-up-7 > .column, .large-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {\n      float: left; }\n  .large-up-8 > .column, .large-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {\n      float: left; }\n  .large-collapse > .column, .large-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .large-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .large-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .large-uncollapse > .column, .large-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .large-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .large-centered, .large-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .large-uncentered, .large-push-0, .large-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .large-uncentered, .large-uncentered:last-child:not(:first-child), .large-push-0, .large-push-0:last-child:not(:first-child), .large-pull-0, .large-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .large-uncentered:last-child:not(:first-child), .large-push-0:last-child:not(:first-child), .large-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n.column-block {\n  margin-bottom: 1.25rem; }\n  .column-block > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .column-block {\n      margin-bottom: 1.875rem; }\n      .column-block > :last-child {\n        margin-bottom: 0; } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  font-size: 0; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' '; }\n  .button-group::after {\n    clear: both; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded {\n    margin-right: -1px; }\n    .button-group.expanded::before, .button-group.expanded::after {\n      display: none; }\n    .button-group.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n    width: 100%; }\n    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n      margin-bottom: 0; }\n  .button-group.stacked.expanded, .button-group.stacked-for-small.expanded, .button-group.stacked-for-medium.expanded {\n    margin-right: -1px; }\n    .button-group.stacked.expanded::before, .button-group.stacked.expanded::after, .button-group.stacked-for-small.expanded::before, .button-group.stacked-for-small.expanded::after, .button-group.stacked-for-medium.expanded::before, .button-group.stacked-for-medium.expanded::after {\n      display: none; }\n    .button-group.stacked.expanded .button:first-child:last-child, .button-group.stacked-for-small.expanded .button:first-child:last-child, .button-group.stacked-for-medium.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(2), .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(3), .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(4), .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(5), .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(6), .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' '; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' '; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: block;\n  margin-bottom: 1rem; }\n  .media-object img {\n    max-width: none; }\n\n.media-object-section {\n  display: table-cell;\n  vertical-align: top; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      display: block; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.middle {\n    vertical-align: middle; }\n  .media-object-section.bottom {\n    vertical-align: bottom; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' '; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu li, .menu.horizontal li {\n    display: inline-block; }\n  .menu.vertical li {\n    display: block; }\n  .menu.expanded {\n    display: table;\n    width: 100%; }\n    .menu.expanded > li {\n      display: table-cell;\n      vertical-align: middle; }\n  .menu.simple li + li {\n    margin-left: 1rem; }\n  .menu.simple a {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal li {\n      display: inline-block; }\n    .menu.medium-vertical li {\n      display: block; }\n    .menu.medium-expanded {\n      display: table;\n      width: 100%; }\n      .menu.medium-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.medium-simple {\n      display: table;\n      width: 100%; }\n      .menu.medium-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal li {\n      display: inline-block; }\n    .menu.large-vertical li {\n      display: block; }\n    .menu.large-expanded {\n      display: table;\n      width: 100%; }\n      .menu.large-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.large-simple {\n      display: table;\n      width: 100%; }\n      .menu.large-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons img,\n  .menu.icons i,\n  .menu.icons svg {\n    vertical-align: middle; }\n    .menu.icons img + span,\n    .menu.icons i + span,\n    .menu.icons svg + span {\n      vertical-align: middle; }\n  .menu.icon-top img,\n  .menu.icon-top i,\n  .menu.icon-top svg, .menu.icon-right img,\n  .menu.icon-right i,\n  .menu.icon-right svg, .menu.icon-bottom img,\n  .menu.icon-bottom i,\n  .menu.icon-bottom svg, .menu.icon-left img,\n  .menu.icon-left i,\n  .menu.icon-left svg {\n    vertical-align: middle; }\n    .menu.icon-top img + span,\n    .menu.icon-top i + span,\n    .menu.icon-top svg + span, .menu.icon-right img + span,\n    .menu.icon-right i + span,\n    .menu.icon-right svg + span, .menu.icon-bottom img + span,\n    .menu.icon-bottom i + span,\n    .menu.icon-bottom svg + span, .menu.icon-left img + span,\n    .menu.icon-left i + span,\n    .menu.icon-left svg + span {\n      vertical-align: middle; }\n  .menu.icon-left li a img,\n  .menu.icon-left li a i,\n  .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n  .menu.nested.icon-left li a i,\n  .menu.nested.icon-left li a svg {\n    margin-right: 0.25rem;\n    display: inline-block; }\n  .menu.icon-right li a img,\n  .menu.icon-right li a i,\n  .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n  .menu.nested.icon-right li a i,\n  .menu.nested.icon-right li a svg {\n    margin-left: 0.25rem;\n    display: inline-block; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    text-align: center; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      display: block;\n      margin: 0 auto 0.25rem; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    text-align: center; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      display: block;\n      margin: 0.25rem auto 0; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    text-align: left; }\n  .menu.align-right {\n    text-align: right; }\n    .menu.align-right .submenu li {\n      text-align: left; }\n    .menu.align-right.vertical .submenu li {\n      text-align: right; }\n    .menu.align-right .nested {\n      margin-right: 1rem;\n      margin-left: 0; }\n  .menu.align-center {\n    text-align: center; }\n    .menu.align-center .submenu li {\n      text-align: left; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  text-align: center; }\n  .menu-centered > .menu .submenu li {\n    text-align: left; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column, .reveal .columns {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe; }\n  .title-bar::before, .title-bar::after {\n    display: table;\n    content: ' '; }\n  .title-bar::after {\n    clear: both; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left {\n  float: left; }\n\n.title-bar-right {\n  float: right;\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  padding: 0.5rem; }\n  .top-bar::before, .top-bar::after {\n    display: table;\n    content: ' '; }\n  .top-bar::after {\n    clear: both; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar .top-bar-left,\n    .top-bar .top-bar-right {\n      width: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium .top-bar-left,\n    .top-bar.stacked-for-medium .top-bar-right {\n      width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large .top-bar-left,\n    .top-bar.stacked-for-large .top-bar-right {\n      width: 100%; } }\n\n.top-bar-title {\n  display: inline-block;\n  float: left;\n  padding: 0.5rem 1rem 0.5rem 0; }\n  .top-bar-title .menu-icon {\n    bottom: 2px; }\n\n.top-bar-left {\n  float: left; }\n\n.top-bar-right {\n  float: right; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' '; }\n\n.clearfix::after {\n  clear: both; }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Outputs CSS classes for the grid.\n/// @access private\n@mixin foundation-grid(\n  $row: 'row',\n  $column: 'column',\n  $column-row: 'column-row',\n  $gutter: 'gutter',\n  $push: 'push',\n  $pull: 'pull',\n  $center: 'centered',\n  $uncenter: 'uncentered',\n  $collapse: 'collapse',\n  $uncollapse: 'uncollapse',\n  $offset: 'offset',\n  $end: 'end',\n  $expanded: 'expanded',\n  $block: 'block'\n) {\n  // Row\n  .#{$row} {\n    @include grid-row;\n\n    // Collapsing\n    &.#{$collapse} {\n      > .#{$column} {\n        @include grid-col-collapse;\n      }\n    }\n\n    // Nesting\n    & .#{$row} {\n      @include grid-row-nest($grid-column-gutter);\n\n      &.#{$collapse} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    // Expanded (full-width) row\n    &.#{$expanded} {\n      @include grid-row-size(expand);\n\n      .#{$row} {\n        margin-right: auto;\n        margin-left: auto;\n      }\n    }\n\n    &:not(.#{$expanded}) .#{$row} {\n      @include grid-row-size(expand);\n    }\n\n    @if type-of($grid-column-gutter) == 'map' {\n      // Static (unresponsive) row gutters\n      //\n      @each $breakpoint, $value in $grid-column-gutter {\n        &.#{$gutter}-#{$breakpoint} {\n          > .#{$column} {\n            @include grid-col-gutter($value);\n          }\n        }\n      }\n    }\n  }\n\n  // Column\n  .#{$column} {\n    @include grid-col;\n\n    @if $grid-column-align-edge {\n      &.#{$end} {\n        @include grid-col-end;\n      }\n    }\n  }\n\n  // Column row\n  // The double .row class is needed to bump up the specificity\n  .#{$column}.#{$row}.#{$row} {\n    float: none;\n  }\n\n  // To properly nest a column row, padding and margin is removed\n  .#{$row} .#{$column}.#{$row}.#{$row} {\n    margin-right: 0;\n    margin-left: 0;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-column-count {\n      // Column width\n      .#{$-zf-size}-#{$i} {\n        @include grid-col-size($i);\n      }\n\n      // Source ordering\n      @if $i < $grid-column-count {\n        @if $push {\n          .#{$-zf-size}-#{$push}-#{$i} {\n            @include grid-col-pos($i);\n          }\n        }\n\n        @if $pull {\n          .#{$-zf-size}-#{$pull}-#{$i} {\n            @include grid-col-pos(-$i);\n          }\n        }\n      }\n\n      // Offsets\n      $o: $i - 1;\n\n      @if $offset {\n        .#{$-zf-size}-#{$offset}-#{$o} {\n          @include grid-col-off($o);\n        }\n      }\n    }\n\n    // Block grid\n    @for $i from 1 through $block-grid-max {\n      .#{$-zf-size}-up-#{$i} {\n        @include grid-layout($i, '.#{$column}');\n      }\n    }\n\n    // Responsive collapsing\n    .#{$-zf-size}-#{$collapse} {\n      > .#{$column} { @include grid-col-collapse; }\n\n      .#{$row} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    .#{$expanded}.#{$row} .#{$-zf-size}-#{$collapse}.#{$row} {\n      margin-right: 0;\n      margin-left: 0;\n    }\n\n    .#{$-zf-size}-#{$uncollapse} {\n      > .#{$column} { @include grid-col-gutter($-zf-size); }\n    }\n\n    // Positioning\n    @if $center {\n      .#{$-zf-size}-#{$center} {\n        @include grid-col-pos(center);\n      }\n    }\n\n    // Gutter adjustment\n    $-gutter-unpos-selector: (\n      if($uncenter, '.#{$-zf-size}-#{$uncenter}', null),\n      if($push, '.#{$-zf-size}-#{$push}-0', null),\n      if($pull, '.#{$-zf-size}-#{$pull}-0', null),\n    );\n    @if ($uncenter or $push or $pull) {\n      #{$-gutter-unpos-selector} {\n        @include grid-col-unpos;\n      }\n    }\n  }\n\n  // Block grid columns\n  .#{$column}-#{$block} {\n    @include grid-column-margin;\n  }\n\n  @if $column == 'column' and has-value($grid-column-alias) {\n    .#{$grid-column-alias} {\n      // sass-lint:disable-block placeholder-in-extend\n      @extend .column;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Change the behavior of columns defined inside this mixin to use a different column count.\n/// @content\n///\n/// @param {Number} $columns - Number of columns to use.\n/// @param {Boolean} $root [false]\n///   If `false`, selectors inside this mixin will nest inside the parent selector.\n///   If `true`, selectors will not nest.\n@mixin grid-context(\n  $columns,\n  $root: false\n) {\n  // Store the current column count so it can be re-set later\n  $old-grid-column-count: $grid-column-count;\n  $grid-column-count: $columns !global;\n\n  @if $root {\n    @at-root { @content; }\n  }\n  @else {\n    @content;\n  }\n\n  // Restore the old column count\n  $grid-column-count: $old-grid-column-count !global;\n}\n\n/// Creates a grid row.\n/// @content\n///\n/// @param {Number} $columns [null] - Column count for this row. `null` will use the default column count.\n/// @param {Keywords} $behavior [null]\n///   Modifications to the default grid styles. `nest` indicates the row will be placed inside another row. `collapse` indicates that the columns inside this row will not have padding. `nest collapse` combines both behaviors.\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n/// @param {Boolean} $cf [true] - Whether or not to include a clearfix.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row(\n  $columns: null,\n  $behavior: null,\n  $size: $grid-row-width,\n  $cf: true,\n  $gutters: $grid-column-gutter\n) {\n  $margin: auto;\n\n  @if index($behavior, nest) != null {\n    @include grid-row-nest($gutters);\n\n    @if index($behavior, collapse) != null {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n  @else {\n    @include grid-row-size($size);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @if $cf {\n    @include clearfix;\n  }\n\n  @if $columns != null {\n    @include grid-context($columns) {\n      @content;\n    }\n  }\n}\n\n/// Inverts the margins of a row to nest it inside of a column.\n///\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row-nest($gutters: $grid-column-gutter) {\n  @include -zf-each-breakpoint {\n    $margin: rem-calc(-zf-get-bp-val($gutters, $-zf-size)) * 0.5 * -1;\n\n    margin-right: $margin;\n    margin-left: $margin;\n  }\n}\n\n/// Set a grid row size\n///\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n@mixin grid-row-size($size: $grid-row-width) {\n  @if $size == expand {\n    $size: none;\n  }\n\n  max-width: $size;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the gutters on a column\n/// @param {Number|Keyword} $gutter [auto]\n///   Spacing between columns, accepts multiple values:\n///   - A single value will make the gutter that exact size.\n///   - A breakpoint name will make the gutter the corresponding size in the $gutters map.\n///   - \"auto\" will make the gutter responsive, using the $gutters map values.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($gutter, $gutters) {\n    $padding: rem-calc($-zf-bp-value) * 0.5;\n\n    padding-right: $padding;\n    padding-left: $padding;\n  }\n}\n\n/// Collapse the gutters on a column by removing the padding. **Note:** only use this mixin within a breakpoint. To collapse a column's gutters on all screen sizes, use the `$gutter` parameter of the `grid-column()` mixin instead.\n@mixin grid-column-collapse {\n  @include grid-column-gutter(0);\n}\n\n/// Shorthand for `grid-column-gutter()`.\n/// @alias grid-column-gutter\n@mixin grid-col-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-gutter($gutter, $gutters);\n}\n\n/// Shorthand for `grid-column-collapse()`.\n/// @alias grid-column-collapse\n@mixin grid-col-collapse {\n  @include grid-column-collapse;\n}\n\n/// Sets bottom margin on grid columns to match gutters\n/// @param {Number|Keyword} $margin [auto]\n///   The bottom margin on grid columns, accepts multiple values:\n///   - A single value will make the margin that exact size.\n///   - A breakpoint name will make the margin the corresponding size in the $margins map.\n///   - \"auto\" will make the margin responsive, using the $margins map values.\n/// @param {Number|Map} $margins [$grid-column-gutter] - Map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-margin (\n  $margin: auto,\n  $margins: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($margin, $margins) {\n    $margin-bottom: rem-calc($-zf-bp-value);\n    margin-bottom: $margin-bottom;\n\n    > :last-child {\n      margin-bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the width of a grid column.\n///\n/// @param {Number|List} $width [$grid-column-count] - Width to make the column. You can pass in any value accepted by the `grid-column()` function, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-size(\n  $columns: $grid-column-count\n) {\n  width: grid-column($columns);\n}\n\n/// Shorthand for `grid-column-size()`.\n/// @alias grid-column-size\n@mixin grid-col-size(\n  $columns: $grid-column-count\n) {\n  @include grid-column-size($columns);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Calculates the width of a column based on a number of factors.\n///\n/// @param {Number|List} $columns\n///   Width of the column. Accepts multiple values:\n///   - A percentage value will make the column that exact size.\n///   - A single digit will make the column span that number of columns wide, taking into account the column count of the parent row.\n///   - A list of the format \"x of y\" (without quotes) will make a column that is *x* columns wide, assuming *y* total columns for the parent.\n///\n/// @returns {Number} A calculated percentage value.\n@function grid-column($columns) {\n  @return fraction-to-percentage($columns, $denominator: $grid-column-count);\n}\n\n/// Creates a grid column.\n///\n/// @param {Mixed} $columns [$grid-column-count] - Width of the column. Refer to the `grid-column()` function to see possible values.\n/// @param {Mixed} $gutters [$grid-column-gutter] - Spacing between columns. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  // Gutters\n  @include grid-column-gutter($gutters: $gutters);\n  // Position\n  @include grid-col-pos(auto);\n\n  @include grid-column-size($columns);\n  float: $global-left;\n}\n\n/// Creates a grid column row. This is the equivalent of adding `.row` and `.column` to the same element.\n///\n/// @param {Mixed} $gutters [$grid-column-gutter] - Width of the gutters on either side of the column row. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-row;\n  @include grid-column($gutters: $gutters);\n\n  &,\n  &:last-child {\n    float: none;\n  }\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@function grid-col(\n  $columns: $grid-column-count\n) {\n  @return grid-column($columns);\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@mixin grid-col(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column($columns, $gutters);\n}\n\n/// Shorthand for `grid-column-row()`.\n/// @alias grid-column-row\n@mixin grid-col-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-row($gutters);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Reposition a column.\n///\n/// @param {Number|Keyword} $position - It can be:\n///   * A number: The column will move equal to the width of the column count\n///     specified. A positive number will push the column to the right, while\n///     a negative number will pull it to the left.\n///   * `center`: Column will be centered\n///   * `auto`: Column will be pushed to the left (or to the right for the last column).\n@mixin grid-column-position($position) {\n  // Auto positioning\n  @if $position == auto {\n    &, &:last-child:not(:first-child) {\n      float: $global-left;\n      clear: none;\n    }\n\n    // Last column alignment\n    @if $grid-column-align-edge {\n      &:last-child:not(:first-child) {\n        float: $global-right;\n      }\n    }\n  }\n\n  // Push/pull\n  @else if type-of($position) == 'number' {\n    $offset: percentage(divide($position, $grid-column-count));\n\n    position: relative;\n    #{$global-left}: $offset;\n  }\n\n  // Center positioning\n  @else if $position == center {\n    &, &:last-child:not(:first-child) {\n      float: none;\n      clear: both;\n    }\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @else {\n    @warn 'Wrong syntax for grid-column-position(). Enter a positive or negative number, \"center\" or \"auto\".';\n  }\n}\n\n/// Reset a position definition.\n@mixin grid-column-unposition {\n  @include grid-column-position(auto);\n  position: static;\n  margin-right: 0;\n  margin-left: 0;\n}\n\n/// Offsets a column to the right by `$n` columns.\n/// @param {Number|List} $n - Width to offset by. You can pass in any value accepted by the `grid-column()` mixin, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-offset($n) {\n  margin-#{$global-left}: grid-column($n);\n}\n\n/// Disable the default behavior of the last column in a row aligning to the opposite edge.\n@mixin grid-column-end {\n  // This extra specificity is required for the property to be applied\n  &:last-child:last-child {\n    float: $global-left;\n  }\n}\n\n/// Shorthand for `grid-column-position()`.\n/// @alias grid-column-position\n@mixin grid-col-pos($position) {\n  @include grid-column-position($position);\n}\n\n/// Shorthand for `grid-column-unposition()`.\n/// @alias grid-column-unposition\n@mixin grid-col-unpos {\n  @include grid-column-unposition;\n}\n\n/// Shorthand for `grid-column-offset()`.\n/// @alias grid-column-offset\n@mixin grid-col-off($n) {\n  @include grid-column-offset($n);\n}\n\n/// Shorthand for `grid-column-end()`.\n/// @alias grid-column-end\n@mixin grid-col-end {\n  @include grid-column-end;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.column'] - Selector(s) to use for child elements.\n/// @param {Number|List} $gutter\n///   The gutter to apply to child elements. Accepts multiple values:\n///   - $grid-column-gutter will use the values in the $grid-column-gutter map, including breakpoint sizes.\n///   - A fixed numeric value will apply this gutter to all breakpoints.\n@mixin grid-layout(\n  $n,\n  $selector: '.column',\n  $gutter: null\n) {\n  & > #{$selector} {\n    float: $global-left;\n    width: percentage(divide(1, $n));\n\n    // If a $gutter value is passed\n    @if($gutter) {\n      // Gutters\n      @if type-of($gutter) == 'map' {\n        @each $breakpoint, $value in $gutter {\n          $padding: rem-calc($value) * 0.5;\n\n          @include breakpoint($breakpoint) {\n            padding-right: $padding;\n            padding-left: $padding;\n          }\n        }\n      }\n      @else if type-of($gutter) == 'number' and strip-unit($gutter) > 0 {\n        $padding: rem-calc($gutter) * 0.5;\n        padding-right: $padding;\n        padding-left: $padding;\n      }\n    }\n\n    &:nth-of-type(1n) {\n      clear: none;\n    }\n\n    &:nth-of-type(#{$n}n+1) {\n      clear: both;\n    }\n\n    &:last-child {\n      float: $global-left;\n    }\n  }\n}\n\n/// Adds extra CSS to block grid children so the last items in the row center automatically. Apply this to the columns, not the row.\n///\n/// @param {Number} $n - Number of items that appear in each row.\n@mixin grid-layout-center-last($n) {\n  @for $i from 1 to $n {\n    @if $i == 1 {\n      &:nth-child(#{$n}n+1):last-child {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n    @else {\n      &:nth-child(#{$n}n+1):nth-last-child(#{$i}) {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["foundation-float.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/grid/_classes.scss","../scss/grid/_row.scss","../scss/grid/_gutter.scss","../scss/grid/_size.scss","../scss/util/_math.scss","../scss/grid/_column.scss","../scss/grid/_position.scss","../scss/grid/_layout.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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D,EAAA;;AN2FtD;EM3DN,sBF+EkE,EAAA;;AJ3C9D;EGxFJ,UCmIkE,EAAA;;AJpC1D;EMzEN,kBAAkB;EAClB,SAH0D,EAAA;;ANiFpD;EM/EN,kBAAkB;EAClB,UAH0D,EAAA;;AN2FtD;EM3DN,sBF+EkE,EAAA;;AJ3C9D;EGxFJ,gBCmIkE,EAAA;;AJpC1D;EMzEN,kBAAkB;EAClB,eAH0D,EAAA;;ANiFpD;EM/EN,kBAAkB;EAClB,gBAH0D,EAAA;;AN2FtD;EM3DN,gBF+EkE,EAAA;;AJ3C9D;EGxFJ,gBCmIkE,EAAA;;AJpC1D;EMzEN,kBAAkB;EAClB,eAH0D,EAAA;;ANiFpD;EM/EN,kBAAkB;EAClB,gBAH0D,EAAA;;AN2FtD;EM3DN,sBF+EkE,EAAA;;AJ3C9D;EGxFJ,WCmIkE,EAAA;;AJpB5D;EM3DN,sBF+EkE,EAAA;;AJZ9D;EO/GF,WtBwGuD;EsBvGvD,WAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,UAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,gBAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,UAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,UAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,gBAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,gBAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeOrD;EO/GF,WtBwGuD;EsBvGvD,YAAgC,EAAA;EP8G9B;IOvFA,WAAW,EAAA;EPuFX;IOnFA,WAAW,EAAA;EPmFX;IO/EA,WtBwEqD,EAAA;;AeavD;EErHA,gBhB6ES;EgB5ET,ehB4ES,EAAA;;AcwCT;EAII,eAAe;EACf,cAAc,EAAA;;AAIlB;EACE,eAAe;EACf,cAAc,EAAA;;AAGhB;EEnIA,uBAFuC;EAGvC,sBAHuC,EAAA;;AF2IrC;EMjHF,kBAAkB;EAClB,iBAAiB,EAAA;EALjB;IACE,WAAW;IACX,WAAW,EAAA;;AN+HX;EMjHJ,gBAAgB;EAChB,eAAe;EACf,cAAc,EAAA;EAzCZ;IACE,WrB0GqD;IqBzGrD,WAAW,EAAA;EAKX;IACE,YrBoGoD,EAAA;;AHoDpD;EkB7EF;IGxFJ,eCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,cAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,eAH0D,EAAA;EN2FtD;IM3DN,eF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,qBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,WCmIkE,EAAA;EJpB5D;IM3DN,sBF+EkE,EAAA;EJZ9D;IO/GF,WtBwGuD;IsBvGvD,WAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,gBAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,gBAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,gBAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,YAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeavD;IErHA,gBhB6ES;IgB5ET,ehB4ES,EAAA;EcwCT;IAII,eAAe;IACf,cAAc,EAAA;EAIlB;IACE,eAAe;IACf,cAAc,EAAA;EAGhB;IEnIA,wBAFuC;IAGvC,uBAHuC,EAAA;EF2IrC;IMjHF,kBAAkB;IAClB,iBAAiB,EAAA;IALjB;MACE,WAAW;MACX,WAAW,EAAA;EN+HX;IMjHJ,gBAAgB;IAChB,eAAe;IACf,cAAc,EAAA;IAzCZ;MACE,WrB0GqD;MqBzGrD,WAAW,EAAA;IAKX;MACE,YrBoGoD,EAAA,EqBnGrD;;AxBuJC;EkB7EF;IGxFJ,eCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,cAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,eAH0D,EAAA;EN2FtD;IM3DN,eF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,qBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,UCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,SAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,UAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,gBF+EkE,EAAA;EJ3C9D;IGxFJ,gBCmIkE,EAAA;EJpC1D;IMzEN,kBAAkB;IAClB,eAH0D,EAAA;ENiFpD;IM/EN,kBAAkB;IAClB,gBAH0D,EAAA;EN2FtD;IM3DN,sBF+EkE,EAAA;EJ3C9D;IGxFJ,WCmIkE,EAAA;EJpB5D;IM3DN,sBF+EkE,EAAA;EJZ9D;IO/GF,WtBwGuD;IsBvGvD,WAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,WtBwGuD;IsBvGvD,UAAgC,EAAA;IP8G9B;MOvFA,WAAW,EAAA;IPuFX;MOnFA,WAAW,EAAA;IPmFX;MO/EA,WtBwEqD,EAAA;EeOrD;IO/GF,Wt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","file":"foundation-float.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap;\n  display: table-cell;\n  vertical-align: middle; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  width: 1%;\n  height: 100%; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  width: 1%;\n  height: 100%; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    height: 2.4375rem;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\n.input-group .input-group-button {\n  display: table-cell; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.row {\n  max-width: 75rem;\n  margin-right: auto;\n  margin-left: auto; }\n  .row::before, .row::after {\n    display: table;\n    content: ' '; }\n  .row::after {\n    clear: both; }\n  .row.collapse > .column, .row.collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .row .row {\n    margin-right: -0.625rem;\n    margin-left: -0.625rem; }\n    @media print, screen and (min-width: 40em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    @media print, screen and (min-width: 64em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    .row .row.collapse {\n      margin-right: 0;\n      margin-left: 0; }\n  .row.expanded {\n    max-width: none; }\n    .row.expanded .row {\n      margin-right: auto;\n      margin-left: auto; }\n  .row:not(.expanded) .row {\n    max-width: none; }\n  .row.gutter-small > .column, .row.gutter-small > .columns {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem; }\n  .row.gutter-medium > .column, .row.gutter-medium > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n\n.column, .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  width: 100%;\n  float: left; }\n  @media print, screen and (min-width: 40em) {\n    .column, .columns {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: right; }\n  .column.end:last-child:last-child, .end.columns:last-child:last-child {\n    float: left; }\n\n.column.row.row, .row.row.columns {\n  float: none; }\n\n.row .column.row.row, .row .row.row.columns {\n  margin-right: 0;\n  margin-left: 0;\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-1 {\n  width: 8.33333%; }\n\n.small-push-1 {\n  position: relative;\n  left: 8.33333%; }\n\n.small-pull-1 {\n  position: relative;\n  left: -8.33333%; }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.small-2 {\n  width: 16.66667%; }\n\n.small-push-2 {\n  position: relative;\n  left: 16.66667%; }\n\n.small-pull-2 {\n  position: relative;\n  left: -16.66667%; }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.small-3 {\n  width: 25%; }\n\n.small-push-3 {\n  position: relative;\n  left: 25%; }\n\n.small-pull-3 {\n  position: relative;\n  left: -25%; }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.small-4 {\n  width: 33.33333%; }\n\n.small-push-4 {\n  position: relative;\n  left: 33.33333%; }\n\n.small-pull-4 {\n  position: relative;\n  left: -33.33333%; }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.small-5 {\n  width: 41.66667%; }\n\n.small-push-5 {\n  position: relative;\n  left: 41.66667%; }\n\n.small-pull-5 {\n  position: relative;\n  left: -41.66667%; }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.small-6 {\n  width: 50%; }\n\n.small-push-6 {\n  position: relative;\n  left: 50%; }\n\n.small-pull-6 {\n  position: relative;\n  left: -50%; }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.small-7 {\n  width: 58.33333%; }\n\n.small-push-7 {\n  position: relative;\n  left: 58.33333%; }\n\n.small-pull-7 {\n  position: relative;\n  left: -58.33333%; }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.small-8 {\n  width: 66.66667%; }\n\n.small-push-8 {\n  position: relative;\n  left: 66.66667%; }\n\n.small-pull-8 {\n  position: relative;\n  left: -66.66667%; }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.small-9 {\n  width: 75%; }\n\n.small-push-9 {\n  position: relative;\n  left: 75%; }\n\n.small-pull-9 {\n  position: relative;\n  left: -75%; }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.small-10 {\n  width: 83.33333%; }\n\n.small-push-10 {\n  position: relative;\n  left: 83.33333%; }\n\n.small-pull-10 {\n  position: relative;\n  left: -83.33333%; }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.small-11 {\n  width: 91.66667%; }\n\n.small-push-11 {\n  position: relative;\n  left: 91.66667%; }\n\n.small-pull-11 {\n  position: relative;\n  left: -91.66667%; }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.small-12 {\n  width: 100%; }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.small-up-1 > .column, .small-up-1 > .columns {\n  float: left;\n  width: 100%; }\n  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {\n    clear: both; }\n  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {\n    float: left; }\n\n.small-up-2 > .column, .small-up-2 > .columns {\n  float: left;\n  width: 50%; }\n  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {\n    clear: both; }\n  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {\n    float: left; }\n\n.small-up-3 > .column, .small-up-3 > .columns {\n  float: left;\n  width: 33.33333%; }\n  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {\n    clear: both; }\n  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {\n    float: left; }\n\n.small-up-4 > .column, .small-up-4 > .columns {\n  float: left;\n  width: 25%; }\n  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {\n    clear: both; }\n  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {\n    float: left; }\n\n.small-up-5 > .column, .small-up-5 > .columns {\n  float: left;\n  width: 20%; }\n  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {\n    clear: both; }\n  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {\n    float: left; }\n\n.small-up-6 > .column, .small-up-6 > .columns {\n  float: left;\n  width: 16.66667%; }\n  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {\n    clear: both; }\n  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {\n    float: left; }\n\n.small-up-7 > .column, .small-up-7 > .columns {\n  float: left;\n  width: 14.28571%; }\n  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {\n    clear: both; }\n  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {\n    float: left; }\n\n.small-up-8 > .column, .small-up-8 > .columns {\n  float: left;\n  width: 12.5%; }\n  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {\n    clear: both; }\n  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {\n    float: left; }\n\n.small-collapse > .column, .small-collapse > .columns {\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-collapse .row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.expanded.row .small-collapse.row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.small-uncollapse > .column, .small-uncollapse > .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n\n.small-centered {\n  margin-right: auto;\n  margin-left: auto; }\n  .small-centered, .small-centered:last-child:not(:first-child) {\n    float: none;\n    clear: both; }\n\n.small-uncentered, .small-push-0, .small-pull-0 {\n  position: static;\n  margin-right: 0;\n  margin-left: 0; }\n  .small-uncentered, .small-uncentered:last-child:not(:first-child), .small-push-0, .small-push-0:last-child:not(:first-child), .small-pull-0, .small-pull-0:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .small-uncentered:last-child:not(:first-child), .small-push-0:last-child:not(:first-child), .small-pull-0:last-child:not(:first-child) {\n    float: right; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-1 {\n    width: 8.33333%; }\n  .medium-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .medium-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .medium-2 {\n    width: 16.66667%; }\n  .medium-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .medium-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .medium-3 {\n    width: 25%; }\n  .medium-push-3 {\n    position: relative;\n    left: 25%; }\n  .medium-pull-3 {\n    position: relative;\n    left: -25%; }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .medium-4 {\n    width: 33.33333%; }\n  .medium-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .medium-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .medium-5 {\n    width: 41.66667%; }\n  .medium-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .medium-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .medium-6 {\n    width: 50%; }\n  .medium-push-6 {\n    position: relative;\n    left: 50%; }\n  .medium-pull-6 {\n    position: relative;\n    left: -50%; }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .medium-7 {\n    width: 58.33333%; }\n  .medium-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .medium-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .medium-8 {\n    width: 66.66667%; }\n  .medium-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .medium-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .medium-9 {\n    width: 75%; }\n  .medium-push-9 {\n    position: relative;\n    left: 75%; }\n  .medium-pull-9 {\n    position: relative;\n    left: -75%; }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .medium-10 {\n    width: 83.33333%; }\n  .medium-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .medium-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .medium-11 {\n    width: 91.66667%; }\n  .medium-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .medium-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .medium-12 {\n    width: 100%; }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .medium-up-1 > .column, .medium-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {\n      float: left; }\n  .medium-up-2 > .column, .medium-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {\n      float: left; }\n  .medium-up-3 > .column, .medium-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {\n      float: left; }\n  .medium-up-4 > .column, .medium-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {\n      float: left; }\n  .medium-up-5 > .column, .medium-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {\n      float: left; }\n  .medium-up-6 > .column, .medium-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {\n      float: left; }\n  .medium-up-7 > .column, .medium-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {\n      float: left; }\n  .medium-up-8 > .column, .medium-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {\n      float: left; }\n  .medium-collapse > .column, .medium-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .medium-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .medium-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .medium-uncollapse > .column, .medium-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .medium-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .medium-centered, .medium-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .medium-uncentered, .medium-push-0, .medium-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-uncentered, .medium-uncentered:last-child:not(:first-child), .medium-push-0, .medium-push-0:last-child:not(:first-child), .medium-pull-0, .medium-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .medium-uncentered:last-child:not(:first-child), .medium-push-0:last-child:not(:first-child), .medium-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-1 {\n    width: 8.33333%; }\n  .large-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .large-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .large-offset-0 {\n    margin-left: 0%; }\n  .large-2 {\n    width: 16.66667%; }\n  .large-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .large-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .large-3 {\n    width: 25%; }\n  .large-push-3 {\n    position: relative;\n    left: 25%; }\n  .large-pull-3 {\n    position: relative;\n    left: -25%; }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .large-4 {\n    width: 33.33333%; }\n  .large-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .large-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .large-5 {\n    width: 41.66667%; }\n  .large-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .large-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .large-6 {\n    width: 50%; }\n  .large-push-6 {\n    position: relative;\n    left: 50%; }\n  .large-pull-6 {\n    position: relative;\n    left: -50%; }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .large-7 {\n    width: 58.33333%; }\n  .large-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .large-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .large-8 {\n    width: 66.66667%; }\n  .large-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .large-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .large-9 {\n    width: 75%; }\n  .large-push-9 {\n    position: relative;\n    left: 75%; }\n  .large-pull-9 {\n    position: relative;\n    left: -75%; }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .large-10 {\n    width: 83.33333%; }\n  .large-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .large-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .large-11 {\n    width: 91.66667%; }\n  .large-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .large-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .large-12 {\n    width: 100%; }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .large-up-1 > .column, .large-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {\n      float: left; }\n  .large-up-2 > .column, .large-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {\n      float: left; }\n  .large-up-3 > .column, .large-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {\n      float: left; }\n  .large-up-4 > .column, .large-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {\n      float: left; }\n  .large-up-5 > .column, .large-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {\n      float: left; }\n  .large-up-6 > .column, .large-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {\n      float: left; }\n  .large-up-7 > .column, .large-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {\n      float: left; }\n  .large-up-8 > .column, .large-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {\n      float: left; }\n  .large-collapse > .column, .large-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .large-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .large-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .large-uncollapse > .column, .large-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .large-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .large-centered, .large-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .large-uncentered, .large-push-0, .large-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .large-uncentered, .large-uncentered:last-child:not(:first-child), .large-push-0, .large-push-0:last-child:not(:first-child), .large-pull-0, .large-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .large-uncentered:last-child:not(:first-child), .large-push-0:last-child:not(:first-child), .large-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n.column-block {\n  margin-bottom: 1.25rem; }\n  .column-block > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .column-block {\n      margin-bottom: 1.875rem; }\n      .column-block > :last-child {\n        margin-bottom: 0; } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  font-size: 0; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' '; }\n  .button-group::after {\n    clear: both; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded {\n    margin-right: -1px; }\n    .button-group.expanded::before, .button-group.expanded::after {\n      display: none; }\n    .button-group.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n    width: 100%; }\n    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n      margin-bottom: 0; }\n  .button-group.stacked.expanded, .button-group.stacked-for-small.expanded, .button-group.stacked-for-medium.expanded {\n    margin-right: -1px; }\n    .button-group.stacked.expanded::before, .button-group.stacked.expanded::after, .button-group.stacked-for-small.expanded::before, .button-group.stacked-for-small.expanded::after, .button-group.stacked-for-medium.expanded::before, .button-group.stacked-for-medium.expanded::after {\n      display: none; }\n    .button-group.stacked.expanded .button:first-child:last-child, .button-group.stacked-for-small.expanded .button:first-child:last-child, .button-group.stacked-for-medium.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(2), .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(3), .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(4), .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(5), .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(6), .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' '; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' '; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: block;\n  margin-bottom: 1rem; }\n  .media-object img {\n    max-width: none; }\n\n.media-object-section {\n  display: table-cell;\n  vertical-align: top; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      display: block; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.middle {\n    vertical-align: middle; }\n  .media-object-section.bottom {\n    vertical-align: bottom; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' '; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu li, .menu.horizontal li {\n    display: inline-block; }\n  .menu.vertical li {\n    display: block; }\n  .menu.expanded {\n    display: table;\n    width: 100%; }\n    .menu.expanded > li {\n      display: table-cell;\n      vertical-align: middle; }\n  .menu.simple li + li {\n    margin-left: 1rem; }\n  .menu.simple a {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal li {\n      display: inline-block; }\n    .menu.medium-vertical li {\n      display: block; }\n    .menu.medium-expanded {\n      display: table;\n      width: 100%; }\n      .menu.medium-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.medium-simple {\n      display: table;\n      width: 100%; }\n      .menu.medium-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal li {\n      display: inline-block; }\n    .menu.large-vertical li {\n      display: block; }\n    .menu.large-expanded {\n      display: table;\n      width: 100%; }\n      .menu.large-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.large-simple {\n      display: table;\n      width: 100%; }\n      .menu.large-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons img,\n  .menu.icons i,\n  .menu.icons svg {\n    vertical-align: middle; }\n    .menu.icons img + span,\n    .menu.icons i + span,\n    .menu.icons svg + span {\n      vertical-align: middle; }\n  .menu.icon-top img,\n  .menu.icon-top i,\n  .menu.icon-top svg, .menu.icon-right img,\n  .menu.icon-right i,\n  .menu.icon-right svg, .menu.icon-bottom img,\n  .menu.icon-bottom i,\n  .menu.icon-bottom svg, .menu.icon-left img,\n  .menu.icon-left i,\n  .menu.icon-left svg {\n    vertical-align: middle; }\n    .menu.icon-top img + span,\n    .menu.icon-top i + span,\n    .menu.icon-top svg + span, .menu.icon-right img + span,\n    .menu.icon-right i + span,\n    .menu.icon-right svg + span, .menu.icon-bottom img + span,\n    .menu.icon-bottom i + span,\n    .menu.icon-bottom svg + span, .menu.icon-left img + span,\n    .menu.icon-left i + span,\n    .menu.icon-left svg + span {\n      vertical-align: middle; }\n  .menu.icon-left li a img,\n  .menu.icon-left li a i,\n  .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n  .menu.nested.icon-left li a i,\n  .menu.nested.icon-left li a svg {\n    margin-right: 0.25rem;\n    display: inline-block; }\n  .menu.icon-right li a img,\n  .menu.icon-right li a i,\n  .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n  .menu.nested.icon-right li a i,\n  .menu.nested.icon-right li a svg {\n    margin-left: 0.25rem;\n    display: inline-block; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    text-align: center; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      display: block;\n      margin: 0 auto 0.25rem; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    text-align: center; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      display: block;\n      margin: 0.25rem auto 0; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    text-align: left; }\n  .menu.align-right {\n    text-align: right; }\n    .menu.align-right .submenu li {\n      text-align: left; }\n    .menu.align-right.vertical .submenu li {\n      text-align: right; }\n    .menu.align-right .nested {\n      margin-right: 1rem;\n      margin-left: 0; }\n  .menu.align-center {\n    text-align: center; }\n    .menu.align-center .submenu li {\n      text-align: left; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  text-align: center; }\n  .menu-centered > .menu .submenu li {\n    text-align: left; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column, .reveal .columns {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe; }\n  .title-bar::before, .title-bar::after {\n    display: table;\n    content: ' '; }\n  .title-bar::after {\n    clear: both; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left {\n  float: left; }\n\n.title-bar-right {\n  float: right;\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  padding: 0.5rem; }\n  .top-bar::before, .top-bar::after {\n    display: table;\n    content: ' '; }\n  .top-bar::after {\n    clear: both; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar .top-bar-left,\n    .top-bar .top-bar-right {\n      width: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium .top-bar-left,\n    .top-bar.stacked-for-medium .top-bar-right {\n      width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large .top-bar-left,\n    .top-bar.stacked-for-large .top-bar-right {\n      width: 100%; } }\n\n.top-bar-title {\n  display: inline-block;\n  float: left;\n  padding: 0.5rem 1rem 0.5rem 0; }\n  .top-bar-title .menu-icon {\n    bottom: 2px; }\n\n.top-bar-left {\n  float: left; }\n\n.top-bar-right {\n  float: right; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' '; }\n\n.clearfix::after {\n  clear: both; }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Outputs CSS classes for the grid.\n/// @access private\n@mixin foundation-grid(\n  $row: 'row',\n  $column: 'column',\n  $column-row: 'column-row',\n  $gutter: 'gutter',\n  $push: 'push',\n  $pull: 'pull',\n  $center: 'centered',\n  $uncenter: 'uncentered',\n  $collapse: 'collapse',\n  $uncollapse: 'uncollapse',\n  $offset: 'offset',\n  $end: 'end',\n  $expanded: 'expanded',\n  $block: 'block'\n) {\n  // Row\n  .#{$row} {\n    @include grid-row;\n\n    // Collapsing\n    &.#{$collapse} {\n      > .#{$column} {\n        @include grid-col-collapse;\n      }\n    }\n\n    // Nesting\n    & .#{$row} {\n      @include grid-row-nest($grid-column-gutter);\n\n      &.#{$collapse} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    // Expanded (full-width) row\n    &.#{$expanded} {\n      @include grid-row-size(expand);\n\n      .#{$row} {\n        margin-right: auto;\n        margin-left: auto;\n      }\n    }\n\n    &:not(.#{$expanded}) .#{$row} {\n      @include grid-row-size(expand);\n    }\n\n    @if type-of($grid-column-gutter) == 'map' {\n      // Static (unresponsive) row gutters\n      //\n      @each $breakpoint, $value in $grid-column-gutter {\n        &.#{$gutter}-#{$breakpoint} {\n          > .#{$column} {\n            @include grid-col-gutter($value);\n          }\n        }\n      }\n    }\n  }\n\n  // Column\n  .#{$column} {\n    @include grid-col;\n\n    @if $grid-column-align-edge {\n      &.#{$end} {\n        @include grid-col-end;\n      }\n    }\n  }\n\n  // Column row\n  // The double .row class is needed to bump up the specificity\n  .#{$column}.#{$row}.#{$row} {\n    float: none;\n  }\n\n  // To properly nest a column row, padding and margin is removed\n  .#{$row} .#{$column}.#{$row}.#{$row} {\n    margin-right: 0;\n    margin-left: 0;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-column-count {\n      // Column width\n      .#{$-zf-size}-#{$i} {\n        @include grid-col-size($i);\n      }\n\n      // Source ordering\n      @if $i < $grid-column-count {\n        @if $push {\n          .#{$-zf-size}-#{$push}-#{$i} {\n            @include grid-col-pos($i);\n          }\n        }\n\n        @if $pull {\n          .#{$-zf-size}-#{$pull}-#{$i} {\n            @include grid-col-pos(-$i);\n          }\n        }\n      }\n\n      // Offsets\n      $o: $i - 1;\n\n      @if $offset {\n        .#{$-zf-size}-#{$offset}-#{$o} {\n          @include grid-col-off($o);\n        }\n      }\n    }\n\n    // Block grid\n    @for $i from 1 through $block-grid-max {\n      .#{$-zf-size}-up-#{$i} {\n        @include grid-layout($i, '.#{$column}');\n      }\n    }\n\n    // Responsive collapsing\n    .#{$-zf-size}-#{$collapse} {\n      > .#{$column} { @include grid-col-collapse; }\n\n      .#{$row} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    .#{$expanded}.#{$row} .#{$-zf-size}-#{$collapse}.#{$row} {\n      margin-right: 0;\n      margin-left: 0;\n    }\n\n    .#{$-zf-size}-#{$uncollapse} {\n      > .#{$column} { @include grid-col-gutter($-zf-size); }\n    }\n\n    // Positioning\n    @if $center {\n      .#{$-zf-size}-#{$center} {\n        @include grid-col-pos(center);\n      }\n    }\n\n    // Gutter adjustment\n    $-gutter-unpos-selector: (\n      if($uncenter, '.#{$-zf-size}-#{$uncenter}', null),\n      if($push, '.#{$-zf-size}-#{$push}-0', null),\n      if($pull, '.#{$-zf-size}-#{$pull}-0', null),\n    );\n    @if ($uncenter or $push or $pull) {\n      #{$-gutter-unpos-selector} {\n        @include grid-col-unpos;\n      }\n    }\n  }\n\n  // Block grid columns\n  .#{$column}-#{$block} {\n    @include grid-column-margin;\n  }\n\n  @if $column == 'column' and has-value($grid-column-alias) {\n    .#{$grid-column-alias} {\n      // sass-lint:disable-block placeholder-in-extend\n      @extend .column;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Change the behavior of columns defined inside this mixin to use a different column count.\n/// @content\n///\n/// @param {Number} $columns - Number of columns to use.\n/// @param {Boolean} $root [false]\n///   If `false`, selectors inside this mixin will nest inside the parent selector.\n///   If `true`, selectors will not nest.\n@mixin grid-context(\n  $columns,\n  $root: false\n) {\n  // Store the current column count so it can be re-set later\n  $old-grid-column-count: $grid-column-count;\n  $grid-column-count: $columns !global;\n\n  @if $root {\n    @at-root { @content; }\n  }\n  @else {\n    @content;\n  }\n\n  // Restore the old column count\n  $grid-column-count: $old-grid-column-count !global;\n}\n\n/// Creates a grid row.\n/// @content\n///\n/// @param {Number} $columns [null] - Column count for this row. `null` will use the default column count.\n/// @param {Keywords} $behavior [null]\n///   Modifications to the default grid styles. `nest` indicates the row will be placed inside another row. `collapse` indicates that the columns inside this row will not have padding. `nest collapse` combines both behaviors.\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n/// @param {Boolean} $cf [true] - Whether or not to include a clearfix.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row(\n  $columns: null,\n  $behavior: null,\n  $size: $grid-row-width,\n  $cf: true,\n  $gutters: $grid-column-gutter\n) {\n  $margin: auto;\n\n  @if index($behavior, nest) != null {\n    @include grid-row-nest($gutters);\n\n    @if index($behavior, collapse) != null {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n  @else {\n    @include grid-row-size($size);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @if $cf {\n    @include clearfix;\n  }\n\n  @if $columns != null {\n    @include grid-context($columns) {\n      @content;\n    }\n  }\n}\n\n/// Inverts the margins of a row to nest it inside of a column.\n///\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row-nest($gutters: $grid-column-gutter) {\n  @include -zf-each-breakpoint {\n    $margin: rem-calc(-zf-get-bp-val($gutters, $-zf-size)) * 0.5 * -1;\n\n    margin-right: $margin;\n    margin-left: $margin;\n  }\n}\n\n/// Set a grid row size\n///\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n@mixin grid-row-size($size: $grid-row-width) {\n  @if $size == expand {\n    $size: none;\n  }\n\n  max-width: $size;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the gutters on a column\n/// @param {Number|Keyword} $gutter [auto]\n///   Spacing between columns, accepts multiple values:\n///   - A single value will make the gutter that exact size.\n///   - A breakpoint name will make the gutter the corresponding size in the $gutters map.\n///   - \"auto\" will make the gutter responsive, using the $gutters map values.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($gutter, $gutters) {\n    $padding: rem-calc($-zf-bp-value) * 0.5;\n\n    padding-right: $padding;\n    padding-left: $padding;\n  }\n}\n\n/// Collapse the gutters on a column by removing the padding. **Note:** only use this mixin within a breakpoint. To collapse a column's gutters on all screen sizes, use the `$gutter` parameter of the `grid-column()` mixin instead.\n@mixin grid-column-collapse {\n  @include grid-column-gutter(0);\n}\n\n/// Shorthand for `grid-column-gutter()`.\n/// @alias grid-column-gutter\n@mixin grid-col-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-gutter($gutter, $gutters);\n}\n\n/// Shorthand for `grid-column-collapse()`.\n/// @alias grid-column-collapse\n@mixin grid-col-collapse {\n  @include grid-column-collapse;\n}\n\n/// Sets bottom margin on grid columns to match gutters\n/// @param {Number|Keyword} $margin [auto]\n///   The bottom margin on grid columns, accepts multiple values:\n///   - A single value will make the margin that exact size.\n///   - A breakpoint name will make the margin the corresponding size in the $margins map.\n///   - \"auto\" will make the margin responsive, using the $margins map values.\n/// @param {Number|Map} $margins [$grid-column-gutter] - Map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-margin (\n  $margin: auto,\n  $margins: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($margin, $margins) {\n    $margin-bottom: rem-calc($-zf-bp-value);\n    margin-bottom: $margin-bottom;\n\n    > :last-child {\n      margin-bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the width of a grid column.\n///\n/// @param {Number|List} $width [$grid-column-count] - Width to make the column. You can pass in any value accepted by the `grid-column()` function, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-size(\n  $columns: $grid-column-count\n) {\n  width: grid-column($columns);\n}\n\n/// Shorthand for `grid-column-size()`.\n/// @alias grid-column-size\n@mixin grid-col-size(\n  $columns: $grid-column-count\n) {\n  @include grid-column-size($columns);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Calculates the width of a column based on a number of factors.\n///\n/// @param {Number|List} $columns\n///   Width of the column. Accepts multiple values:\n///   - A percentage value will make the column that exact size.\n///   - A single digit will make the column span that number of columns wide, taking into account the column count of the parent row.\n///   - A list of the format \"x of y\" (without quotes) will make a column that is *x* columns wide, assuming *y* total columns for the parent.\n///\n/// @returns {Number} A calculated percentage value.\n@function grid-column($columns) {\n  @return fraction-to-percentage($columns, $denominator: $grid-column-count);\n}\n\n/// Creates a grid column.\n///\n/// @param {Mixed} $columns [$grid-column-count] - Width of the column. Refer to the `grid-column()` function to see possible values.\n/// @param {Mixed} $gutters [$grid-column-gutter] - Spacing between columns. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  // Gutters\n  @include grid-column-gutter($gutters: $gutters);\n  // Position\n  @include grid-col-pos(auto);\n\n  @include grid-column-size($columns);\n  float: $global-left;\n}\n\n/// Creates a grid column row. This is the equivalent of adding `.row` and `.column` to the same element.\n///\n/// @param {Mixed} $gutters [$grid-column-gutter] - Width of the gutters on either side of the column row. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-row;\n  @include grid-column($gutters: $gutters);\n\n  &,\n  &:last-child {\n    float: none;\n  }\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@function grid-col(\n  $columns: $grid-column-count\n) {\n  @return grid-column($columns);\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@mixin grid-col(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column($columns, $gutters);\n}\n\n/// Shorthand for `grid-column-row()`.\n/// @alias grid-column-row\n@mixin grid-col-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-row($gutters);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Reposition a column.\n///\n/// @param {Number|Keyword} $position - It can be:\n///   * A number: The column will move equal to the width of the column count\n///     specified. A positive number will push the column to the right, while\n///     a negative number will pull it to the left.\n///   * `center`: Column will be centered\n///   * `auto`: Column will be pushed to the left (or to the right for the last column).\n@mixin grid-column-position($position) {\n  // Auto positioning\n  @if $position == auto {\n    &, &:last-child:not(:first-child) {\n      float: $global-left;\n      clear: none;\n    }\n\n    // Last column alignment\n    @if $grid-column-align-edge {\n      &:last-child:not(:first-child) {\n        float: $global-right;\n      }\n    }\n  }\n\n  // Push/pull\n  @else if type-of($position) == 'number' {\n    $offset: percentage(divide($position, $grid-column-count));\n\n    position: relative;\n    #{$global-left}: $offset;\n  }\n\n  // Center positioning\n  @else if $position == center {\n    &, &:last-child:not(:first-child) {\n      float: none;\n      clear: both;\n    }\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @else {\n    @warn 'Wrong syntax for grid-column-position(). Enter a positive or negative number, \"center\" or \"auto\".';\n  }\n}\n\n/// Reset a position definition.\n@mixin grid-column-unposition {\n  @include grid-column-position(auto);\n  position: static;\n  margin-right: 0;\n  margin-left: 0;\n}\n\n/// Offsets a column to the right by `$n` columns.\n/// @param {Number|List} $n - Width to offset by. You can pass in any value accepted by the `grid-column()` mixin, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-offset($n) {\n  margin-#{$global-left}: grid-column($n);\n}\n\n/// Disable the default behavior of the last column in a row aligning to the opposite edge.\n@mixin grid-column-end {\n  // This extra specificity is required for the property to be applied\n  &:last-child:last-child {\n    float: $global-left;\n  }\n}\n\n/// Shorthand for `grid-column-position()`.\n/// @alias grid-column-position\n@mixin grid-col-pos($position) {\n  @include grid-column-position($position);\n}\n\n/// Shorthand for `grid-column-unposition()`.\n/// @alias grid-column-unposition\n@mixin grid-col-unpos {\n  @include grid-column-unposition;\n}\n\n/// Shorthand for `grid-column-offset()`.\n/// @alias grid-column-offset\n@mixin grid-col-off($n) {\n  @include grid-column-offset($n);\n}\n\n/// Shorthand for `grid-column-end()`.\n/// @alias grid-column-end\n@mixin grid-col-end {\n  @include grid-column-end;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.column'] - Selector(s) to use for child elements.\n/// @param {Number|List} $gutter\n///   The gutter to apply to child elements. Accepts multiple values:\n///   - $grid-column-gutter will use the values in the $grid-column-gutter map, including breakpoint sizes.\n///   - A fixed numeric value will apply this gutter to all breakpoints.\n@mixin grid-layout(\n  $n,\n  $selector: '.column',\n  $gutter: null\n) {\n  & > #{$selector} {\n    float: $global-left;\n    width: percentage(divide(1, $n));\n\n    // If a $gutter value is passed\n    @if($gutter) {\n      // Gutters\n      @if type-of($gutter) == 'map' {\n        @each $breakpoint, $value in $gutter {\n          $padding: rem-calc($value) * 0.5;\n\n          @include breakpoint($breakpoint) {\n            padding-right: $padding;\n            padding-left: $padding;\n          }\n        }\n      }\n      @else if type-of($gutter) == 'number' and strip-unit($gutter) > 0 {\n        $padding: rem-calc($gutter) * 0.5;\n        padding-right: $padding;\n        padding-left: $padding;\n      }\n    }\n\n    &:nth-of-type(1n) {\n      clear: none;\n    }\n\n    &:nth-of-type(#{$n}n+1) {\n      clear: both;\n    }\n\n    &:last-child {\n      float: $global-left;\n    }\n  }\n}\n\n/// Adds extra CSS to block grid children so the last items in the row center automatically. Apply this to the columns, not the row.\n///\n/// @param {Number} $n - Number of items that appear in each row.\n@mixin grid-layout-center-last($n) {\n  @for $i from 1 to $n {\n    @if $i == 1 {\n      &:nth-child(#{$n}n+1):last-child {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n    @else {\n      &:nth-child(#{$n}n+1):nth-last-child(#{$i}) {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
index e32837bacd256e8c3d5e1fdd7b53a5adb080de38..4126656561e6c9a41d740c17fcb3d06e2f101100 100644 (file)
@@ -1,2 +1,2 @@
-@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap;display:table-cell;vertical-align:middle}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;width:1%;height:100%}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;width:1%;height:100%}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{height:2.4375rem;padding-top:0;padding-bottom:0;font-size:1rem}.input-group .input-group-button{display:table-cell}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.row{max-width:75rem;margin-right:auto;margin-left:auto}.row::after,.row::before{display:table;content:' '}.row::after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-right:0;padding-left:0}.row .row{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:64em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}.row .row.collapse{margin-right:0;margin-left:0}.row.expanded{max-width:none}.row.expanded .row{margin-right:auto;margin-left:auto}.row:not(.expanded) .row{max-width:none}.row.gutter-small>.column,.row.gutter-small>.columns{padding-right:.625rem;padding-left:.625rem}.row.gutter-medium>.column,.row.gutter-medium>.columns{padding-right:.9375rem;padding-left:.9375rem}.column,.columns{padding-right:.625rem;padding-left:.625rem;width:100%;float:left}@media print,screen and (min-width:40em){.column,.columns{padding-right:.9375rem;padding-left:.9375rem}}.column,.column:last-child:not(:first-child),.columns,.columns:last-child:not(:first-child){float:left;clear:none}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:right}.column.end:last-child:last-child,.end.columns:last-child:last-child{float:left}.column.row.row,.row.row.columns{float:none}.row .column.row.row,.row .row.row.columns{margin-right:0;margin-left:0;padding-right:0;padding-left:0}.small-1{width:8.33333%}.small-push-1{position:relative;left:8.33333%}.small-pull-1{position:relative;left:-8.33333%}.small-offset-0{margin-left:0}.small-2{width:16.66667%}.small-push-2{position:relative;left:16.66667%}.small-pull-2{position:relative;left:-16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{width:25%}.small-push-3{position:relative;left:25%}.small-pull-3{position:relative;left:-25%}.small-offset-2{margin-left:16.66667%}.small-4{width:33.33333%}.small-push-4{position:relative;left:33.33333%}.small-pull-4{position:relative;left:-33.33333%}.small-offset-3{margin-left:25%}.small-5{width:41.66667%}.small-push-5{position:relative;left:41.66667%}.small-pull-5{position:relative;left:-41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{position:relative;left:-50%}.small-offset-5{margin-left:41.66667%}.small-7{width:58.33333%}.small-push-7{position:relative;left:58.33333%}.small-pull-7{position:relative;left:-58.33333%}.small-offset-6{margin-left:50%}.small-8{width:66.66667%}.small-push-8{position:relative;left:66.66667%}.small-pull-8{position:relative;left:-66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{width:75%}.small-push-9{position:relative;left:75%}.small-pull-9{position:relative;left:-75%}.small-offset-8{margin-left:66.66667%}.small-10{width:83.33333%}.small-push-10{position:relative;left:83.33333%}.small-pull-10{position:relative;left:-83.33333%}.small-offset-9{margin-left:75%}.small-11{width:91.66667%}.small-push-11{position:relative;left:91.66667%}.small-pull-11{position:relative;left:-91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1>.column,.small-up-1>.columns{float:left;width:100%}.small-up-1>.column:nth-of-type(1n),.small-up-1>.columns:nth-of-type(1n){clear:none}.small-up-1>.column:nth-of-type(1n+1),.small-up-1>.columns:nth-of-type(1n+1){clear:both}.small-up-1>.column:last-child,.small-up-1>.columns:last-child{float:left}.small-up-2>.column,.small-up-2>.columns{float:left;width:50%}.small-up-2>.column:nth-of-type(1n),.small-up-2>.columns:nth-of-type(1n){clear:none}.small-up-2>.column:nth-of-type(2n+1),.small-up-2>.columns:nth-of-type(2n+1){clear:both}.small-up-2>.column:last-child,.small-up-2>.columns:last-child{float:left}.small-up-3>.column,.small-up-3>.columns{float:left;width:33.33333%}.small-up-3>.column:nth-of-type(1n),.small-up-3>.columns:nth-of-type(1n){clear:none}.small-up-3>.column:nth-of-type(3n+1),.small-up-3>.columns:nth-of-type(3n+1){clear:both}.small-up-3>.column:last-child,.small-up-3>.columns:last-child{float:left}.small-up-4>.column,.small-up-4>.columns{float:left;width:25%}.small-up-4>.column:nth-of-type(1n),.small-up-4>.columns:nth-of-type(1n){clear:none}.small-up-4>.column:nth-of-type(4n+1),.small-up-4>.columns:nth-of-type(4n+1){clear:both}.small-up-4>.column:last-child,.small-up-4>.columns:last-child{float:left}.small-up-5>.column,.small-up-5>.columns{float:left;width:20%}.small-up-5>.column:nth-of-type(1n),.small-up-5>.columns:nth-of-type(1n){clear:none}.small-up-5>.column:nth-of-type(5n+1),.small-up-5>.columns:nth-of-type(5n+1){clear:both}.small-up-5>.column:last-child,.small-up-5>.columns:last-child{float:left}.small-up-6>.column,.small-up-6>.columns{float:left;width:16.66667%}.small-up-6>.column:nth-of-type(1n),.small-up-6>.columns:nth-of-type(1n){clear:none}.small-up-6>.column:nth-of-type(6n+1),.small-up-6>.columns:nth-of-type(6n+1){clear:both}.small-up-6>.column:last-child,.small-up-6>.columns:last-child{float:left}.small-up-7>.column,.small-up-7>.columns{float:left;width:14.28571%}.small-up-7>.column:nth-of-type(1n),.small-up-7>.columns:nth-of-type(1n){clear:none}.small-up-7>.column:nth-of-type(7n+1),.small-up-7>.columns:nth-of-type(7n+1){clear:both}.small-up-7>.column:last-child,.small-up-7>.columns:last-child{float:left}.small-up-8>.column,.small-up-8>.columns{float:left;width:12.5%}.small-up-8>.column:nth-of-type(1n),.small-up-8>.columns:nth-of-type(1n){clear:none}.small-up-8>.column:nth-of-type(8n+1),.small-up-8>.columns:nth-of-type(8n+1){clear:both}.small-up-8>.column:last-child,.small-up-8>.columns:last-child{float:left}.small-collapse>.column,.small-collapse>.columns{padding-right:0;padding-left:0}.small-collapse .row{margin-right:0;margin-left:0}.expanded.row .small-collapse.row{margin-right:0;margin-left:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-right:.625rem;padding-left:.625rem}.small-centered{margin-right:auto;margin-left:auto}.small-centered,.small-centered:last-child:not(:first-child){float:none;clear:both}.small-pull-0,.small-push-0,.small-uncentered{position:static;margin-right:0;margin-left:0}.small-pull-0,.small-pull-0:last-child:not(:first-child),.small-push-0,.small-push-0:last-child:not(:first-child),.small-uncentered,.small-uncentered:last-child:not(:first-child){float:left;clear:none}.small-pull-0:last-child:not(:first-child),.small-push-0:last-child:not(:first-child),.small-uncentered:last-child:not(:first-child){float:right}@media print,screen and (min-width:40em){.medium-1{width:8.33333%}.medium-push-1{position:relative;left:8.33333%}.medium-pull-1{position:relative;left:-8.33333%}.medium-offset-0{margin-left:0}.medium-2{width:16.66667%}.medium-push-2{position:relative;left:16.66667%}.medium-pull-2{position:relative;left:-16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{width:25%}.medium-push-3{position:relative;left:25%}.medium-pull-3{position:relative;left:-25%}.medium-offset-2{margin-left:16.66667%}.medium-4{width:33.33333%}.medium-push-4{position:relative;left:33.33333%}.medium-pull-4{position:relative;left:-33.33333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.66667%}.medium-push-5{position:relative;left:41.66667%}.medium-pull-5{position:relative;left:-41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{position:relative;left:-50%}.medium-offset-5{margin-left:41.66667%}.medium-7{width:58.33333%}.medium-push-7{position:relative;left:58.33333%}.medium-pull-7{position:relative;left:-58.33333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.66667%}.medium-push-8{position:relative;left:66.66667%}.medium-pull-8{position:relative;left:-66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{width:75%}.medium-push-9{position:relative;left:75%}.medium-pull-9{position:relative;left:-75%}.medium-offset-8{margin-left:66.66667%}.medium-10{width:83.33333%}.medium-push-10{position:relative;left:83.33333%}.medium-pull-10{position:relative;left:-83.33333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.66667%}.medium-push-11{position:relative;left:91.66667%}.medium-pull-11{position:relative;left:-91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1>.column,.medium-up-1>.columns{float:left;width:100%}.medium-up-1>.column:nth-of-type(1n),.medium-up-1>.columns:nth-of-type(1n){clear:none}.medium-up-1>.column:nth-of-type(1n+1),.medium-up-1>.columns:nth-of-type(1n+1){clear:both}.medium-up-1>.column:last-child,.medium-up-1>.columns:last-child{float:left}.medium-up-2>.column,.medium-up-2>.columns{float:left;width:50%}.medium-up-2>.column:nth-of-type(1n),.medium-up-2>.columns:nth-of-type(1n){clear:none}.medium-up-2>.column:nth-of-type(2n+1),.medium-up-2>.columns:nth-of-type(2n+1){clear:both}.medium-up-2>.column:last-child,.medium-up-2>.columns:last-child{float:left}.medium-up-3>.column,.medium-up-3>.columns{float:left;width:33.33333%}.medium-up-3>.column:nth-of-type(1n),.medium-up-3>.columns:nth-of-type(1n){clear:none}.medium-up-3>.column:nth-of-type(3n+1),.medium-up-3>.columns:nth-of-type(3n+1){clear:both}.medium-up-3>.column:last-child,.medium-up-3>.columns:last-child{float:left}.medium-up-4>.column,.medium-up-4>.columns{float:left;width:25%}.medium-up-4>.column:nth-of-type(1n),.medium-up-4>.columns:nth-of-type(1n){clear:none}.medium-up-4>.column:nth-of-type(4n+1),.medium-up-4>.columns:nth-of-type(4n+1){clear:both}.medium-up-4>.column:last-child,.medium-up-4>.columns:last-child{float:left}.medium-up-5>.column,.medium-up-5>.columns{float:left;width:20%}.medium-up-5>.column:nth-of-type(1n),.medium-up-5>.columns:nth-of-type(1n){clear:none}.medium-up-5>.column:nth-of-type(5n+1),.medium-up-5>.columns:nth-of-type(5n+1){clear:both}.medium-up-5>.column:last-child,.medium-up-5>.columns:last-child{float:left}.medium-up-6>.column,.medium-up-6>.columns{float:left;width:16.66667%}.medium-up-6>.column:nth-of-type(1n),.medium-up-6>.columns:nth-of-type(1n){clear:none}.medium-up-6>.column:nth-of-type(6n+1),.medium-up-6>.columns:nth-of-type(6n+1){clear:both}.medium-up-6>.column:last-child,.medium-up-6>.columns:last-child{float:left}.medium-up-7>.column,.medium-up-7>.columns{float:left;width:14.28571%}.medium-up-7>.column:nth-of-type(1n),.medium-up-7>.columns:nth-of-type(1n){clear:none}.medium-up-7>.column:nth-of-type(7n+1),.medium-up-7>.columns:nth-of-type(7n+1){clear:both}.medium-up-7>.column:last-child,.medium-up-7>.columns:last-child{float:left}.medium-up-8>.column,.medium-up-8>.columns{float:left;width:12.5%}.medium-up-8>.column:nth-of-type(1n),.medium-up-8>.columns:nth-of-type(1n){clear:none}.medium-up-8>.column:nth-of-type(8n+1),.medium-up-8>.columns:nth-of-type(8n+1){clear:both}.medium-up-8>.column:last-child,.medium-up-8>.columns:last-child{float:left}.medium-collapse>.column,.medium-collapse>.columns{padding-right:0;padding-left:0}.medium-collapse .row{margin-right:0;margin-left:0}.expanded.row .medium-collapse.row{margin-right:0;margin-left:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}.medium-centered{margin-right:auto;margin-left:auto}.medium-centered,.medium-centered:last-child:not(:first-child){float:none;clear:both}.medium-pull-0,.medium-push-0,.medium-uncentered{position:static;margin-right:0;margin-left:0}.medium-pull-0,.medium-pull-0:last-child:not(:first-child),.medium-push-0,.medium-push-0:last-child:not(:first-child),.medium-uncentered,.medium-uncentered:last-child:not(:first-child){float:left;clear:none}.medium-pull-0:last-child:not(:first-child),.medium-push-0:last-child:not(:first-child),.medium-uncentered:last-child:not(:first-child){float:right}}@media print,screen and (min-width:64em){.large-1{width:8.33333%}.large-push-1{position:relative;left:8.33333%}.large-pull-1{position:relative;left:-8.33333%}.large-offset-0{margin-left:0}.large-2{width:16.66667%}.large-push-2{position:relative;left:16.66667%}.large-pull-2{position:relative;left:-16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{width:25%}.large-push-3{position:relative;left:25%}.large-pull-3{position:relative;left:-25%}.large-offset-2{margin-left:16.66667%}.large-4{width:33.33333%}.large-push-4{position:relative;left:33.33333%}.large-pull-4{position:relative;left:-33.33333%}.large-offset-3{margin-left:25%}.large-5{width:41.66667%}.large-push-5{position:relative;left:41.66667%}.large-pull-5{position:relative;left:-41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{position:relative;left:-50%}.large-offset-5{margin-left:41.66667%}.large-7{width:58.33333%}.large-push-7{position:relative;left:58.33333%}.large-pull-7{position:relative;left:-58.33333%}.large-offset-6{margin-left:50%}.large-8{width:66.66667%}.large-push-8{position:relative;left:66.66667%}.large-pull-8{position:relative;left:-66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{width:75%}.large-push-9{position:relative;left:75%}.large-pull-9{position:relative;left:-75%}.large-offset-8{margin-left:66.66667%}.large-10{width:83.33333%}.large-push-10{position:relative;left:83.33333%}.large-pull-10{position:relative;left:-83.33333%}.large-offset-9{margin-left:75%}.large-11{width:91.66667%}.large-push-11{position:relative;left:91.66667%}.large-pull-11{position:relative;left:-91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1>.column,.large-up-1>.columns{float:left;width:100%}.large-up-1>.column:nth-of-type(1n),.large-up-1>.columns:nth-of-type(1n){clear:none}.large-up-1>.column:nth-of-type(1n+1),.large-up-1>.columns:nth-of-type(1n+1){clear:both}.large-up-1>.column:last-child,.large-up-1>.columns:last-child{float:left}.large-up-2>.column,.large-up-2>.columns{float:left;width:50%}.large-up-2>.column:nth-of-type(1n),.large-up-2>.columns:nth-of-type(1n){clear:none}.large-up-2>.column:nth-of-type(2n+1),.large-up-2>.columns:nth-of-type(2n+1){clear:both}.large-up-2>.column:last-child,.large-up-2>.columns:last-child{float:left}.large-up-3>.column,.large-up-3>.columns{float:left;width:33.33333%}.large-up-3>.column:nth-of-type(1n),.large-up-3>.columns:nth-of-type(1n){clear:none}.large-up-3>.column:nth-of-type(3n+1),.large-up-3>.columns:nth-of-type(3n+1){clear:both}.large-up-3>.column:last-child,.large-up-3>.columns:last-child{float:left}.large-up-4>.column,.large-up-4>.columns{float:left;width:25%}.large-up-4>.column:nth-of-type(1n),.large-up-4>.columns:nth-of-type(1n){clear:none}.large-up-4>.column:nth-of-type(4n+1),.large-up-4>.columns:nth-of-type(4n+1){clear:both}.large-up-4>.column:last-child,.large-up-4>.columns:last-child{float:left}.large-up-5>.column,.large-up-5>.columns{float:left;width:20%}.large-up-5>.column:nth-of-type(1n),.large-up-5>.columns:nth-of-type(1n){clear:none}.large-up-5>.column:nth-of-type(5n+1),.large-up-5>.columns:nth-of-type(5n+1){clear:both}.large-up-5>.column:last-child,.large-up-5>.columns:last-child{float:left}.large-up-6>.column,.large-up-6>.columns{float:left;width:16.66667%}.large-up-6>.column:nth-of-type(1n),.large-up-6>.columns:nth-of-type(1n){clear:none}.large-up-6>.column:nth-of-type(6n+1),.large-up-6>.columns:nth-of-type(6n+1){clear:both}.large-up-6>.column:last-child,.large-up-6>.columns:last-child{float:left}.large-up-7>.column,.large-up-7>.columns{float:left;width:14.28571%}.large-up-7>.column:nth-of-type(1n),.large-up-7>.columns:nth-of-type(1n){clear:none}.large-up-7>.column:nth-of-type(7n+1),.large-up-7>.columns:nth-of-type(7n+1){clear:both}.large-up-7>.column:last-child,.large-up-7>.columns:last-child{float:left}.large-up-8>.column,.large-up-8>.columns{float:left;width:12.5%}.large-up-8>.column:nth-of-type(1n),.large-up-8>.columns:nth-of-type(1n){clear:none}.large-up-8>.column:nth-of-type(8n+1),.large-up-8>.columns:nth-of-type(8n+1){clear:both}.large-up-8>.column:last-child,.large-up-8>.columns:last-child{float:left}.large-collapse>.column,.large-collapse>.columns{padding-right:0;padding-left:0}.large-collapse .row{margin-right:0;margin-left:0}.expanded.row .large-collapse.row{margin-right:0;margin-left:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}.large-centered{margin-right:auto;margin-left:auto}.large-centered,.large-centered:last-child:not(:first-child){float:none;clear:both}.large-pull-0,.large-push-0,.large-uncentered{position:static;margin-right:0;margin-left:0}.large-pull-0,.large-pull-0:last-child:not(:first-child),.large-push-0,.large-push-0:last-child:not(:first-child),.large-uncentered,.large-uncentered:last-child:not(:first-child){float:left;clear:none}.large-pull-0:last-child:not(:first-child),.large-push-0:last-child:not(:first-child),.large-uncentered:last-child:not(:first-child){float:right}}.column-block{margin-bottom:1.25rem}.column-block>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.column-block{margin-bottom:1.875rem}.column-block>:last-child{margin-bottom:0}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;font-size:0}.button-group::after,.button-group::before{display:table;content:' '}.button-group::after{clear:both}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded{margin-right:-1px}.button-group.expanded::after,.button-group.expanded::before{display:none}.button-group.expanded .button:first-child:last-child{width:calc(100% - 1px)}.button-group.expanded .button:first-child:nth-last-child(2),.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(3),.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(4),.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(5),.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(6),.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{width:100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded,.button-group.stacked-for-small.expanded,.button-group.stacked.expanded{margin-right:-1px}.button-group.stacked-for-medium.expanded::after,.button-group.stacked-for-medium.expanded::before,.button-group.stacked-for-small.expanded::after,.button-group.stacked-for-small.expanded::before,.button-group.stacked.expanded::after,.button-group.stacked.expanded::before{display:none}.button-group.stacked-for-medium.expanded .button:first-child:last-child,.button-group.stacked-for-small.expanded .button:first-child:last-child,.button-group.stacked.expanded .button:first-child:last-child{width:calc(100% - 1px)}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(2),.button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(3),.button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(4),.button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(5),.button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(6),.button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{width:auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{width:auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' '}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' '}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:block;margin-bottom:1rem}.media-object img{max-width:none}.media-object-section{display:table-cell;vertical-align:top}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;display:block}.stack-for-small .media-object-section img{width:100%}}.media-object-section.middle{vertical-align:middle}.media-object-section.bottom{vertical-align:bottom}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' '}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu li,.menu.horizontal li{display:inline-block}.menu.vertical li{display:block}.menu.expanded{display:table;width:100%}.menu.expanded>li{display:table-cell;vertical-align:middle}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal li{display:inline-block}.menu.medium-vertical li{display:block}.menu.medium-expanded{display:table;width:100%}.menu.medium-expanded>li{display:table-cell;vertical-align:middle}.menu.medium-simple{display:table;width:100%}.menu.medium-simple>li{display:table-cell;vertical-align:middle}}@media print,screen and (min-width:64em){.menu.large-horizontal li{display:inline-block}.menu.large-vertical li{display:block}.menu.large-expanded{display:table;width:100%}.menu.large-expanded>li{display:table-cell;vertical-align:middle}.menu.large-simple{display:table;width:100%}.menu.large-simple>li{display:table-cell;vertical-align:middle}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons i,.menu.icons img,.menu.icons svg{vertical-align:middle}.menu.icons i+span,.menu.icons img+span,.menu.icons svg+span{vertical-align:middle}.menu.icon-bottom i,.menu.icon-bottom img,.menu.icon-bottom svg,.menu.icon-left i,.menu.icon-left img,.menu.icon-left svg,.menu.icon-right i,.menu.icon-right img,.menu.icon-right svg,.menu.icon-top i,.menu.icon-top img,.menu.icon-top svg{vertical-align:middle}.menu.icon-bottom i+span,.menu.icon-bottom img+span,.menu.icon-bottom svg+span,.menu.icon-left i+span,.menu.icon-left img+span,.menu.icon-left svg+span,.menu.icon-right i+span,.menu.icon-right img+span,.menu.icon-right svg+span,.menu.icon-top i+span,.menu.icon-top img+span,.menu.icon-top svg+span{vertical-align:middle}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem;display:inline-block}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem;display:inline-block}.menu.icon-top li a,.menu.nested.icon-top li a{text-align:center}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{display:block;margin:0 auto .25rem}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{text-align:center}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{display:block;margin:.25rem auto 0}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{text-align:left}.menu.align-right{text-align:right}.menu.align-right .submenu li{text-align:left}.menu.align-right.vertical .submenu li{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center{text-align:center}.menu.align-center .submenu li{text-align:left}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{text-align:center}.menu-centered>.menu .submenu li{text-align:left}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column,.reveal .columns{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe}.title-bar::after,.title-bar::before{display:table;content:' '}.title-bar::after{clear:both}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left{float:left}.title-bar-right{float:right;text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{padding:.5rem}.top-bar::after,.top-bar::before{display:table;content:' '}.top-bar::after{clear:both}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{width:100%}@media print,screen and (min-width:40em){.top-bar .top-bar-left,.top-bar .top-bar-right{width:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{width:100%}}.top-bar-title{display:inline-block;float:left;padding:.5rem 1rem .5rem 0}.top-bar-title .menu-icon{bottom:2px}.top-bar-left{float:left}.top-bar-right{float:right}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' '}.clearfix::after{clear:both}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}
+@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap;display:table-cell;vertical-align:middle}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;width:1%;height:100%}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;width:1%;height:100%}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{height:2.4375rem;padding-top:0;padding-bottom:0;font-size:1rem}.input-group .input-group-button{display:table-cell}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.row{max-width:75rem;margin-right:auto;margin-left:auto}.row::after,.row::before{display:table;content:' '}.row::after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-right:0;padding-left:0}.row .row{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:64em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}.row .row.collapse{margin-right:0;margin-left:0}.row.expanded{max-width:none}.row.expanded .row{margin-right:auto;margin-left:auto}.row:not(.expanded) .row{max-width:none}.row.gutter-small>.column,.row.gutter-small>.columns{padding-right:.625rem;padding-left:.625rem}.row.gutter-medium>.column,.row.gutter-medium>.columns{padding-right:.9375rem;padding-left:.9375rem}.column,.columns{padding-right:.625rem;padding-left:.625rem;width:100%;float:left}@media print,screen and (min-width:40em){.column,.columns{padding-right:.9375rem;padding-left:.9375rem}}.column,.column:last-child:not(:first-child),.columns,.columns:last-child:not(:first-child){float:left;clear:none}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:right}.column.end:last-child:last-child,.end.columns:last-child:last-child{float:left}.column.row.row,.row.row.columns{float:none}.row .column.row.row,.row .row.row.columns{margin-right:0;margin-left:0;padding-right:0;padding-left:0}.small-1{width:8.33333%}.small-push-1{position:relative;left:8.33333%}.small-pull-1{position:relative;left:-8.33333%}.small-offset-0{margin-left:0}.small-2{width:16.66667%}.small-push-2{position:relative;left:16.66667%}.small-pull-2{position:relative;left:-16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{width:25%}.small-push-3{position:relative;left:25%}.small-pull-3{position:relative;left:-25%}.small-offset-2{margin-left:16.66667%}.small-4{width:33.33333%}.small-push-4{position:relative;left:33.33333%}.small-pull-4{position:relative;left:-33.33333%}.small-offset-3{margin-left:25%}.small-5{width:41.66667%}.small-push-5{position:relative;left:41.66667%}.small-pull-5{position:relative;left:-41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{position:relative;left:-50%}.small-offset-5{margin-left:41.66667%}.small-7{width:58.33333%}.small-push-7{position:relative;left:58.33333%}.small-pull-7{position:relative;left:-58.33333%}.small-offset-6{margin-left:50%}.small-8{width:66.66667%}.small-push-8{position:relative;left:66.66667%}.small-pull-8{position:relative;left:-66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{width:75%}.small-push-9{position:relative;left:75%}.small-pull-9{position:relative;left:-75%}.small-offset-8{margin-left:66.66667%}.small-10{width:83.33333%}.small-push-10{position:relative;left:83.33333%}.small-pull-10{position:relative;left:-83.33333%}.small-offset-9{margin-left:75%}.small-11{width:91.66667%}.small-push-11{position:relative;left:91.66667%}.small-pull-11{position:relative;left:-91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1>.column,.small-up-1>.columns{float:left;width:100%}.small-up-1>.column:nth-of-type(1n),.small-up-1>.columns:nth-of-type(1n){clear:none}.small-up-1>.column:nth-of-type(1n+1),.small-up-1>.columns:nth-of-type(1n+1){clear:both}.small-up-1>.column:last-child,.small-up-1>.columns:last-child{float:left}.small-up-2>.column,.small-up-2>.columns{float:left;width:50%}.small-up-2>.column:nth-of-type(1n),.small-up-2>.columns:nth-of-type(1n){clear:none}.small-up-2>.column:nth-of-type(2n+1),.small-up-2>.columns:nth-of-type(2n+1){clear:both}.small-up-2>.column:last-child,.small-up-2>.columns:last-child{float:left}.small-up-3>.column,.small-up-3>.columns{float:left;width:33.33333%}.small-up-3>.column:nth-of-type(1n),.small-up-3>.columns:nth-of-type(1n){clear:none}.small-up-3>.column:nth-of-type(3n+1),.small-up-3>.columns:nth-of-type(3n+1){clear:both}.small-up-3>.column:last-child,.small-up-3>.columns:last-child{float:left}.small-up-4>.column,.small-up-4>.columns{float:left;width:25%}.small-up-4>.column:nth-of-type(1n),.small-up-4>.columns:nth-of-type(1n){clear:none}.small-up-4>.column:nth-of-type(4n+1),.small-up-4>.columns:nth-of-type(4n+1){clear:both}.small-up-4>.column:last-child,.small-up-4>.columns:last-child{float:left}.small-up-5>.column,.small-up-5>.columns{float:left;width:20%}.small-up-5>.column:nth-of-type(1n),.small-up-5>.columns:nth-of-type(1n){clear:none}.small-up-5>.column:nth-of-type(5n+1),.small-up-5>.columns:nth-of-type(5n+1){clear:both}.small-up-5>.column:last-child,.small-up-5>.columns:last-child{float:left}.small-up-6>.column,.small-up-6>.columns{float:left;width:16.66667%}.small-up-6>.column:nth-of-type(1n),.small-up-6>.columns:nth-of-type(1n){clear:none}.small-up-6>.column:nth-of-type(6n+1),.small-up-6>.columns:nth-of-type(6n+1){clear:both}.small-up-6>.column:last-child,.small-up-6>.columns:last-child{float:left}.small-up-7>.column,.small-up-7>.columns{float:left;width:14.28571%}.small-up-7>.column:nth-of-type(1n),.small-up-7>.columns:nth-of-type(1n){clear:none}.small-up-7>.column:nth-of-type(7n+1),.small-up-7>.columns:nth-of-type(7n+1){clear:both}.small-up-7>.column:last-child,.small-up-7>.columns:last-child{float:left}.small-up-8>.column,.small-up-8>.columns{float:left;width:12.5%}.small-up-8>.column:nth-of-type(1n),.small-up-8>.columns:nth-of-type(1n){clear:none}.small-up-8>.column:nth-of-type(8n+1),.small-up-8>.columns:nth-of-type(8n+1){clear:both}.small-up-8>.column:last-child,.small-up-8>.columns:last-child{float:left}.small-collapse>.column,.small-collapse>.columns{padding-right:0;padding-left:0}.small-collapse .row{margin-right:0;margin-left:0}.expanded.row .small-collapse.row{margin-right:0;margin-left:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-right:.625rem;padding-left:.625rem}.small-centered{margin-right:auto;margin-left:auto}.small-centered,.small-centered:last-child:not(:first-child){float:none;clear:both}.small-pull-0,.small-push-0,.small-uncentered{position:static;margin-right:0;margin-left:0}.small-pull-0,.small-pull-0:last-child:not(:first-child),.small-push-0,.small-push-0:last-child:not(:first-child),.small-uncentered,.small-uncentered:last-child:not(:first-child){float:left;clear:none}.small-pull-0:last-child:not(:first-child),.small-push-0:last-child:not(:first-child),.small-uncentered:last-child:not(:first-child){float:right}@media print,screen and (min-width:40em){.medium-1{width:8.33333%}.medium-push-1{position:relative;left:8.33333%}.medium-pull-1{position:relative;left:-8.33333%}.medium-offset-0{margin-left:0}.medium-2{width:16.66667%}.medium-push-2{position:relative;left:16.66667%}.medium-pull-2{position:relative;left:-16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{width:25%}.medium-push-3{position:relative;left:25%}.medium-pull-3{position:relative;left:-25%}.medium-offset-2{margin-left:16.66667%}.medium-4{width:33.33333%}.medium-push-4{position:relative;left:33.33333%}.medium-pull-4{position:relative;left:-33.33333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.66667%}.medium-push-5{position:relative;left:41.66667%}.medium-pull-5{position:relative;left:-41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{position:relative;left:-50%}.medium-offset-5{margin-left:41.66667%}.medium-7{width:58.33333%}.medium-push-7{position:relative;left:58.33333%}.medium-pull-7{position:relative;left:-58.33333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.66667%}.medium-push-8{position:relative;left:66.66667%}.medium-pull-8{position:relative;left:-66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{width:75%}.medium-push-9{position:relative;left:75%}.medium-pull-9{position:relative;left:-75%}.medium-offset-8{margin-left:66.66667%}.medium-10{width:83.33333%}.medium-push-10{position:relative;left:83.33333%}.medium-pull-10{position:relative;left:-83.33333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.66667%}.medium-push-11{position:relative;left:91.66667%}.medium-pull-11{position:relative;left:-91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1>.column,.medium-up-1>.columns{float:left;width:100%}.medium-up-1>.column:nth-of-type(1n),.medium-up-1>.columns:nth-of-type(1n){clear:none}.medium-up-1>.column:nth-of-type(1n+1),.medium-up-1>.columns:nth-of-type(1n+1){clear:both}.medium-up-1>.column:last-child,.medium-up-1>.columns:last-child{float:left}.medium-up-2>.column,.medium-up-2>.columns{float:left;width:50%}.medium-up-2>.column:nth-of-type(1n),.medium-up-2>.columns:nth-of-type(1n){clear:none}.medium-up-2>.column:nth-of-type(2n+1),.medium-up-2>.columns:nth-of-type(2n+1){clear:both}.medium-up-2>.column:last-child,.medium-up-2>.columns:last-child{float:left}.medium-up-3>.column,.medium-up-3>.columns{float:left;width:33.33333%}.medium-up-3>.column:nth-of-type(1n),.medium-up-3>.columns:nth-of-type(1n){clear:none}.medium-up-3>.column:nth-of-type(3n+1),.medium-up-3>.columns:nth-of-type(3n+1){clear:both}.medium-up-3>.column:last-child,.medium-up-3>.columns:last-child{float:left}.medium-up-4>.column,.medium-up-4>.columns{float:left;width:25%}.medium-up-4>.column:nth-of-type(1n),.medium-up-4>.columns:nth-of-type(1n){clear:none}.medium-up-4>.column:nth-of-type(4n+1),.medium-up-4>.columns:nth-of-type(4n+1){clear:both}.medium-up-4>.column:last-child,.medium-up-4>.columns:last-child{float:left}.medium-up-5>.column,.medium-up-5>.columns{float:left;width:20%}.medium-up-5>.column:nth-of-type(1n),.medium-up-5>.columns:nth-of-type(1n){clear:none}.medium-up-5>.column:nth-of-type(5n+1),.medium-up-5>.columns:nth-of-type(5n+1){clear:both}.medium-up-5>.column:last-child,.medium-up-5>.columns:last-child{float:left}.medium-up-6>.column,.medium-up-6>.columns{float:left;width:16.66667%}.medium-up-6>.column:nth-of-type(1n),.medium-up-6>.columns:nth-of-type(1n){clear:none}.medium-up-6>.column:nth-of-type(6n+1),.medium-up-6>.columns:nth-of-type(6n+1){clear:both}.medium-up-6>.column:last-child,.medium-up-6>.columns:last-child{float:left}.medium-up-7>.column,.medium-up-7>.columns{float:left;width:14.28571%}.medium-up-7>.column:nth-of-type(1n),.medium-up-7>.columns:nth-of-type(1n){clear:none}.medium-up-7>.column:nth-of-type(7n+1),.medium-up-7>.columns:nth-of-type(7n+1){clear:both}.medium-up-7>.column:last-child,.medium-up-7>.columns:last-child{float:left}.medium-up-8>.column,.medium-up-8>.columns{float:left;width:12.5%}.medium-up-8>.column:nth-of-type(1n),.medium-up-8>.columns:nth-of-type(1n){clear:none}.medium-up-8>.column:nth-of-type(8n+1),.medium-up-8>.columns:nth-of-type(8n+1){clear:both}.medium-up-8>.column:last-child,.medium-up-8>.columns:last-child{float:left}.medium-collapse>.column,.medium-collapse>.columns{padding-right:0;padding-left:0}.medium-collapse .row{margin-right:0;margin-left:0}.expanded.row .medium-collapse.row{margin-right:0;margin-left:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}.medium-centered{margin-right:auto;margin-left:auto}.medium-centered,.medium-centered:last-child:not(:first-child){float:none;clear:both}.medium-pull-0,.medium-push-0,.medium-uncentered{position:static;margin-right:0;margin-left:0}.medium-pull-0,.medium-pull-0:last-child:not(:first-child),.medium-push-0,.medium-push-0:last-child:not(:first-child),.medium-uncentered,.medium-uncentered:last-child:not(:first-child){float:left;clear:none}.medium-pull-0:last-child:not(:first-child),.medium-push-0:last-child:not(:first-child),.medium-uncentered:last-child:not(:first-child){float:right}}@media print,screen and (min-width:64em){.large-1{width:8.33333%}.large-push-1{position:relative;left:8.33333%}.large-pull-1{position:relative;left:-8.33333%}.large-offset-0{margin-left:0}.large-2{width:16.66667%}.large-push-2{position:relative;left:16.66667%}.large-pull-2{position:relative;left:-16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{width:25%}.large-push-3{position:relative;left:25%}.large-pull-3{position:relative;left:-25%}.large-offset-2{margin-left:16.66667%}.large-4{width:33.33333%}.large-push-4{position:relative;left:33.33333%}.large-pull-4{position:relative;left:-33.33333%}.large-offset-3{margin-left:25%}.large-5{width:41.66667%}.large-push-5{position:relative;left:41.66667%}.large-pull-5{position:relative;left:-41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{position:relative;left:-50%}.large-offset-5{margin-left:41.66667%}.large-7{width:58.33333%}.large-push-7{position:relative;left:58.33333%}.large-pull-7{position:relative;left:-58.33333%}.large-offset-6{margin-left:50%}.large-8{width:66.66667%}.large-push-8{position:relative;left:66.66667%}.large-pull-8{position:relative;left:-66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{width:75%}.large-push-9{position:relative;left:75%}.large-pull-9{position:relative;left:-75%}.large-offset-8{margin-left:66.66667%}.large-10{width:83.33333%}.large-push-10{position:relative;left:83.33333%}.large-pull-10{position:relative;left:-83.33333%}.large-offset-9{margin-left:75%}.large-11{width:91.66667%}.large-push-11{position:relative;left:91.66667%}.large-pull-11{position:relative;left:-91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1>.column,.large-up-1>.columns{float:left;width:100%}.large-up-1>.column:nth-of-type(1n),.large-up-1>.columns:nth-of-type(1n){clear:none}.large-up-1>.column:nth-of-type(1n+1),.large-up-1>.columns:nth-of-type(1n+1){clear:both}.large-up-1>.column:last-child,.large-up-1>.columns:last-child{float:left}.large-up-2>.column,.large-up-2>.columns{float:left;width:50%}.large-up-2>.column:nth-of-type(1n),.large-up-2>.columns:nth-of-type(1n){clear:none}.large-up-2>.column:nth-of-type(2n+1),.large-up-2>.columns:nth-of-type(2n+1){clear:both}.large-up-2>.column:last-child,.large-up-2>.columns:last-child{float:left}.large-up-3>.column,.large-up-3>.columns{float:left;width:33.33333%}.large-up-3>.column:nth-of-type(1n),.large-up-3>.columns:nth-of-type(1n){clear:none}.large-up-3>.column:nth-of-type(3n+1),.large-up-3>.columns:nth-of-type(3n+1){clear:both}.large-up-3>.column:last-child,.large-up-3>.columns:last-child{float:left}.large-up-4>.column,.large-up-4>.columns{float:left;width:25%}.large-up-4>.column:nth-of-type(1n),.large-up-4>.columns:nth-of-type(1n){clear:none}.large-up-4>.column:nth-of-type(4n+1),.large-up-4>.columns:nth-of-type(4n+1){clear:both}.large-up-4>.column:last-child,.large-up-4>.columns:last-child{float:left}.large-up-5>.column,.large-up-5>.columns{float:left;width:20%}.large-up-5>.column:nth-of-type(1n),.large-up-5>.columns:nth-of-type(1n){clear:none}.large-up-5>.column:nth-of-type(5n+1),.large-up-5>.columns:nth-of-type(5n+1){clear:both}.large-up-5>.column:last-child,.large-up-5>.columns:last-child{float:left}.large-up-6>.column,.large-up-6>.columns{float:left;width:16.66667%}.large-up-6>.column:nth-of-type(1n),.large-up-6>.columns:nth-of-type(1n){clear:none}.large-up-6>.column:nth-of-type(6n+1),.large-up-6>.columns:nth-of-type(6n+1){clear:both}.large-up-6>.column:last-child,.large-up-6>.columns:last-child{float:left}.large-up-7>.column,.large-up-7>.columns{float:left;width:14.28571%}.large-up-7>.column:nth-of-type(1n),.large-up-7>.columns:nth-of-type(1n){clear:none}.large-up-7>.column:nth-of-type(7n+1),.large-up-7>.columns:nth-of-type(7n+1){clear:both}.large-up-7>.column:last-child,.large-up-7>.columns:last-child{float:left}.large-up-8>.column,.large-up-8>.columns{float:left;width:12.5%}.large-up-8>.column:nth-of-type(1n),.large-up-8>.columns:nth-of-type(1n){clear:none}.large-up-8>.column:nth-of-type(8n+1),.large-up-8>.columns:nth-of-type(8n+1){clear:both}.large-up-8>.column:last-child,.large-up-8>.columns:last-child{float:left}.large-collapse>.column,.large-collapse>.columns{padding-right:0;padding-left:0}.large-collapse .row{margin-right:0;margin-left:0}.expanded.row .large-collapse.row{margin-right:0;margin-left:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}.large-centered{margin-right:auto;margin-left:auto}.large-centered,.large-centered:last-child:not(:first-child){float:none;clear:both}.large-pull-0,.large-push-0,.large-uncentered{position:static;margin-right:0;margin-left:0}.large-pull-0,.large-pull-0:last-child:not(:first-child),.large-push-0,.large-push-0:last-child:not(:first-child),.large-uncentered,.large-uncentered:last-child:not(:first-child){float:left;clear:none}.large-pull-0:last-child:not(:first-child),.large-push-0:last-child:not(:first-child),.large-uncentered:last-child:not(:first-child){float:right}}.column-block{margin-bottom:1.25rem}.column-block>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.column-block{margin-bottom:1.875rem}.column-block>:last-child{margin-bottom:0}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;font-size:0}.button-group::after,.button-group::before{display:table;content:' '}.button-group::after{clear:both}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded{margin-right:-1px}.button-group.expanded::after,.button-group.expanded::before{display:none}.button-group.expanded .button:first-child:last-child{width:calc(100% - 1px)}.button-group.expanded .button:first-child:nth-last-child(2),.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(3),.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(4),.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(5),.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(6),.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{width:100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded,.button-group.stacked-for-small.expanded,.button-group.stacked.expanded{margin-right:-1px}.button-group.stacked-for-medium.expanded::after,.button-group.stacked-for-medium.expanded::before,.button-group.stacked-for-small.expanded::after,.button-group.stacked-for-small.expanded::before,.button-group.stacked.expanded::after,.button-group.stacked.expanded::before{display:none}.button-group.stacked-for-medium.expanded .button:first-child:last-child,.button-group.stacked-for-small.expanded .button:first-child:last-child,.button-group.stacked.expanded .button:first-child:last-child{width:calc(100% - 1px)}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(2),.button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(3),.button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(4),.button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(5),.button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(6),.button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{width:auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{width:auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' '}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' '}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:block;margin-bottom:1rem}.media-object img{max-width:none}.media-object-section{display:table-cell;vertical-align:top}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;display:block}.stack-for-small .media-object-section img{width:100%}}.media-object-section.middle{vertical-align:middle}.media-object-section.bottom{vertical-align:bottom}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' '}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu li,.menu.horizontal li{display:inline-block}.menu.vertical li{display:block}.menu.expanded{display:table;width:100%}.menu.expanded>li{display:table-cell;vertical-align:middle}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal li{display:inline-block}.menu.medium-vertical li{display:block}.menu.medium-expanded{display:table;width:100%}.menu.medium-expanded>li{display:table-cell;vertical-align:middle}.menu.medium-simple{display:table;width:100%}.menu.medium-simple>li{display:table-cell;vertical-align:middle}}@media print,screen and (min-width:64em){.menu.large-horizontal li{display:inline-block}.menu.large-vertical li{display:block}.menu.large-expanded{display:table;width:100%}.menu.large-expanded>li{display:table-cell;vertical-align:middle}.menu.large-simple{display:table;width:100%}.menu.large-simple>li{display:table-cell;vertical-align:middle}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons i,.menu.icons img,.menu.icons svg{vertical-align:middle}.menu.icons i+span,.menu.icons img+span,.menu.icons svg+span{vertical-align:middle}.menu.icon-bottom i,.menu.icon-bottom img,.menu.icon-bottom svg,.menu.icon-left i,.menu.icon-left img,.menu.icon-left svg,.menu.icon-right i,.menu.icon-right img,.menu.icon-right svg,.menu.icon-top i,.menu.icon-top img,.menu.icon-top svg{vertical-align:middle}.menu.icon-bottom i+span,.menu.icon-bottom img+span,.menu.icon-bottom svg+span,.menu.icon-left i+span,.menu.icon-left img+span,.menu.icon-left svg+span,.menu.icon-right i+span,.menu.icon-right img+span,.menu.icon-right svg+span,.menu.icon-top i+span,.menu.icon-top img+span,.menu.icon-top svg+span{vertical-align:middle}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem;display:inline-block}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem;display:inline-block}.menu.icon-top li a,.menu.nested.icon-top li a{text-align:center}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{display:block;margin:0 auto .25rem}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{text-align:center}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{display:block;margin:.25rem auto 0}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{text-align:left}.menu.align-right{text-align:right}.menu.align-right .submenu li{text-align:left}.menu.align-right.vertical .submenu li{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center{text-align:center}.menu.align-center .submenu li{text-align:left}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{text-align:center}.menu-centered>.menu .submenu li{text-align:left}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column,.reveal .columns{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe}.title-bar::after,.title-bar::before{display:table;content:' '}.title-bar::after{clear:both}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left{float:left}.title-bar-right{float:right;text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{padding:.5rem}.top-bar::after,.top-bar::before{display:table;content:' '}.top-bar::after{clear:both}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{width:100%}@media print,screen and (min-width:40em){.top-bar .top-bar-left,.top-bar .top-bar-right{width:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{width:100%}}.top-bar-title{display:inline-block;float:left;padding:.5rem 1rem .5rem 0}.top-bar-title .menu-icon{bottom:2px}.top-bar-left{float:left}.top-bar-right{float:right}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' '}.clearfix::after{clear:both}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}
 /*# sourceMappingURL=foundation-float.min.css.map */
index 88d34925681b184547e0f4ebb3d99764e52b4132..a5d1bee5768f2f1a1bba11d1fb9178a53fc969ea 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation-float.min.css","foundation-float.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/grid/_classes.scss","../scss/grid/_row.scss","../scss/grid/_gutter.scss","../scss/grid/_size.scss","../scss/grid/_column.scss","../scss/grid/_position.scss","../scss/grid/_layout.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"iBAmLQ,aAAA,4BCtIN,QAAA,cAAA,cAAA,aACE,MAAA,KACA,KAAA,KACA,OAAA,EAAA,MC7CF,4EAQA,KACE,YAAA,KACA,yBAAA,KAQF,KACE,OAAA,EAMF,GACE,UAAA,IACA,OAAA,MAAA,EASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAMF,IACE,YAAA,SAAA,CAAA,UACA,UAAA,IAQF,EACE,iBAAA,YAMF,YACE,cAAA,EACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OAKF,EC5BF,OD8BI,YAAA,OAMF,KChCF,IACA,KDkCI,YAAA,SAAA,CAAA,UACA,UAAA,IAKF,MACE,UAAA,IAMF,ICvCF,IDyCI,UAAA,IACA,YAAA,EACA,SAAA,SACA,eAAA,SAGF,IACE,OAAA,OAGF,IACE,IAAA,MAQF,IACE,aAAA,KASF,OCtDF,MACA,SACA,OACA,SDwDI,YAAA,QACA,UAAA,KACA,YAAA,KACA,OAAA,EAMF,OC1DF,MD4DI,SAAA,QAMF,OC9DF,ODgEI,eAAA,KC5DJ,cACA,aACA,cD+DE,OAIE,mBAAA,OC/DJ,gCACA,+BACA,gCDkEE,yBAIE,aAAA,KACA,QAAA,EClEJ,6BACA,4BACA,6BDqEE,sBAIE,QAAA,IAAA,OAAA,WAKF,SACE,QAAA,MAAA,MAAA,OAQF,OACE,mBAAA,WAAA,WAAA,WACA,MAAA,QACA,QAAA,MACA,UAAA,KACA,QAAA,EACA,YAAA,OAKF,SACE,eAAA,SAKF,SACE,SAAA,KEvFJ,gBDIA,aD2FI,mBAAA,WAAA,WAAA,WACA,QAAA,EE3FJ,yCDKA,yCD6FI,OAAA,KE9FJ,cFqGI,mBAAA,UACA,eAAA,KElGJ,yCFwGI,mBAAA,KAMF,6BACE,mBAAA,OACA,KAAA,QAQF,QACE,QAAA,MAKF,QACE,QAAA,UAQF,SACE,QAAA,KExHJ,SF8HI,QAAA,KCpHJ,yBACA,8BACA,yBACA,8BCVA,0BAAA,+BDKA,0BACA,+BD8HM,QAAA,EE3HN,kBFiII,sBAAA,KACA,oBAAA,KGxJF,eACE,YAAA,4DHrIF,KGyIE,mBAAA,WAAA,WAAA,WACA,UAAA,KAIF,EF8BF,QADA,SE1BI,mBAAA,QAAA,WAAA,QHvIF,KG4IE,OAAA,EACA,QAAA,EAUA,WAAA,QAEA,YAAA,gBAAA,CAAA,SAAA,CAAA,MAAA,CAAA,KAAA,CAAA,WACA,YAAA,IACA,YAAA,IACA,MAAA,QAGE,uBAAA,YACA,wBAAA,UHhEJ,IGsEE,QAAA,aACA,eAAA,OAGA,UAAA,KACA,OAAA,KACA,uBAAA,QHiBF,SGZE,OAAA,KACA,WAAA,KACA,cAAA,EAIF,OACE,mBAAA,WAAA,WAAA,WACA,MAAA,KACA,cAAA,EFUJ,kBELE,gBFMF,mBAEA,mBADA,iBAEA,oBEJM,UAAA,eAKJ,OAEE,QAAA,EACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,OAAA,EACA,cAAA,EACA,WAAA,IACA,YAAA,EACA,OAAA,KDLF,8BEvBE,QAAA,EJ1JF,IG2LE,SAAA,KACA,2BAAA,MH7GF,OCmHF,MACA,SACA,OACA,SEAI,YAAA,QAIF,YACE,QAAA,gBAGF,WACE,QAAA,eDTJ,aAAA,YAAA,sBAAA,gBAAA,aAAA,aAAA,cAAA,gBAAA,cAAA,WAAA,YAAA,YAAA,WAAA,YDUA,SIxKE,QAAA,MACA,mBAAA,WAAA,WAAA,WACA,MAAA,KACA,OAAA,UACA,OAAA,EAAA,EAAA,KACA,QAAA,MAEA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QACA,mBAAA,MAAA,EAAA,IAAA,IAAA,kBAAA,WAAA,MAAA,EAAA,IAAA,IAAA,kBAEA,YAAA,QACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QAGE,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAqBA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KHyIF,mBAAA,kBAAA,4BAAA,sBAAA,mBAAA,mBAAA,oBAAA,sBAAA,oBAAA,iBAAA,kBAAA,kBAAA,iBAAA,kBDiBA,eI1KE,QAAA,EACA,OAAA,IAAA,MAAA,QACA,iBAAA,QACA,mBAAA,EAAA,EAAA,IAAA,QAAA,WAAA,EAAA,EAAA,IAAA,QAGE,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IL6FJ,SK9EE,UAAA,KADF,eAII,OAAA,KAIJ,eAAA,gBJ+JF,kBACA,mBI3JM,iBAAA,QACA,OAAA,YJ+JN,cCrBA,cGnII,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,cAAA,EAIF,mBACE,mBAAA,WAAA,WAAA,WAiBF,4BACE,MAAA,QADF,mBACE,MAAA,QADF,uBACE,MAAA,QADF,wBACE,MAAA,QADF,cACE,MAAA,QJ0JJ,gBCpCA,YDqCA,aK/TI,OAAA,EAAA,EAAA,KJ+RJ,sBDoCA,mBK7TI,QAAA,aACA,eAAA,SAEA,YAAA,MACA,aAAA,KACA,cAAA,EJ2RF,2BDoCA,wBK5TI,OAAA,QAKJ,sBL2TF,mBKzTI,aAAA,MJyRJ,YIpRI,MAAA,KCKF,MAlBA,QAAA,MACA,OAAA,EAEA,UAAA,QACA,YAAA,IACA,YAAA,IACA,MAAA,QAYA,aANA,OAAA,EAAA,EAAA,KACA,YAAA,IACA,QAAA,SAAA,EClBA,WAGE,WAAA,OACA,UAAA,SACA,WAAA,OACA,MAAA,QCDF,aACE,QAAA,MACA,MAAA,KACA,cAAA,KAHF,0BAAA,+CAWM,cAAA,EAXN,yBAAA,8CAiBM,cAAA,EAKN,oBAAA,sBR6UF,2BADA,0BAEA,0BQ9UE,mBAAA,mBACE,OAAA,EACA,YAAA,OAGE,QAAA,WACA,eAAA,OAIJ,mBAEE,QAAA,EAAA,KACA,OAAA,IAAA,MAAA,QACA,WAAA,QAEA,MAAA,QACA,WAAA,OACA,YAAA,OAQE,MAAA,GACA,OAAA,KAjBJ,+BAsBM,aAAA,EAtBN,8BA0BM,YAAA,EAKN,mBAEE,cAAA,EAQF,oBAEE,YAAA,EACA,eAAA,EACA,WAAA,OAOE,MAAA,GACA,OAAA,KAZJ,sBR0TA,2BADA,0BAEA,0BQjSM,OAAA,UAEF,YAAA,EACA,eAAA,EACA,UAAA,KAMF,iCAEI,QAAA,WT+CN,SUjJE,OAAA,EACA,QAAA,EACA,OAAA,EVwJF,OUpJE,UAAA,KACA,cAAA,MAGF,UAxBA,OAAA,SAAA,EACA,QAAA,QACA,OAAA,IAAA,MAAA,QAEA,iBAEE,OAAA,EACA,YAAA,UACA,QAAA,EAAA,SP2KF,OQrLA,OAAA,UACA,OAAA,EAAA,EAAA,KACA,QAAA,MAEA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QAEA,YAAA,QACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QPkHA,iBAAA,uNO9GE,kBAAA,YACA,oBAAA,MAAA,MAAA,OACA,kBAAA,UACA,gBAAA,IAAA,IAEA,cAAA,OAIA,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IPuGF,kCDoDA,OCjDI,iBAAA,qVOtGJ,aACE,QAAA,EACA,OAAA,IAAA,MAAA,QACA,iBAAA,QACA,mBAAA,EAAA,EAAA,IAAA,QAAA,WAAA,EAAA,EAAA,IAAA,QAGE,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAKJ,gBACE,iBAAA,QACA,OAAA,YAIF,mBACE,QAAA,KAGF,iBACE,OAAA,KACA,iBAAA,KAEF,uBACE,YAAA,EACA,eAAA,ECrCF,8BACE,aAAA,QACA,iBAAA,QAEA,yDACE,MAAA,QADF,gDACE,MAAA,QADF,oDACE,MAAA,QADF,qDACE,MAAA,QADF,2CACE,MAAA,QA0BF,kBACE,MAAA,QAKJ,YAzBA,QAAA,KACA,WAAA,OACA,cAAA,KAEA,UAAA,OACA,YAAA,IACA,MAAA,QAmBA,uBAII,QAAA,MXicN,WAbA,GYtSE,IZoSF,GACA,GAYA,KAPA,GACA,GACA,GACA,GACA,GACA,GANA,GADA,GAUA,EAFA,IAKA,GADA,GAbA,GYpRI,OAAA,EACA,QAAA,EAIF,EACE,cAAA,KAEA,UAAA,QACA,YAAA,IACA,eAAA,mBAIF,GZ+RF,EY7RI,WAAA,OACA,YAAA,QZiSJ,EY7RE,OAEE,YAAA,IACA,YAAA,QbrLF,Ma0LE,UAAA,IACA,YAAA,QAIF,IZyRE,IACA,IACA,IACA,IACA,IY7RF,GZyRF,GACA,GACA,GACA,GACA,GYvRI,YAAA,gBAAA,CAAA,SAAA,CAAA,MAAA,CAAA,KAAA,CAAA,WACA,WAAA,OACA,YAAA,IACA,MAAA,QACA,eAAA,mBAVF,UZoSU,UACA,UACA,UACA,UACA,UYxSV,SZoSA,SACA,SACA,SACA,SACA,SY3RI,YAAA,EACA,MAAA,QASE,IAAA,GAII,UAAA,OAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,QAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,UAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,SAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,UAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,KAYA,YAAA,IAQA,WAAA,EAOA,cAAA,Mf3JJ,aAAA,4Be4HA,IAAA,GAII,UAAA,KAJJ,IAAA,GAII,UAAA,OAJJ,IAAA,GAII,UAAA,UAJJ,IAAA,GAII,UAAA,UAJJ,IAAA,GAII,UAAA,QAJJ,IAAA,GAII,UAAA,MbzPV,Ea6RE,YAAA,QACA,MAAA,QACA,gBAAA,KAEA,OAAA,QALF,QAAA,QASI,MAAA,QATJ,MAgBI,OAAA,Eb/TJ,GaqUE,MAAA,KAEA,UAAA,MACA,OAAA,EACA,OAAA,QAAA,KAEA,WAAA,EACA,aAAA,EACA,cAAA,IAAA,MAAA,QACA,YAAA,EZuRJ,GADA,GYlRE,GAGE,cAAA,KACA,oBAAA,QACA,YAAA,IAIF,GACE,UAAA,QAIF,GACE,YAAA,QACA,gBAAA,KAIF,GACE,YAAA,QAIF,MAAA,MAAA,MAAA,MAEI,YAAA,QACA,cAAA,EAKJ,GACE,cAAA,KADF,MAII,cAAA,MACA,YAAA,IAKJ,WACE,OAAA,EAAA,EAAA,KACA,QAAA,SAAA,QAAA,EAAA,UACA,YAAA,IAAA,MAAA,QAHF,WAAA,aAMI,YAAA,IACA,MAAA,QAcJ,KAAA,YACE,cAAA,IAAA,OAAA,QACA,OAAA,KACA,gBAAA,KAIF,OACE,OAAA,EAWF,IACE,OAAA,EACA,QAAA,QAAA,OAAA,EAEA,iBAAA,QAEA,YAAA,QAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,UACA,MAAA,QC9UF,WACE,WAAA,MACA,cAAA,MAEA,YAAA,IACA,YAAA,IACA,MAAA,QAIF,MACE,UAAA,KACA,YAAA,IAIF,MACE,UAAA,OACA,YAAA,EAEA,QACE,WAAA,MAIJ,aAAA,aAGI,YAAA,EACA,WAAA,KD+QF,YAAA,KC5VF,QAAA,MACA,MAAA,QACA,UAAA,SD0VE,mBAAA,YCvVA,QAAA,KD4WA,aAAA,KCrWF,OAAA,IAAA,MAAA,QACA,iBAAA,QAEA,YAAA,QAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,UACA,YAAA,IACA,MAAA,QAMA,QAAA,OACA,UAAA,KACA,UAAA,WAEA,QAAA,QAAA,SAAA,SAuEA,YAtFA,OAAA,IAAA,MAAA,QACA,iBAAA,QAEA,YAAA,QAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,UACA,YAAA,IACA,MAAA,QAgBA,QAAA,MACA,SAAA,KACA,YAAA,IAEA,QAAA,KACA,cAAA,OC7GQ,WACE,WAAA,KADF,YACE,WAAA,MADF,aACE,WAAA,OADF,cACE,WAAA,QjBoKJ,aAAA,4BiB1KE,kBACE,WAAA,KADF,mBACE,WAAA,MADF,oBACE,WAAA,OADF,qBACE,WAAA,SjByKJ,aAAA,4BiB1KE,iBACE,WAAA,KADF,kBACE,WAAA,MADF,mBACE,WAAA,OADF,oBACE,WAAA,SCOV,gBAAkB,QAAA,eAElB,aACE,EAII,WAAA,cACA,MAAA,eACA,2BAAA,QAAA,aAAA,QAOF,mBAAA,eAAA,WAAA,eACA,YAAA,eAjBJ,gBAoBoB,QAAA,gBAClB,gBAAkB,QAAA,eAElB,qBAAuB,QAAA,gBACvB,qBAAuB,QAAA,6BACvB,qBAAuB,QAAA,0BACvB,kBAAoB,QAAA,oBACpB,kBAAoB,QAAA,qBACpB,kBAAoB,QAAA,qBAGpB,Ef4vBF,Ue3vBc,gBAAA,UAEV,cAAgB,QAAA,KAAA,WAAA,IAIlB,Yf2vBF,mBADA,6BexvBuB,QAAA,GAGrB,kBAAoB,QAAA,KAAA,YAAA,If2vBtB,WexvBE,IAEE,OAAA,IAAA,MAAA,QACA,kBAAA,MAIF,MAAQ,QAAA,mBfuvBV,IervBE,GACM,kBAAA,MhB4CR,IgB1CQ,UAAA,eAEN,MAAQ,OAAA,KfuvBV,GACA,GetvBE,EAGE,QAAA,EACA,OAAA,EAIF,GfkvBF,GejvBO,iBAAA,MAGL,oBACE,kBAAA,MCjEJ,KCsEA,UAAA,MAnCE,aAAA,KACA,YAAA,Kd0GF,YAAA,aAEE,QAAA,MACA,QAAA,IAQF,YACE,MAAA,Ka1JF,sBAAA,uBELE,cAAA,EACA,aAAA,EFIF,UCyDE,aAAA,SACA,YAAA,SpB8FI,aAAA,4BmBxJN,UCyDE,aAAA,UACA,YAAA,WpB8FI,aAAA,4BmBxJN,UCyDE,aAAA,UACA,YAAA,WD1DF,mBAeM,aAAA,EACA,YAAA,EAhBN,cCsEA,UAAA,KDtEA,mBAyBM,aAAA,KACA,YAAA,KA1BN,yBCsEA,UAAA,KDtEA,0BAAA,2BELE,cAAA,QACA,aAAA,QFIF,2BAAA,4BELE,cAAA,SACA,aAAA,SFoDF,QAAA,SErDE,cAAA,QACA,aAAA,QCTF,MAAA,KCqBA,MAAA,KvBgJM,aAAA,4BmBxGN,QAAA,SErDE,cAAA,SACA,aAAA,UGJA,QAAA,qCAAA,SAAA,sCACE,MAAA,KACA,MAAA,KAKA,qCAAA,sCACE,MAAA,MA6CN,kCAAA,mCACE,MAAA,KLcF,gBAAA,iBACE,MAAA,KAIF,qBAAA,sBACE,aAAA,EACA,YAAA,EACA,cAAA,EACA,aAAA,EAME,SGxFJ,MAAA,SH+FQ,cKzEN,SAAA,SACA,KAAA,SL8EM,cK/EN,SAAA,SACA,KAAA,ULwFI,gBK3DN,YAAA,ELoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,SLoCI,SGxFJ,MAAA,IH+FQ,cKzEN,SAAA,SACA,KAAA,IL8EM,cK/EN,SAAA,SACA,KAAA,KLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ILoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,IH+FQ,cKzEN,SAAA,SACA,KAAA,IL8EM,cK/EN,SAAA,SACA,KAAA,KLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ILoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,IH+FQ,cKzEN,SAAA,SACA,KAAA,IL8EM,cK/EN,SAAA,SACA,KAAA,KLwFI,gBK3DN,YAAA,ULoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ILoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ULoCI,UGxFJ,MAAA,KH+GM,iBK3DN,YAAA,ULmEI,oBAAA,qBM/GF,MAAA,KACA,MAAA,KN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,IN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,UN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,IN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,IN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,UN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,UN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,MN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KNqFF,wBAAA,yBErHA,cAAA,EACA,aAAA,EFoHA,qBAII,aAAA,EACA,YAAA,EAIJ,kCACE,aAAA,EACA,YAAA,EAGF,0BAAA,2BEnIA,cAAA,QACA,aAAA,QFwIE,gBKjHF,aAAA,KACA,YAAA,KALA,gBAAA,6CACE,MAAA,KACA,MAAA,KL+HA,cAAA,cAAA,kBKjHJ,SAAA,OACA,aAAA,EACA,YAAA,EAzCE,cAAA,2CAAA,cAAA,2CAAA,kBAAA,+CACE,MAAA,KACA,MAAA,KAKA,2CAAA,2CAAA,+CACE,MAAA,MxBwJA,aAAA,4BmB7EF,UGxFJ,MAAA,SH+FQ,eKzEN,SAAA,SACA,KAAA,SL8EM,eK/EN,SAAA,SACA,KAAA,ULwFI,iBK3DN,YAAA,ELoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,SLoCI,UGxFJ,MAAA,IH+FQ,eKzEN,SAAA,SACA,KAAA,IL8EM,eK/EN,SAAA,SACA,KAAA,KLwFI,iBK3DN,YAAA,ULoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ILoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ULoCI,UGxFJ,MAAA,IH+FQ,eKzEN,SAAA,SACA,KAAA,IL8EM,eK/EN,SAAA,SACA,KAAA,KLwFI,iBK3DN,YAAA,ULoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ILoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ULoCI,UGxFJ,MAAA,IH+FQ,eKzEN,SAAA,SACA,KAAA,IL8EM,eK/EN,SAAA,SACA,KAAA,KLwFI,iBK3DN,YAAA,ULoCI,WGxFJ,MAAA,UH+FQ,gBKzEN,SAAA,SACA,KAAA,UL8EM,gBK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ILoCI,WGxFJ,MAAA,UH+FQ,gBKzEN,SAAA,SACA,KAAA,UL8EM,gBK/EN,SAAA,SACA,KAAA,WLwFI,kBK3DN,YAAA,ULoCI,WGxFJ,MAAA,KH+GM,kBK3DN,YAAA,ULmEI,qBAAA,sBM/GF,MAAA,KACA,MAAA,KN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,IN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,UN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,IN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,IN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,UN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,UN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KN+EA,qBAAA,sBM/GF,MAAA,KACA,MAAA,MN8GE,qCAAA,sCMvFA,MAAA,KNuFA,uCAAA,wCMnFA,MAAA,KNmFA,gCAAA,iCM/EA,MAAA,KNqFF,yBAAA,0BErHA,cAAA,EACA,aAAA,EFoHA,sBAII,aAAA,EACA,YAAA,EAIJ,mCACE,aAAA,EACA,YAAA,EAGF,2BAAA,4BEnIA,cAAA,SACA,aAAA,SFwIE,iBKjHF,aAAA,KACA,YAAA,KALA,iBAAA,8CACE,MAAA,KACA,MAAA,KL+HA,eAAA,eAAA,mBKjHJ,SAAA,OACA,aAAA,EACA,YAAA,EAzCE,eAAA,4CAAA,eAAA,4CAAA,mBAAA,gDACE,MAAA,KACA,MAAA,KAKA,4CAAA,4CAAA,gDACE,MAAA,OxBwJA,aAAA,4BmB7EF,SGxFJ,MAAA,SH+FQ,cKzEN,SAAA,SACA,KAAA,SL8EM,cK/EN,SAAA,SACA,KAAA,ULwFI,gBK3DN,YAAA,ELoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,SLoCI,SGxFJ,MAAA,IH+FQ,cKzEN,SAAA,SACA,KAAA,IL8EM,cK/EN,SAAA,SACA,KAAA,KLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ILoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,IH+FQ,cKzEN,SAAA,SACA,KAAA,IL8EM,cK/EN,SAAA,SACA,KAAA,KLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ILoCI,SGxFJ,MAAA,UH+FQ,cKzEN,SAAA,SACA,KAAA,UL8EM,cK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ULoCI,SGxFJ,MAAA,IH+FQ,cKzEN,SAAA,SACA,KAAA,IL8EM,cK/EN,SAAA,SACA,KAAA,KLwFI,gBK3DN,YAAA,ULoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,gBK3DN,YAAA,ILoCI,UGxFJ,MAAA,UH+FQ,eKzEN,SAAA,SACA,KAAA,UL8EM,eK/EN,SAAA,SACA,KAAA,WLwFI,iBK3DN,YAAA,ULoCI,UGxFJ,MAAA,KH+GM,iBK3DN,YAAA,ULmEI,oBAAA,qBM/GF,MAAA,KACA,MAAA,KN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,IN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,UN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,IN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,IN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,UN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,UN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KN+EA,oBAAA,qBM/GF,MAAA,KACA,MAAA,MN8GE,oCAAA,qCMvFA,MAAA,KNuFA,sCAAA,uCMnFA,MAAA,KNmFA,+BAAA,gCM/EA,MAAA,KNqFF,wBAAA,yBErHA,cAAA,EACA,aAAA,EFoHA,qBAII,aAAA,EACA,YAAA,EAIJ,kCACE,aAAA,EACA,YAAA,EAGF,0BAAA,2BEnIA,cAAA,SACA,aAAA,SFwIE,gBKjHF,aAAA,KACA,YAAA,KALA,gBAAA,6CACE,MAAA,KACA,MAAA,KL+HA,cAAA,cAAA,kBKjHJ,SAAA,OACA,aAAA,EACA,YAAA,EAzCE,cAAA,2CAAA,cAAA,2CAAA,kBAAA,+CACE,MAAA,KACA,MAAA,KAKA,2CAAA,2CAAA,+CACE,MAAA,OLuJN,cEtHE,cAAA,QAEA,0BACE,cAAA,ErBoHE,aAAA,4BmBDN,cEtHE,cAAA,SAEA,0BACE,cAAA,GK6QJ,QA1OA,QAAA,aACA,eAAA,OACA,OAAA,EAAA,EAAA,KAAA,EAUE,QAAA,MAAA,IAGF,OAAA,IAAA,MAAA,YACA,cAAA,EACA,mBAAA,iBAAA,KAAA,QAAA,CAAA,MAAA,KAAA,SAAA,WAAA,iBAAA,KAAA,QAAA,CAAA,MAAA,KAAA,SACA,YAAA,QACA,UAAA,MAEA,mBAAA,KACA,YAAA,EACA,WAAA,OACA,OAAA,QtBu7CA,+BEv2CE,QAAA,EoBkIF,aAMM,UAAA,MANN,cAMM,UAAA,OANN,cAMM,UAAA,QANN,iBA3ME,QAAA,MACA,MAAA,KACA,aAAA,EACA,YAAA,EAiEF,QAAA,iBAAA,uBAAA,uBAAA,kBAAA,wBAAA,wBAIE,iBAAA,QACA,MAAA,QAGF,cAAA,cACE,iBAAA,QACA,MAAA,QAVF,gBAAA,yBAAA,+BAAA,+BAAA,0BAAA,gCAAA,gCAIE,iBAAA,QACA,MAAA,QAGF,sBAAA,sBACE,iBAAA,QACA,MAAA,QAVF,kBAAA,2BAAA,iCAAA,iCAAA,4BAAA,kCAAA,kCAIE,iBAAA,QACA,MAAA,QAGF,wBAAA,wBACE,iBAAA,QACA,MAAA,QAVF,gBAAA,yBAAA,+BAAA,+BAAA,0BAAA,gCAAA,gCAIE,iBAAA,QACA,MAAA,QAGF,sBAAA,sBACE,iBAAA,QACA,MAAA,QAVF,gBAAA,yBAAA,+BAAA,+BAAA,0BAAA,gCAAA,gCAIE,iBAAA,QACA,MAAA,QAGF,sBAAA,sBACE,iBAAA,QACA,MAAA,QAVF,cAAA,uBAAA,6BAAA,6BAAA,wBAAA,8BAAA,8BAIE,iBAAA,QACA,MAAA,QAGF,oBAAA,oBACE,iBAAA,QACA,MAAA,QAQA,eAAA,wBAAA,8BAAA,8BAAA,qBAAA,qBAAA,yBAAA,+BAAA,+BACE,iBAAA,YAiBJ,eAAA,wBAAA,8BAAA,8BAAA,yBAAA,+BAAA,+BAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,qBAAA,qBACE,aAAA,QACA,MAAA,QAVF,uBAAA,gCAAA,sCAAA,sCAAA,iCAAA,uCAAA,uCAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,6BAAA,6BACE,aAAA,QACA,MAAA,QAVF,yBAAA,kCAAA,wCAAA,wCAAA,mCAAA,yCAAA,yCAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,+BAAA,+BACE,aAAA,QACA,MAAA,QAVF,uBAAA,gCAAA,sCAAA,sCAAA,iCAAA,uCAAA,uCAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,6BAAA,6BACE,aAAA,QACA,MAAA,QAVF,uBAAA,gCAAA,sCAAA,sCAAA,iCAAA,uCAAA,uCAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,6BAAA,6BACE,aAAA,QACA,MAAA,QAVF,qBAAA,8BAAA,oCAAA,oCAAA,+BAAA,qCAAA,qCAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,2BAAA,2BACE,aAAA,QACA,MAAA,QAQA,cAAA,uBAAA,6BAAA,6BAAA,oBAAA,oBAAA,wBAAA,8BAAA,8BACE,aAAA,YACA,iBAAA,YAeJ,cAAA,uBAAA,6BAAA,6BAAA,wBAAA,8BAAA,8BAIE,MAAA,QAGF,oBAAA,oBACE,MAAA,QARF,sBAAA,+BAAA,qCAAA,qCAAA,gCAAA,sCAAA,sCAIE,MAAA,QAGF,4BAAA,4BACE,MAAA,QARF,wBAAA,iCAAA,uCAAA,uCAAA,kCAAA,wCAAA,wCAIE,MAAA,QAGF,8BAAA,8BACE,MAAA,QARF,sBAAA,+BAAA,qCAAA,qCAAA,gCAAA,sCAAA,sCAIE,MAAA,QAGF,4BAAA,4BACE,MAAA,QARF,sBAAA,+BAAA,qCAAA,qCAAA,gCAAA,sCAAA,sCAIE,MAAA,QAGF,4BAAA,4BACE,MAAA,QARF,oBAAA,6BAAA,mCAAA,mCAAA,8BAAA,oCAAA,oCAIE,MAAA,QAGF,0BAAA,0BACE,MAAA,QAwDF,iBAAA,kBA/CA,QAAA,IACA,OAAA,YAYA,wBpB7PA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,KAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,YoBoPA,SAAA,SACA,IAAA,KAEA,QAAA,aACA,MAAA,MACA,YAAA,IA2BF,8BAAA,+BAoEQ,iBAAA,QApER,sCAAA,uCA0EY,iBAAA,QA1EZ,wCAAA,yCA0EY,iBAAA,QA1EZ,sCAAA,uCA0EY,iBAAA,QA1EZ,sCAAA,uCA0EY,iBAAA,QA1EZ,oCAAA,qCA0EY,iBAAA,QA1EZ,0BAmFI,IAAA,MACA,MAAA,KACA,YAAA,EAIJ,eAAA,eAGI,gBAAA,KClNJ,cAlLA,cAAA,KAcE,UAAA,ErBuHF,qBAAA,sBAEE,QAAA,MACA,QAAA,IAQF,qBACE,MAAA,KqBhIF,sBACE,OAAA,EACA,aAAA,IACA,cAAA,IACA,UAAA,MAMA,iCACE,aAAA,EAsJJ,2BAMM,UAAA,MANN,4BAMM,UAAA,OANN,4BAMM,UAAA,QANN,uBA3GE,aAAA,KAEA,8BAAA,+BAEE,QAAA,KAWE,sDACE,MAAA,iBAOA,6DAAA,mGACE,QAAA,aACA,MAAA,gBACA,aAAA,IAEA,8GAAA,wEACE,aAAA,KANJ,6DAAA,mGACE,QAAA,aACA,MAAA,sBACA,aAAA,IAEA,8GAAA,wEACE,aAAA,KANJ,6DAAA,mGACE,QAAA,aACA,MAAA,gBACA,aAAA,IAEA,8GAAA,wEACE,aAAA,KANJ,6DAAA,mGACE,QAAA,aACA,MAAA,gBACA,aAAA,IAEA,8GAAA,wEACE,aAAA,KANJ,6DAAA,mGACE,QAAA,aACA,MAAA,sBACA,aAAA,IAEA,8GAAA,wEACE,aAAA,KD6DZ,8BAAA,uCAAA,6CAAA,6CAAA,wCAAA,8CAAA,8CAIE,iBAAA,QACA,MAAA,QAGF,oCAAA,oCACE,iBAAA,QACA,MAAA,QAVF,gCAAA,yCAAA,+CAAA,+CAAA,0CAAA,gDAAA,gDAIE,iBAAA,QACA,MAAA,QAGF,sCAAA,sCACE,iBAAA,QACA,MAAA,QAVF,8BAAA,uCAAA,6CAAA,6CAAA,wCAAA,8CAAA,8CAIE,iBAAA,QACA,MAAA,QAGF,oCAAA,oCACE,iBAAA,QACA,MAAA,QAVF,8BAAA,uCAAA,6CAAA,6CAAA,wCAAA,8CAAA,8CAIE,iBAAA,QACA,MAAA,QAGF,oCAAA,oCACE,iBAAA,QACA,MAAA,QAVF,4BAAA,qCAAA,2CAAA,2CAAA,sCAAA,4CAAA,4CAIE,iBAAA,QACA,MAAA,QAGF,kCAAA,kCACE,iBAAA,QACA,MAAA,QAQA,6BAAA,sCAAA,4CAAA,4CAAA,mCAAA,mCAAA,uCAAA,6CAAA,6CACE,iBAAA,YAiBJ,6BAAA,sCAAA,4CAAA,4CAAA,uCAAA,6CAAA,6CAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,mCAAA,mCACE,aAAA,QACA,MAAA,QAVF,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDAAA,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,2CAAA,2CAAA,2CAAA,2CACE,aAAA,QACA,MAAA,QAVF,uCAAA,gDAAA,sDAAA,sDAAA,iDAAA,uDAAA,uDAAA,uCAAA,gDAAA,sDAAA,sDAAA,iDAAA,uDAAA,uDAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,6CAAA,6CAAA,6CAAA,6CACE,aAAA,QACA,MAAA,QAVF,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDAAA,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,2CAAA,2CAAA,2CAAA,2CACE,aAAA,QACA,MAAA,QAVF,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDAAA,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,2CAAA,2CAAA,2CAAA,2CACE,aAAA,QACA,MAAA,QAVF,mCAAA,4CAAA,kDAAA,kDAAA,6CAAA,mDAAA,mDAAA,mCAAA,4CAAA,kDAAA,kDAAA,6CAAA,mDAAA,mDAIE,OAAA,IAAA,MAAA,QACA,MAAA,QAGF,yCAAA,yCAAA,yCAAA,yCACE,aAAA,QACA,MAAA,QAQA,4BAAA,qCAAA,2CAAA,2CAAA,kCAAA,kCAAA,sCAAA,4CAAA,4CACE,aAAA,YACA,iBAAA,YAeJ,4BAAA,qCAAA,2CAAA,2CAAA,sCAAA,4CAAA,4CAIE,MAAA,QAGF,kCAAA,kCACE,MAAA,QARF,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDAAA,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDAIE,MAAA,QAGF,0CAAA,0CAAA,0CAAA,0CACE,MAAA,QARF,sCAAA,+CAAA,qDAAA,qDAAA,gDAAA,sDAAA,sDAAA,sCAAA,+CAAA,qDAAA,qDAAA,gDAAA,sDAAA,sDAIE,MAAA,QAGF,4CAAA,4CAAA,4CAAA,4CACE,MAAA,QARF,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDAAA,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDAIE,MAAA,QAGF,0CAAA,0CAAA,0CAAA,0CACE,MAAA,QARF,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDAAA,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDAIE,MAAA,QAGF,0CAAA,0CAAA,0CAAA,0CACE,MAAA,QARF,kCAAA,2CAAA,iDAAA,iDAAA,4CAAA,kDAAA,kDAAA,kCAAA,2CAAA,iDAAA,iDAAA,4CAAA,kDAAA,kDAIE,MAAA,QAGF,wCAAA,wCAAA,wCAAA,wCACE,MAAA,QC3LF,8BACE,aAAA,UAEA,sCACE,kBAAA,YA6DJ,8BAAA,yCAAA,wCAKI,MAAA,KAGF,yCAAA,oDAAA,mDACE,cAAA,EAmDJ,0CAAA,yCAAA,+BA3GE,aAAA,KAEA,iDAAA,kDAAA,gDAAA,iDAAA,sCAAA,uCAEE,QAAA,KAWE,yEAAA,wEAAA,8DACE,MAAA,iBAOA,gFAAA,sHAAA,+EAAA,qHAAA,qEAAA,2GACE,QAAA,aACA,MAAA,gBACA,aAAA,IAEA,iIAAA,2FAAA,gIAAA,0FAAA,sHAAA,gFACE,aAAA,KANJ,gFAAA,sHAAA,+EAAA,qHAAA,qEAAA,2GACE,QAAA,aACA,MAAA,sBACA,aAAA,IAEA,iIAAA,2FAAA,gIAAA,0FAAA,sHAAA,gFACE,aAAA,KANJ,gFAAA,sHAAA,+EAAA,qHAAA,qEAAA,2GACE,QAAA,aACA,MAAA,gBACA,aAAA,IAEA,iIAAA,2FAAA,gIAAA,0FAAA,sHAAA,gFACE,aAAA,KANJ,gFAAA,sHAAA,+EAAA,qHAAA,qEAAA,2GACE,QAAA,aACA,MAAA,gBACA,aAAA,IAEA,iIAAA,2FAAA,gIAAA,0FAAA,sHAAA,gFACE,aAAA,KANJ,gFAAA,sHAAA,+EAAA,qHAAA,qEAAA,2GACE,QAAA,aACA,MAAA,sBACA,aAAA,IAEA,iIAAA,2FAAA,gIAAA,0FAAA,sHAAA,gFACE,aAAA,K3B2CN,aAAA,4B2BQN,wCAKI,MAAA,KAEF,cAAA,G3BfI,aAAA,4B2BQN,yCAKI,MAAA,KAEF,cAAA,G3BfI,aAAA,kC2BmCN,yCAmEM,QAAA,MAnEN,iDAsEQ,QAAA,MACA,aAAA,G3B1GF,aAAA,kC2BmCN,0CA8EM,QAAA,MA9EN,kDAiFQ,QAAA,MACA,aAAA,GC7LR,cAZA,SAAA,SACA,QAAA,GACA,MAAA,QACA,OAAA,QxBo0DA,qCE5tDE,QAAA,EsBtGF,oBAAA,oBAEE,MAAA,QAKF,oBAxBA,MAAA,OACA,IAAA,MACA,UAAA,MACA,YAAA,EAqBA,cAAA,qBAxBA,MAAA,KACA,IAAA,MACA,UAAA,IACA,YAAA,ECpCA,OAZA,QAAA,aACA,QAAA,UAAA,MAEA,cAAA,EAEA,UAAA,MACA,YAAA,EACA,YAAA,OACA,OAAA,QAOE,WAAA,QACA,MAAA,QAJF,eAQM,WAAA,QACA,MAAA,QATN,iBAQM,WAAA,QACA,MAAA,QATN,eAQM,WAAA,QACA,MAAA,QATN,eAQM,WAAA,QACA,MAAA,QATN,aAQM,WAAA,QACA,MAAA,QClBN,UAnCA,OAAA,KACA,cAAA,KACA,cAAA,EACA,iBAAA,QAgCA,kCAMQ,iBAAA,QANR,oCAMQ,iBAAA,QANR,kCAMQ,iBAAA,QANR,kCAMQ,iBAAA,QANR,gCAMQ,iBAAA,QAOR,gBAxCA,SAAA,SACA,QAAA,MACA,MAAA,GACA,OAAA,KACA,iBAAA,QAyCA,qBxByMA,SAAA,SACA,IAAA,IACA,KAAA,IACA,kBAAA,qBAAA,cAAA,qBAAA,UAAA,qBwB3OA,OAAA,EACA,UAAA,OACA,YAAA,IACA,MAAA,QACA,YAAA,OC2EA,QAtFA,SAAA,SACA,OAAA,MACA,WAAA,QACA,cAAA,QAEA,iBAAA,QACA,OAAA,QACA,oBAAA,KAAA,iBAAA,KAAA,gBAAA,KAAA,YAAA,KACA,iBAAA,KAAA,aAAA,KAmFA,aA9EA,SAAA,SACA,IAAA,EACA,KAAA,EAEA,QAAA,aACA,UAAA,KACA,OAAA,MAEA,iBAAA,QACA,mBAAA,IAAA,IAAA,YAAA,WAAA,IAAA,IAAA,YAEA,yBACE,mBAAA,IAAA,GAAA,OAAA,WAAA,IAAA,GAAA,OAuEF,ezB+HA,SAAA,SACA,IAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iByBhMA,KAAA,EACA,QAAA,EACA,OAAA,aAAA,OAAA,KAEA,QAAA,aACA,MAAA,OACA,OAAA,OAEA,cAAA,EACA,iBAAA,QACA,mBAAA,IAAA,IAAA,YAAA,WAAA,IAAA,IAAA,YACA,iBAAA,aAAA,aAAA,a3Bo9DA,sCE30DE,QAAA,EyBvIF,qBACE,iBAAA,QAGF,2BACE,mBAAA,IAAA,GAAA,OAAA,WAAA,IAAA,GAAA,OACA,OAAA,iBAAA,OAAA,SAiDF,iB5B0+DF,kB4BthEE,QAAA,IACA,OAAA,YAiDA,iBA7CA,QAAA,aACA,MAAA,MACA,OAAA,QACA,OAAA,EAAA,QACA,kBAAA,YAAA,cAAA,YAAA,UAAA,YAEA,8BACE,IAAA,EACA,MAAA,MACA,WAAA,KAGF,gCACE,SAAA,SACA,IAAA,EACA,KAAA,IACA,MAAA,OACA,OAAA,OACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBCmHF,QAlJA,SAAA,SACA,cAAA,KACA,QAAA,EAGA,UAAA,QACA,YAAA,IACA,MAAA,QAEA,oBAAA,KAAA,iBAAA,KAAA,gBAAA,KAAA,YAAA,KA2IE,OAAA,KAIF,cA1IA,SAAA,SACA,cAAA,EACA,QAAA,EA6IA,eAnIA,SAAA,SACA,QAAA,MACA,MAAA,KACA,OAAA,KAEA,cAAA,EACA,WAAA,QACA,mBAAA,IAAA,KAAA,SAAA,WAAA,IAAA,KAAA,SAGA,YAAA,QACA,MAAA,QAEA,OAAA,QAGA,qBACE,OAAA,EAIF,sBACE,SAAA,SACA,IAAA,OACA,KAAA,OAEA,QAAA,MACA,MAAA,OACA,OAAA,OAEA,kBAAA,mBAAA,UAAA,mBACA,cAAA,EACA,WAAA,QACA,mBAAA,IAAA,KAAA,SAAA,WAAA,IAAA,KAAA,SACA,QAAA,GAIF,6BACE,WAAA,QADF,oCAII,KAAA,QAKJ,8BACE,OAAA,YACA,QAAA,G5Bk9DF,kDEz5DE,QAAA,E0B8BF,eAAA,iBA7EA,SAAA,SACA,IAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAgFA,eA3EA,KAAA,GACA,QAAA,KAEA,mCACE,QAAA,MA6EF,iBAvEA,MAAA,IAEA,qCACE,QAAA,KA0EF,aAvDA,OAAA,OAEA,4BACE,MAAA,KACA,OAAA,OACA,UAAA,QAGF,mCACE,IAAA,OACA,KAAA,OACA,MAAA,KACA,OAAA,KAGF,iDACE,KAAA,QA2CF,cA3DA,OAAA,QAEA,6BACE,MAAA,OACA,OAAA,QACA,UAAA,OAGF,oCACE,IAAA,OACA,KAAA,OACA,MAAA,QACA,OAAA,QAGF,kDACE,KAAA,KA+CF,cA/DA,OAAA,OAEA,6BACE,MAAA,KACA,OAAA,OACA,UAAA,KAGF,oCACE,IAAA,OACA,KAAA,OACA,MAAA,KACA,OAAA,KAGF,kDACE,KAAA,QC8FF,MA9GA,gBAAA,SACA,MAAA,KACA,cAAA,KACA,cAAA,E9BmjEA,MACA,M8B5oEA,MAGE,OAAA,IAAA,MAAA,QACA,iBAAA,QAIF,QACE,QAAA,MAAA,QAAA,QACA,YAAA,IfjDA,MesDA,WAAA,QACA,MAAA,QAIF,MACE,WAAA,QACA,MAAA,Q9BmoEF,S8B/nEA,SAII,WAAA,I9BgoEJ,SADA,SADA,S8BloEA,SAUI,QAAA,MAAA,QAAA,QACA,YAAA,IACA,WAAA,K9B6nEJ,S8BxnEA,SAGI,QAAA,MAAA,QAAA,QArEA,yBACE,cAAA,EACA,iBAAA,QA8EF,sBAEE,iBAAA,QAlEN,yBACE,cAAA,IAAA,MAAA,QACA,iBAAA,QjC2EI,aAAA,kCiCwGJ,kBACE,QAAA,KAIJ,kBACE,QAAA,K9BigEF,eADA,e8B7/DA,eAGE,QAAA,MAGF,eACE,WAAA,GAeF,aAvGA,QAAA,MACA,MAAA,KACA,WAAA,KAOE,2BACE,iBAAA,QAMF,2BACE,iBAAA,QAMF,2BACE,iBAAA,QAOA,uDACE,iBAAA,QA+EN,cACE,WAAA,KClRF,OAXA,QAAA,aACA,UAAA,MACA,QAAA,KAEA,cAAA,IAEA,UAAA,MACA,WAAA,OAOE,WAAA,QACA,MAAA,QAJF,eAQM,WAAA,QACA,MAAA,QATN,iBAQM,WAAA,QACA,MAAA,QATN,eAQM,WAAA,QACA,MAAA,QATN,eAQM,WAAA,QACA,MAAA,QATN,aAQM,WAAA,QACA,MAAA,QCoDN,aA7CA,OAAA,EAAA,EAAA,KAAA,EACA,WAAA,K7BuGA,oBAAA,qBAEE,QAAA,MACA,QAAA,IAQF,oBACE,MAAA,K6BhHF,gBACE,MAAA,KAEA,UAAA,SACA,MAAA,QACA,OAAA,QAGE,eAAA,UAQE,wCACE,SAAA,SACA,OAAA,EAAA,OACA,QAAA,EACA,QAAA,IACA,MAAA,QAUR,eACE,MAAA,QAEA,qBACE,gBAAA,UAMJ,uBAII,MAAA,QACA,OAAA,YCvBJ,SA1CA,SAAA,SACA,OAAA,EAAA,EAAA,KAAA,EACA,QAAA,KAEA,OAAA,IAAA,MAAA,mBACA,cAAA,EAiBA,iBAAA,KACA,MAAA,QAfA,sBACE,WAAA,EAGF,qBACE,cAAA,EA6BF,iBApBA,iBAAA,QACA,MAAA,QAmBA,mBApBA,iBAAA,QACA,MAAA,QAmBA,iBApBA,iBAAA,QACA,MAAA,QAmBA,iBApBA,iBAAA,QACA,MAAA,QAmBA,eApBA,iBAAA,QACA,MAAA,QAmBA,eAfA,YAAA,MACA,cAAA,MACA,eAAA,MACA,aAAA,MAYA,eAfA,YAAA,KACA,cAAA,KACA,eAAA,KACA,aAAA,KC+BA,MAlDA,cAAA,KAEA,OAAA,IAAA,MAAA,QACA,cAAA,EAEA,WAAA,QACA,mBAAA,KAAA,WAAA,KAEA,SAAA,OACA,MAAA,QAEA,kBACE,cAAA,EA0CF,cA5BA,QAAA,KACA,WAAA,QAEA,0BACE,cAAA,EA4BF,cAhBA,QAAA,KAEA,0BACE,cAAA,EAmBF,YACE,WAAA,ICxDF,eA5BA,SAAA,SACA,QAAA,GAEA,QAAA,KAEA,MAAA,MACA,QAAA,KAEA,WAAA,OACA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QAEA,UAAA,KAIA,0BACE,QAAA,MAGF,uBACE,QAAA,MACA,WAAA,QAUA,oBAEI,MAAA,MAFJ,qBAEI,MAAA,MAFJ,qBAEI,MAAA,MC4FN,YAnFA,YAAA,EACA,cAAA,KjCkFA,mBAAA,oBAEE,QAAA,MACA,QAAA,IAQF,mBACE,MAAA,KiC3FF,eACE,aAAA,SACA,cAAA,EACA,UAAA,QAME,QAAA,KAEA,2BAAA,0BAEE,QAAA,avC4EA,aAAA,4BuCzFN,eAuBM,QAAA,cAMN,cpCs2EA,mBoCp2EE,QAAA,MACA,QAAA,SAAA,QACA,cAAA,EACA,MAAA,QAEA,oBpCq2EA,yBoCp2EE,WAAA,QA0CJ,qBA/BA,QAAA,SAAA,QACA,WAAA,QACA,MAAA,QACA,OAAA,QA4BA,sBApBA,QAAA,SAAA,QACA,MAAA,QACA,OAAA,YAEA,4BACE,WAAA,IAeF,6BANA,QAAA,SAAA,QACA,QAAA,QACA,MAAA,QAqBE,+BpC4zEJ,sCoC1zEM,QAAA,aACA,aAAA,MACA,QAAA,IAGF,0BpC2zEJ,iCoCzzEM,QAAA,aACA,YAAA,MACA,QAAA,IC7CJ,SAnGA,SAAA,SACA,QAAA,aAEA,cAAA,OAAA,IAAA,QACA,YAAA,IACA,OAAA,KAkGA,SA9FA,SAAA,SACA,IAAA,sBACA,QAAA,KAEA,UAAA,MACA,QAAA,OAEA,cAAA,EACA,iBAAA,QACA,UAAA,IACA,MAAA,QAEA,iBACE,SAAA,SAIA,wBlClCF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,OAEA,QAAA,GAOE,iBAAA,EACA,aAAA,YAAA,YAAA,QkCqBE,OAAA,KAGF,qCACE,KAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAKF,qBlC9CF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,OAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,YkCqCE,IAAA,KACA,OAAA,KAGF,kCACE,KAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAKF,sBlC3DF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,OAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,QkC0CE,KAAA,KAGF,mCACE,OAAA,KACA,IAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAKF,uBlCxEF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,OAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,YkCmDE,MAAA,KACA,KAAA,KAGF,oCACE,OAAA,KACA,IAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAIJ,2BACE,OAAA,KACA,IAAA,IAGF,8BACE,OAAA,IACA,IAAA,KAGF,4BACE,KAAA,IACA,MAAA,KAGF,6BACE,KAAA,KACA,MAAA,ICCF,WAxFA,YAAA,EACA,WAAA,QACA,gBAAA,KAGE,sCACE,OAAA,YAOJ,yCACE,cAAA,EAGF,uCACE,cAAA,EA8EF,iBAlEA,SAAA,SACA,QAAA,MACA,QAAA,QAAA,KAEA,OAAA,IAAA,MAAA,QACA,cAAA,EAEA,UAAA,OACA,YAAA,EACA,MAAA,QAEA,6CACE,cAAA,IAAA,MAAA,QACA,cAAA,EAGF,uBAAA,uBAEE,iBAAA,QAIA,yBACE,SAAA,SACA,IAAA,IACA,MAAA,KACA,WAAA,OACA,QAAA,IAGF,oCACE,QAAA,IAuCJ,mBA3BA,QAAA,KACA,QAAA,KAEA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QAEA,MAAA,QAEA,0CACE,cAAA,IAAA,MAAA,QCrCF,cApFA,QAAA,MACA,cAAA,KAMA,kBACE,UAAA,KAgFF,sBA7DE,QAAA,WACA,eAAA,IAGF,kCACE,cAAA,KAGF,oDACE,aAAA,KAGF,kCACE,cAAA,E1CqHI,aAAA,kC0ClHN,uCAwBA,QAAA,EACA,eAAA,KAOE,QAAA,MAhCF,2CAoCE,MAAA,MAxBA,6BACE,eAAA,OAGF,6BACE,eAAA,OCyEJ,OArGA,SAAA,SAyGA,iBApGA,SAAA,SACA,OAAA,EACA,OAAA,EACA,WAAA,KACA,SAAA,OAoGA,aA/FA,MAAA,KACA,SAAA,SAGE,mCACE,IAAA,EACA,KAAA,EA6FJ,cAvFA,OAAA,EA2FA,aAtFA,MAAA,KACA,UAAA,KACA,OAAA,EAwFA,eAnFA,SAAA,SACA,OAAA,EACA,MAAA,KACA,cAAA,EACA,QAAA,KAEA,iBAAA,kBACA,MAAA,QAgFA,YAAA,gBrCiEA,SAAA,SACA,IAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBqC5IA,QAAA,GACA,QAAA,KACA,MAAA,QvC4gFA,mCAAA,uCE96EE,QAAA,EqC5FF,mBAAA,kBAAA,kBAAA,uBAAA,sBAAA,sBAGE,iBAAA,kBAsEF,gBAhEA,KAAA,EAqEA,YAhEA,KAAA,KACA,MAAA,EAoEA,eA9DA,SAAA,SACA,WAAA,MACA,cAAA,MACA,WAAA,OvCmgFA,sCE/7EE,QAAA,EqClEF,sBACE,MAAA,OACA,OAAA,OACA,OAAA,MAEA,cAAA,IACA,iBAAA,QAEA,4BACE,iBAAA,QAGF,gCACE,iBAAA,QxC+lFN,YyCxsFE,kBAnBA,SAAA,SACA,OAAA,EACA,cAAA,KACA,eAAA,IACA,SAAA,OzCmuFA,kBAFA,mBACA,mBAEA,kBALA,wByC7tFA,yBzC4tFA,yBAEA,wByC1tFE,SAAA,SACA,IAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KzCiuFF,uByC5tFA,6BAQM,eAAA,OC2FN,MAjFA,OAAA,EACA,OAAA,IAAA,MAAA,QACA,WAAA,QACA,gBAAA,KvCwGA,aAAA,cAEE,QAAA,MACA,QAAA,IAQF,aACE,MAAA,KuC/GF,kBACE,QAAA,MACA,MAAA,KACA,MAAA,KAgFF,kBAEI,QAAA,EAFJ,wBAKM,WAAA,IAMN,cACE,WAAA,QADF,mBAII,MAAA,QAJJ,yBAAA,yBAQM,WAAA,QAKN,YA3FA,MAAA,KAEA,cAEE,QAAA,MACA,QAAA,QAAA,OACA,UAAA,OACA,YAAA,EACA,MAAA,QzConFA,qCExgFA,QAAA,EuC1GA,oBACE,WAAA,QACA,MAAA,QAGF,oBAAA,kCAEE,WAAA,QACA,MAAA,QA6EJ,cAlEA,OAAA,IAAA,MAAA,QACA,WAAA,EACA,WAAA,QACA,MAAA,QACA,mBAAA,IAAA,IAAA,KAAA,WAAA,IAAA,IAAA,KAkEA,uBA3DA,OAAA,IAAA,MAAA,QACA,YAAA,EA8DA,YAvDA,QAAA,KACA,QAAA,KAEA,sBACE,QAAA,MC/EF,WAzBA,QAAA,aACA,UAAA,KACA,cAAA,KAEA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,mBAAA,EAAA,EAAA,EAAA,IAAA,kBAAA,WAAA,EAAA,EAAA,EAAA,IAAA,kBAEA,YAAA,EAqBA,YAjBA,mBAAA,mBAAA,IAAA,SAAA,WAAA,mBAAA,IAAA,SAAA,WAAA,WAAA,IAAA,SAAA,WAAA,WAAA,IAAA,QAAA,CAAA,mBAAA,IAAA,SAEA,kBAAA,kBAEE,mBAAA,EAAA,EAAA,IAAA,IAAA,oBAAA,WAAA,EAAA,EAAA,IAAA,IAAA,oBAGF,kBACE,mBAAA,KAAA,WAAA,KC6UF,MA1UA,QAAA,EACA,OAAA,EACA,WAAA,KACA,SAAA,S3CqsFA,gCEvjFE,QAAA,EH8pFF,c4CjyFA,QAEE,YAAA,EACA,gBAAA,KACA,QAAA,MACA,QAAA,MAAA,K5CmyFF,QACA,a4ChyFA,Y5C8xFA,a4C1xFE,cAAA,EAGF,YACE,QAAA,aAgGE,SAAA,oBACE,QAAA,aAUF,kBACE,QAAA,MA+LN,eA/RE,QAAA,MACA,MAAA,KAEA,kBACE,QAAA,WACA,eAAA,OA4GJ,mBACE,YAAA,KAGF,eACE,QAAA,E/CvCI,aAAA,4B+CKF,2BACE,QAAA,aAUF,yBACE,QAAA,MA+LN,sBA/RE,QAAA,MACA,MAAA,KAEA,yBACE,QAAA,WACA,eAAA,OA0RJ,oBA/RE,QAAA,MACA,MAAA,KAEA,uBACE,QAAA,WACA,eAAA,Q/C0EE,aAAA,4B+CKF,0BACE,QAAA,aAUF,wBACE,QAAA,MA+LN,qBA/RE,QAAA,MACA,MAAA,KAEA,wBACE,QAAA,WACA,eAAA,OA0RJ,mBA/RE,QAAA,MACA,MAAA,KAEA,sBACE,QAAA,WACA,eAAA,QA0RJ,aAzJE,aAAA,EACA,YAAA,K5C6rFF,c4ChrFE,gB5CirFF,gB4C9qFI,eAAA,O5CirFF,mB4C/qFE,qB5CgrFF,qB4C/qFI,eAAA,O5CsrFN,oBADsB,sBAEtB,sBACA,kBADuB,oBAEvB,oBALA,mBADoB,qBAEpB,qBAHA,iB4CxrFE,mB5CyrFF,mB4CtrFI,eAAA,O5CmsFF,yBAD6B,2BAE7B,2BACA,uBAD8B,yBAE9B,yBALA,wBAD2B,0BAE3B,0BAHA,sB4C7rFE,wB5C8rFF,wB4C7rFI,eAAA,O5CssFN,uB4C7pFI,yB5C8pFJ,yBACA,8BAD0B,gCAE1B,gC4C7pFM,aAAA,OAGE,QAAA,a5C8pFR,wB4CnpFI,0B5CopFJ,0BACA,+BAD2B,iCAE3B,iC4CnpFM,YAAA,OAGE,QAAA,aAMN,oBAAA,2BAKI,WAAA,O5C2oFJ,sB4CxoFE,wB5CyoFF,wBACA,6BADyB,+BAEzB,+B4CvoFM,QAAA,MACA,OAAA,EAAA,KAAA,OAWN,uBAAA,8BAKI,WAAA,O5C4nFJ,yB4CznFE,2B5C0nFF,2BACA,gCAD4B,kCAE5B,kC4CxnFM,QAAA,MACA,OAAA,OAAA,KAAA,EA0BR,mBALA,WAAA,QACA,MAAA,QAIA,gBALA,WAAA,QACA,MAAA,QAIA,iBA9QI,WAAA,KA8QJ,kBAtPI,WAAA,MAEA,8BACE,WAAA,KAIA,uCACE,WAAA,MA8OR,0BA7JE,aAAA,KACA,YAAA,EA4JF,mBA7NI,WAAA,OAEA,+BACE,WAAA,KA0NN,iBAbA,QAAA,MAAA,KAEA,YAAA,IACA,YAAA,EACA,MAAA,QAwIE,qBA5VE,WAAA,OAEA,iCACE,WAAA,KAqWN,iCACE,QAAA,KC9gBF,W1CwGA,SAAA,SACA,QAAA,aACA,eAAA,OACA,MAAA,KACA,OAAA,KACA,OAAA,QAGA,kBACE,SAAA,SACA,IAAA,EACA,KAAA,EAEA,QAAA,MACA,MAAA,KACA,OAAA,IAEA,WAAA,QACA,mBAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAAA,WAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAEA,QAAA,GAWA,wBACE,WAAA,QACA,mBAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAAA,WAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,Q0CrIJ,gB1CoGA,SAAA,SACA,QAAA,aACA,eAAA,OACA,MAAA,KACA,OAAA,KACA,OAAA,QAGA,uBACE,SAAA,SACA,IAAA,EACA,KAAA,EAEA,QAAA,MACA,MAAA,KACA,OAAA,IAEA,WAAA,QACA,mBAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAAA,WAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAEA,QAAA,GAWA,6BACE,WAAA,QACA,mBAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAAA,WAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,Q2C7DJ,mBAWI,MAAA,KAXJ,kBAkBI,QAAA,MAAA,KAlBJ,wCAsBI,QAAA,MAAA,KAtBJ,6CF6JE,aAAA,EACA,YAAA,KE9JF,yDFyJE,aAAA,KACA,YAAA,EElLF,wEACE,SAAA,SAEA,+E3CXF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,Y2CEE,SAAA,SACA,IAAA,IACA,WAAA,KACA,MAAA,KAIJ,iEACE,MAAA,KACA,KAAA,KAGF,kEACE,MAAA,KACA,KAAA,KAKF,0EAuCM,kBAAA,eAAA,cAAA,eAAA,UAAA,eACA,yBAAA,IAAA,IAAA,qBAAA,IAAA,IAAA,iBAAA,IAAA,IAYN,6BACE,SAAA,SAGF,sBACE,aAAA,KAIF,gBACE,SAAA,SACA,IAAA,EACA,MAAA,EAEA,MAAA,KACA,OAAA,KAEA,OAAA,QARF,uB3C7FA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,Y2CsGE,IAAA,EACA,OAAA,EACA,OAAA,KAKJ,2CACE,kBAAA,WAAA,cAAA,WAAA,UAAA,WACA,yBAAA,IAAA,IAAA,qBAAA,IAAA,IAAA,iBAAA,IAAA,IAGF,qB3C8CA,SAAA,mBACA,MAAA,cACA,OAAA,cACA,QAAA,YACA,SAAA,iBACA,KAAA,wBACA,YAAA,iBACA,OAAA,Y4CtJA,cACE,SAAA,SACA,SAAA,OAFF,iBAKI,QAAA,MALJ,6BASI,mBAAA,OAAA,IAAA,WAAA,OAAA,IAKJ,aAEI,QAAA,MAAA,KACA,WAAA,QAHJ,iCAQI,SAAA,SACA,IAAA,EACA,KAAA,KACA,QAAA,GAEA,MAAA,KACA,WAAA,QACA,mBAAA,kBAAA,KAAA,OAAA,WAAA,kBAAA,KAAA,OAAA,WAAA,UAAA,KAAA,OAAA,WAAA,UAAA,KAAA,MAAA,CAAA,kBAAA,KAAA,OAfJ,2CAkBM,QAAA,EACA,QAAA,MACA,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBApBN,4CAwBM,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAxBN,mCA6BM,QAAA,MAAA,KA7BN,wCHmJE,aAAA,EACA,YAAA,EGpJF,6CAsCI,WAAA,KAhFJ,0CACE,SAAA,SAEA,iD5CHF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,Q4CdE,SAAA,SACA,IAAA,IACA,WAAA,KACA,MAAA,KAIJ,4D5CZA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,Q4CLA,MAAA,KACA,KAAA,KAGF,6D5ClBA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,Y4CHA,MAAA,KACA,KAAA,KAqBF,wC5C1CA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,Y4CiEI,QAAA,aACA,eAAA,OACA,aAAA,OCnDF,kDACE,IAAA,KACA,MAAA,EACA,KAAA,KAKF,mDACE,IAAA,KACA,MAAA,KACA,KAAA,EAKF,+CACE,SAAA,SACA,cAAA,OAGF,sD7C5DJ,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,Y6CmDI,MAAA,IACA,KAAA,KACA,WAAA,K/CwiGR,wCE38FI,QAAA,E6CzDF,oBAUI,QAAA,MAAA,KAVJ,8BAeI,WAAA,IACA,MAAA,QAGF,yBACE,QAAA,KApBJ,2CJyFE,aAAA,EACA,YAAA,EIxHE,gDACE,IAAA,EAIA,2DACE,IAAA,EACA,MAAA,KACA,KAAA,KAKF,4DACE,MAAA,KACA,KAAA,KAhER,oCACE,MAAA,KAGF,+C7CzBA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,Y6CIA,MAAA,KACA,KAAA,IAGF,gD7C/BA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,QNmHI,aAAA,4BmD/FF,oEACE,IAAA,KACA,MAAA,EACA,KAAA,KAKF,qEACE,IAAA,KACA,MAAA,KACA,KAAA,EAKF,iEACE,SAAA,SACA,cAAA,OAGF,wE7C5DJ,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,Y6CmDI,MAAA,IACA,KAAA,KACA,WAAA,KAMF,uDACE,IAAA,EAIA,kEACE,IAAA,EACA,MAAA,KACA,KAAA,KAKF,mEACE,MAAA,KACA,KAAA,KAhER,2CACE,MAAA,KAGF,sD7CzBA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,Y6CIA,MAAA,KACA,KAAA,IAGF,uD7C/BA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,SNmHI,aAAA,4BmD/FF,mEACE,IAAA,KACA,MAAA,EACA,KAAA,KAKF,oEACE,IAAA,KACA,MAAA,KACA,KAAA,EAKF,gEACE,SAAA,SACA,cAAA,OAGF,uE7C5DJ,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAGE,oBAAA,EACA,aAAA,QAAA,YAAA,Y6CmDI,MAAA,IACA,KAAA,KACA,WAAA,KAMF,sDACE,IAAA,EAIA,iEACE,IAAA,EACA,MAAA,KACA,KAAA,KAKF,kEACE,MAAA,KACA,KAAA,KAhER,0CACE,MAAA,KAGF,qD7CzBA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,Y6CIA,MAAA,KACA,KAAA,IAGF,sD7C/BA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,S6CiFF,0DA+CM,IAAA,KACA,MAAA,EACA,KAAA,KAKN,2BACE,MAAA,MADF,uCAII,MAAA,MAIJ,4BACE,SAAA,SADF,qCAII,SAAA,SACA,IAAA,IACA,MAAA,IACA,KAAA,KACA,WAAA,KARJ,6DAaI,IAAA,KAKE,KAAA,KAlBN,4DAuBI,MAAA,KACA,KAAA,KAxBJ,6DA4BI,MAAA,KACA,KAAA,KAIJ,qBACE,SAAA,SACA,IAAA,EACA,KAAA,KACA,QAAA,EAEA,QAAA,KACA,UAAA,MAEA,OAAA,IAAA,MAAA,QACA,WAAA,QAEA,iCACE,QAAA,MAAA,KA3LJ,0DACE,MAAA,KAGF,qE7CzBA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAeE,kBAAA,EACA,aAAA,YAAA,QAAA,YAAA,Y6CIA,MAAA,KACA,KAAA,IAGF,sE7C/BA,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,IAEA,QAAA,GAWE,mBAAA,EACA,aAAA,YAAA,YAAA,YAAA,Q6CgLF,0CAwBM,WAAA,KAxBN,wBA6BI,MAAA,KA7BJ,wCAmCI,QAAA,MCxLJ,oBACE,SAAA,OAIF,uBACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,GAEA,MAAA,KACA,OAAA,KAEA,mBAAA,QAAA,IAAA,IAAA,CAAA,WAAA,IAAA,KAAA,WAAA,QAAA,IAAA,IAAA,CAAA,WAAA,IAAA,KAEA,WAAA,sBAEA,QAAA,EACA,WAAA,OAEA,SAAA,OAhBF,kCAmBI,QAAA,EACA,WAAA,QApBJ,mCAwBI,OAAA,QAxBJ,2CA4BI,SAAA,SA5BJ,wCAgCI,SAAA,MAkUJ,oBA3TA,SAAA,SACA,SAAA,OA+TA,YAnTE,SAAA,MAOF,QAAA,GAOA,mBAAA,kBAAA,IAAA,KAAA,WAAA,kBAAA,IAAA,KAAA,WAAA,UAAA,IAAA,KAAA,WAAA,UAAA,IAAA,IAAA,CAAA,kBAAA,IAAA,KACA,4BAAA,OAAA,oBAAA,OAEA,WAAA,QhD6vGA,mCExtGE,QAAA,E8C5CF,+BACE,QAAA,GASF,sBACE,WAAA,OAIF,kCACE,QAAA,GAEA,0CACE,mBAAA,EAAA,EAAA,KAAA,kBAAA,WAAA,EAAA,EAAA,KAAA,kBAKJ,oBACE,kBAAA,eAAA,cAAA,eAAA,UAAA,eA2RF,qBA3TE,SAAA,SAIF,QAAA,GAOA,mBAAA,kBAAA,IAAA,KAAA,WAAA,kBAAA,IAAA,KAAA,WAAA,UAAA,IAAA,KAAA,WAAA,UAAA,IAAA,IAAA,CAAA,kBAAA,IAAA,KACA,4BAAA,OAAA,oBAAA,OAEA,WAAA,QhDgxGA,4CE3uGE,QAAA,E8C5CF,wCACE,QAAA,GASF,+BACE,WAAA,OAIF,2CACE,QAAA,GAEA,mDACE,mBAAA,EAAA,EAAA,KAAA,kBAAA,WAAA,EAAA,EAAA,KAAA,kBAKJ,6BACE,kBAAA,eAAA,cAAA,eAAA,UAAA,eAgSF,eArRE,IAAA,EACA,KAAA,EACA,OAAA,KACA,WAAA,KACA,2BAAA,MAII,MAAA,MACA,kBAAA,mBAAA,cAAA,mBAAA,UAAA,mBAKI,8CAIF,kBAAA,mBAAA,cAAA,mBAAA,UAAA,mBAJE,4EAQJ,kBAAA,eAAA,cAAA,eAAA,UAAA,eAKI,qDAIA,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBA0HR,kC9C9TA,mBAAA,MAAA,MAAA,EAAA,KAAA,MAAA,mBAAA,WAAA,MAAA,MAAA,EAAA,KAAA,MAAA,mB8C2bF,gBAhPE,IAAA,EACA,MAAA,EACA,OAAA,KACA,WAAA,KACA,2BAAA,MAII,MAAA,MACA,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBAKI,+CAIF,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBAJE,6EAQJ,kBAAA,eAAA,cAAA,eAAA,UAAA,eAKI,sDAIA,kBAAA,mBAAA,cAAA,mBAAA,UAAA,mBAoFR,mC9ChUA,mBAAA,MAAA,KAAA,EAAA,KAAA,MAAA,mBAAA,WAAA,MAAA,KAAA,EAAA,KAAA,MAAA,mB8C8bF,cA3ME,IAAA,EACA,KAAA,EACA,MAAA,KACA,WAAA,KACA,2BAAA,MAII,OAAA,MACA,kBAAA,mBAAA,cAAA,mBAAA,UAAA,mBAKI,6CAGF,kBAAA,mBAAA,cAAA,mBAAA,UAAA,mBAHE,2EAOJ,kBAAA,eAAA,cAAA,eAAA,UAAA,eAKI,oDAIA,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBA+CR,iC9C5TA,mBAAA,MAAA,EAAA,MAAA,KAAA,MAAA,mBAAA,WAAA,MAAA,EAAA,MAAA,KAAA,MAAA,mB8C2bF,iBAvKE,OAAA,EACA,KAAA,EACA,MAAA,KACA,WAAA,KACA,2BAAA,MAII,OAAA,MACA,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBAKI,gDAGF,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBAHE,8EAOJ,kBAAA,eAAA,cAAA,eAAA,UAAA,eAKI,uDAIA,kBAAA,mBAAA,cAAA,mBAAA,UAAA,mBAUR,oC9ClUA,mBAAA,MAAA,EAAA,KAAA,KAAA,MAAA,mBAAA,WAAA,MAAA,EAAA,KAAA,KAAA,MAAA,mB8CmcF,oBA7GA,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,4BAAA,OAAA,oBAAA,OAGA,2CAAA,wCAEE,mBAAA,kBAAA,IAAA,KAAA,WAAA,kBAAA,IAAA,KAAA,WAAA,UAAA,IAAA,KAAA,WAAA,UAAA,IAAA,IAAA,CAAA,kBAAA,IAAA,KAIF,wCACE,kBAAA,eAAA,cAAA,eAAA,UAAA,eAIF,wCACE,kBAAA,eAAA,cAAA,eAAA,UAAA,epD5MI,aAAA,4BoDiTA,iCA1FN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,+CACE,QAAA,KAIF,qDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,oCACN,YAAA,MAIF,qDACE,YAAA,MAsEI,kCA9FN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,gDACE,QAAA,KAIF,sDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,qCACN,aAAA,MAIF,sDACE,aAAA,MA0EI,gCAlGN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,8CACE,QAAA,KAIF,oDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,mCACN,WAAA,MAIF,oDACE,WAAA,MA8EI,mCAtGN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,iDACE,QAAA,KAIF,uDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,sCACN,cAAA,MAIF,uDACE,cAAA,OpD/OI,aAAA,4BoDiTA,gCA1FN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,8CACE,QAAA,KAIF,oDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,oCACN,YAAA,MAIF,oDACE,YAAA,MAsEI,iCA9FN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,+CACE,QAAA,KAIF,qDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,qCACN,aAAA,MAIF,qDACE,aAAA,MA0EI,+BAlGN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,6CACE,QAAA,KAIF,mDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,mCACN,WAAA,MAIF,mDACE,WAAA,MA8EI,kCAtGN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,gDACE,QAAA,KAIF,sDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,sCACN,cAAA,MAIF,sDACE,cAAA,OpD/OI,aAAA,4BoDwUA,iCAnFN,WAAA,QACA,OAAA,KACA,SAAA,OACA,WAAA,IACA,MAAA,KACA,SAAA,QACA,mBAAA,KAAA,WAAA,KAGA,iDAAA,+CAAA,gDAAA,8CAIE,mBAAA,KAAA,WAAA,KACA,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGF,+CACE,QAAA,MpDvQI,aAAA,4BoDwUA,gCAnFN,WAAA,QACA,OAAA,KACA,SAAA,OACA,WAAA,IACA,MAAA,KACA,SAAA,QACA,mBAAA,KAAA,WAAA,KAGA,gDAAA,8CAAA,+CAAA,6CAIE,mBAAA,KAAA,WAAA,KACA,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGF,8CACE,QAAA,MnDrTF,oBACE,SAAA,MACA,MAAA,KACA,WAAA,OAHF,kCAMI,WAAA,OACA,2BAAA,MAPJ,yBAWI,WAAA,OAKJ,gBA7FA,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAEA,QAAA,KACA,iBAAA,mBACA,WAAA,KACA,2BAAA,MAwFA,QAlFA,QAAA,KAEA,4BAAA,OAAA,oBAAA,OAEA,QAAA,KACA,QAAA,KAEA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QA4EE,SAAA,SACA,IAAA,MACA,aAAA,KACA,YAAA,KACA,WAAA,KACA,2BAAA,MG4hHF,+BEp/GE,QAAA,ENvBI,aAAA,4BCzBN,QAtEE,WAAA,GAIF,gBAAA,iBACE,UAAA,EAIF,oBACE,cAAA,EDqFI,aAAA,4BCzBN,QA9CE,MAAA,MACA,UAAA,OA6CF,iBAYI,QAAA,EDaE,aAAA,4BCzBN,aA9CE,MAAA,IACA,UAAA,ODsEI,aAAA,4BCzBN,cA9CE,MAAA,IACA,UAAA,ODsEI,aAAA,4BCzBN,cA9CE,MAAA,IACA,UAAA,OA6CF,aAvCA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EAEA,MAAA,KACA,UAAA,KACA,OAAA,KACA,WAAA,KACA,YAAA,EAEA,OAAA,EACA,cAAA,EDoDM,aAAA,kCCzBN,QAvCA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EAEA,MAAA,KACA,UAAA,KACA,OAAA,KACA,WAAA,KACA,YAAA,EAEA,OAAA,EACA,cAAA,GA2BA,wBA8BI,SAAA,MoDnLJ,kBACE,SAAA,SAGF,QACE,SAAA,SACA,QAAA,EACA,kBAAA,mBAAA,UAAA,mBAGF,iBACE,SAAA,MACA,QAAA,EACA,MAAA,KAHF,2BAMI,IAAA,EANJ,8BAUI,OAAA,EAIJ,oBACE,SAAA,SACA,MAAA,KACA,KAAA,KAHF,iCAMI,OAAA,ECEJ,WACE,QAAA,MACA,WAAA,QACA,MAAA,QhDiIF,kBAAA,mBAEE,QAAA,MACA,QAAA,IAQF,kBACE,MAAA,KgDhJF,sBAeI,YAAA,OACA,aAAA,OAeF,gBACE,MAAA,KAGF,iBACE,MAAA,MACA,WAAA,MAIJ,iBACE,QAAA,aACA,eAAA,OACA,YAAA,ICwCF,SA7EA,QAAA,MjD6HA,gBAAA,iBAEE,QAAA,MACA,QAAA,IAQF,gBACE,MAAA,KiDvIF,SpDu+HA,YoDr+HE,iBAAA,QAWF,eACE,UAAA,MACA,aAAA,KAIF,4BACE,MAAA,KACA,aAAA,EAGF,sBACE,MAAA,KAkBA,uBpDu8HF,wBoDr8HI,MAAA,KvDwFE,aAAA,4BuD1FJ,uBpD28HA,wBoDl7HE,MAAA,MvDiEE,aAAA,kCuD1FJ,0CpD+8HA,2CoD78HE,MAAA,MvDwFE,aAAA,kCuD1FJ,yCpDm9HA,0CoDj9HE,MAAA,MAiEF,eACE,QAAA,aACA,MAAA,KACA,QAAA,MAAA,KAAA,MAAA,EAHF,0BAMI,OAAA,IAIJ,cACE,MAAA,KAGF,eACE,MAAA,MClKJ,YACE,MAAA,eAGF,aACE,MAAA,gBAGF,cACE,QAAA,MACA,aAAA,KACA,YAAA,KlDqJF,iBAAA,kBAEE,QAAA,MACA,QAAA,IAQF,iBACE,MAAA,KmDrHF,MACE,QAAA,eAGF,WACE,WAAA,OAEF,SACE,WAAA,QzD2GI,aAAA,kCyD5FJ,qBA7BA,QAAA,gBAnBA,kCAAA,4BAoDA,qBAnDE,QAAA,gBzD2IE,aAAA,4ByDrGF,iBA5BF,QAAA,gBzDsII,yCyDtGF,iBApEF,QAAA,gBzDqKI,aAAA,uDyD5FJ,sBA7BA,QAAA,gBAnBA,yCAAA,4BAoDA,sBAnDE,QAAA,gBzD2IE,aAAA,4ByDrGF,gBA5BF,QAAA,gBzDsII,yCyDtGF,gBApEF,QAAA,gBzDqKI,aAAA,uDyD5FJ,qBA7BA,QAAA,gBAnBA,yCAAA,4BAoDA,qBAnDE,QAAA,gBA0DJ,atD8hIF,eGx6HE,SAAA,mBACA,MAAA,cACA,OAAA,cACA,QAAA,YACA,SAAA,iBACA,KAAA,wBACA,YAAA,iBACA,OAAA,YmDvHA,sBAAA,qBnDiIA,SAAA,iBACA,MAAA,eACA,OAAA,eACA,SAAA,kBACA,KAAA,eACA,YAAA,iBHq6HF,mBsDniIE,oBAEE,QAAA,gBzDsEI,0CG+9HJ,mBsDviIF,oBAKI,QAAA,iBzDmEE,yCGm+HJ,mBsD3iIF,oBASI,QAAA,gBAIJ,oBtDkiIF,mBsDhiII,QAAA,ezDyDI,0CyD3DN,oBtDsiIE,mBsDjiIE,QAAA,gBzDsDE,yCyD3DN,oBtD0iIE,mBsDjiIE,QAAA,iBAKJ,oBACE,QAAA,KAEF,oBACE,QAAA,MAEF,8CANA,oBAQI,QAAA,gBALJ,oBAQI,QAAA,gBAKJ,aACE,QAAA,KAEF,wCAAA,2BAHA,aAKI,QAAA,gBAEF,aACE,QAAA,gBAKJ,iBACE,QAAA,KAEF,2BACE,QAAA,MAEF,2BACE,QAAA","file":"foundation-float.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","@charset \"UTF-8\";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.foundation-mq{font-family:\"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:table;width:100%;margin-bottom:1rem}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap;display:table-cell;vertical-align:middle}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;width:1%;height:100%}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;width:1%;height:100%}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{height:2.4375rem;padding-top:0;padding-bottom:0;font-size:1rem}.input-group .input-group-button{display:table-cell}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>\");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:\"— \"}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:\" (\" attr(href) \")\"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:\" (\" attr(title) \")\"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.row{max-width:75rem;margin-right:auto;margin-left:auto}.row::after,.row::before{display:table;content:' '}.row::after{clear:both}.row.collapse>.column,.row.collapse>.columns{padding-right:0;padding-left:0}.row .row{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:64em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}.row .row.collapse{margin-right:0;margin-left:0}.row.expanded{max-width:none}.row.expanded .row{margin-right:auto;margin-left:auto}.row:not(.expanded) .row{max-width:none}.row.gutter-small>.column,.row.gutter-small>.columns{padding-right:.625rem;padding-left:.625rem}.row.gutter-medium>.column,.row.gutter-medium>.columns{padding-right:.9375rem;padding-left:.9375rem}.column,.columns{width:100%;float:left;padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.column,.columns{padding-right:.9375rem;padding-left:.9375rem}}.column,.column:last-child:not(:first-child),.columns,.columns:last-child:not(:first-child){float:left;clear:none}.column:last-child:not(:first-child),.columns:last-child:not(:first-child){float:right}.column.end:last-child:last-child,.end.columns:last-child:last-child{float:left}.column.row.row,.row.row.columns{float:none}.row .column.row.row,.row .row.row.columns{margin-right:0;margin-left:0;padding-right:0;padding-left:0}.small-1{width:8.33333%}.small-push-1{position:relative;left:8.33333%}.small-pull-1{position:relative;left:-8.33333%}.small-offset-0{margin-left:0}.small-2{width:16.66667%}.small-push-2{position:relative;left:16.66667%}.small-pull-2{position:relative;left:-16.66667%}.small-offset-1{margin-left:8.33333%}.small-3{width:25%}.small-push-3{position:relative;left:25%}.small-pull-3{position:relative;left:-25%}.small-offset-2{margin-left:16.66667%}.small-4{width:33.33333%}.small-push-4{position:relative;left:33.33333%}.small-pull-4{position:relative;left:-33.33333%}.small-offset-3{margin-left:25%}.small-5{width:41.66667%}.small-push-5{position:relative;left:41.66667%}.small-pull-5{position:relative;left:-41.66667%}.small-offset-4{margin-left:33.33333%}.small-6{width:50%}.small-push-6{position:relative;left:50%}.small-pull-6{position:relative;left:-50%}.small-offset-5{margin-left:41.66667%}.small-7{width:58.33333%}.small-push-7{position:relative;left:58.33333%}.small-pull-7{position:relative;left:-58.33333%}.small-offset-6{margin-left:50%}.small-8{width:66.66667%}.small-push-8{position:relative;left:66.66667%}.small-pull-8{position:relative;left:-66.66667%}.small-offset-7{margin-left:58.33333%}.small-9{width:75%}.small-push-9{position:relative;left:75%}.small-pull-9{position:relative;left:-75%}.small-offset-8{margin-left:66.66667%}.small-10{width:83.33333%}.small-push-10{position:relative;left:83.33333%}.small-pull-10{position:relative;left:-83.33333%}.small-offset-9{margin-left:75%}.small-11{width:91.66667%}.small-push-11{position:relative;left:91.66667%}.small-pull-11{position:relative;left:-91.66667%}.small-offset-10{margin-left:83.33333%}.small-12{width:100%}.small-offset-11{margin-left:91.66667%}.small-up-1>.column,.small-up-1>.columns{float:left;width:100%}.small-up-1>.column:nth-of-type(1n),.small-up-1>.columns:nth-of-type(1n){clear:none}.small-up-1>.column:nth-of-type(1n+1),.small-up-1>.columns:nth-of-type(1n+1){clear:both}.small-up-1>.column:last-child,.small-up-1>.columns:last-child{float:left}.small-up-2>.column,.small-up-2>.columns{float:left;width:50%}.small-up-2>.column:nth-of-type(1n),.small-up-2>.columns:nth-of-type(1n){clear:none}.small-up-2>.column:nth-of-type(2n+1),.small-up-2>.columns:nth-of-type(2n+1){clear:both}.small-up-2>.column:last-child,.small-up-2>.columns:last-child{float:left}.small-up-3>.column,.small-up-3>.columns{float:left;width:33.33333%}.small-up-3>.column:nth-of-type(1n),.small-up-3>.columns:nth-of-type(1n){clear:none}.small-up-3>.column:nth-of-type(3n+1),.small-up-3>.columns:nth-of-type(3n+1){clear:both}.small-up-3>.column:last-child,.small-up-3>.columns:last-child{float:left}.small-up-4>.column,.small-up-4>.columns{float:left;width:25%}.small-up-4>.column:nth-of-type(1n),.small-up-4>.columns:nth-of-type(1n){clear:none}.small-up-4>.column:nth-of-type(4n+1),.small-up-4>.columns:nth-of-type(4n+1){clear:both}.small-up-4>.column:last-child,.small-up-4>.columns:last-child{float:left}.small-up-5>.column,.small-up-5>.columns{float:left;width:20%}.small-up-5>.column:nth-of-type(1n),.small-up-5>.columns:nth-of-type(1n){clear:none}.small-up-5>.column:nth-of-type(5n+1),.small-up-5>.columns:nth-of-type(5n+1){clear:both}.small-up-5>.column:last-child,.small-up-5>.columns:last-child{float:left}.small-up-6>.column,.small-up-6>.columns{float:left;width:16.66667%}.small-up-6>.column:nth-of-type(1n),.small-up-6>.columns:nth-of-type(1n){clear:none}.small-up-6>.column:nth-of-type(6n+1),.small-up-6>.columns:nth-of-type(6n+1){clear:both}.small-up-6>.column:last-child,.small-up-6>.columns:last-child{float:left}.small-up-7>.column,.small-up-7>.columns{float:left;width:14.28571%}.small-up-7>.column:nth-of-type(1n),.small-up-7>.columns:nth-of-type(1n){clear:none}.small-up-7>.column:nth-of-type(7n+1),.small-up-7>.columns:nth-of-type(7n+1){clear:both}.small-up-7>.column:last-child,.small-up-7>.columns:last-child{float:left}.small-up-8>.column,.small-up-8>.columns{float:left;width:12.5%}.small-up-8>.column:nth-of-type(1n),.small-up-8>.columns:nth-of-type(1n){clear:none}.small-up-8>.column:nth-of-type(8n+1),.small-up-8>.columns:nth-of-type(8n+1){clear:both}.small-up-8>.column:last-child,.small-up-8>.columns:last-child{float:left}.small-collapse>.column,.small-collapse>.columns{padding-right:0;padding-left:0}.small-collapse .row{margin-right:0;margin-left:0}.expanded.row .small-collapse.row{margin-right:0;margin-left:0}.small-uncollapse>.column,.small-uncollapse>.columns{padding-right:.625rem;padding-left:.625rem}.small-centered{margin-right:auto;margin-left:auto}.small-centered,.small-centered:last-child:not(:first-child){float:none;clear:both}.small-pull-0,.small-push-0,.small-uncentered{position:static;margin-right:0;margin-left:0}.small-pull-0,.small-pull-0:last-child:not(:first-child),.small-push-0,.small-push-0:last-child:not(:first-child),.small-uncentered,.small-uncentered:last-child:not(:first-child){float:left;clear:none}.small-pull-0:last-child:not(:first-child),.small-push-0:last-child:not(:first-child),.small-uncentered:last-child:not(:first-child){float:right}@media print,screen and (min-width:40em){.medium-1{width:8.33333%}.medium-push-1{position:relative;left:8.33333%}.medium-pull-1{position:relative;left:-8.33333%}.medium-offset-0{margin-left:0}.medium-2{width:16.66667%}.medium-push-2{position:relative;left:16.66667%}.medium-pull-2{position:relative;left:-16.66667%}.medium-offset-1{margin-left:8.33333%}.medium-3{width:25%}.medium-push-3{position:relative;left:25%}.medium-pull-3{position:relative;left:-25%}.medium-offset-2{margin-left:16.66667%}.medium-4{width:33.33333%}.medium-push-4{position:relative;left:33.33333%}.medium-pull-4{position:relative;left:-33.33333%}.medium-offset-3{margin-left:25%}.medium-5{width:41.66667%}.medium-push-5{position:relative;left:41.66667%}.medium-pull-5{position:relative;left:-41.66667%}.medium-offset-4{margin-left:33.33333%}.medium-6{width:50%}.medium-push-6{position:relative;left:50%}.medium-pull-6{position:relative;left:-50%}.medium-offset-5{margin-left:41.66667%}.medium-7{width:58.33333%}.medium-push-7{position:relative;left:58.33333%}.medium-pull-7{position:relative;left:-58.33333%}.medium-offset-6{margin-left:50%}.medium-8{width:66.66667%}.medium-push-8{position:relative;left:66.66667%}.medium-pull-8{position:relative;left:-66.66667%}.medium-offset-7{margin-left:58.33333%}.medium-9{width:75%}.medium-push-9{position:relative;left:75%}.medium-pull-9{position:relative;left:-75%}.medium-offset-8{margin-left:66.66667%}.medium-10{width:83.33333%}.medium-push-10{position:relative;left:83.33333%}.medium-pull-10{position:relative;left:-83.33333%}.medium-offset-9{margin-left:75%}.medium-11{width:91.66667%}.medium-push-11{position:relative;left:91.66667%}.medium-pull-11{position:relative;left:-91.66667%}.medium-offset-10{margin-left:83.33333%}.medium-12{width:100%}.medium-offset-11{margin-left:91.66667%}.medium-up-1>.column,.medium-up-1>.columns{float:left;width:100%}.medium-up-1>.column:nth-of-type(1n),.medium-up-1>.columns:nth-of-type(1n){clear:none}.medium-up-1>.column:nth-of-type(1n+1),.medium-up-1>.columns:nth-of-type(1n+1){clear:both}.medium-up-1>.column:last-child,.medium-up-1>.columns:last-child{float:left}.medium-up-2>.column,.medium-up-2>.columns{float:left;width:50%}.medium-up-2>.column:nth-of-type(1n),.medium-up-2>.columns:nth-of-type(1n){clear:none}.medium-up-2>.column:nth-of-type(2n+1),.medium-up-2>.columns:nth-of-type(2n+1){clear:both}.medium-up-2>.column:last-child,.medium-up-2>.columns:last-child{float:left}.medium-up-3>.column,.medium-up-3>.columns{float:left;width:33.33333%}.medium-up-3>.column:nth-of-type(1n),.medium-up-3>.columns:nth-of-type(1n){clear:none}.medium-up-3>.column:nth-of-type(3n+1),.medium-up-3>.columns:nth-of-type(3n+1){clear:both}.medium-up-3>.column:last-child,.medium-up-3>.columns:last-child{float:left}.medium-up-4>.column,.medium-up-4>.columns{float:left;width:25%}.medium-up-4>.column:nth-of-type(1n),.medium-up-4>.columns:nth-of-type(1n){clear:none}.medium-up-4>.column:nth-of-type(4n+1),.medium-up-4>.columns:nth-of-type(4n+1){clear:both}.medium-up-4>.column:last-child,.medium-up-4>.columns:last-child{float:left}.medium-up-5>.column,.medium-up-5>.columns{float:left;width:20%}.medium-up-5>.column:nth-of-type(1n),.medium-up-5>.columns:nth-of-type(1n){clear:none}.medium-up-5>.column:nth-of-type(5n+1),.medium-up-5>.columns:nth-of-type(5n+1){clear:both}.medium-up-5>.column:last-child,.medium-up-5>.columns:last-child{float:left}.medium-up-6>.column,.medium-up-6>.columns{float:left;width:16.66667%}.medium-up-6>.column:nth-of-type(1n),.medium-up-6>.columns:nth-of-type(1n){clear:none}.medium-up-6>.column:nth-of-type(6n+1),.medium-up-6>.columns:nth-of-type(6n+1){clear:both}.medium-up-6>.column:last-child,.medium-up-6>.columns:last-child{float:left}.medium-up-7>.column,.medium-up-7>.columns{float:left;width:14.28571%}.medium-up-7>.column:nth-of-type(1n),.medium-up-7>.columns:nth-of-type(1n){clear:none}.medium-up-7>.column:nth-of-type(7n+1),.medium-up-7>.columns:nth-of-type(7n+1){clear:both}.medium-up-7>.column:last-child,.medium-up-7>.columns:last-child{float:left}.medium-up-8>.column,.medium-up-8>.columns{float:left;width:12.5%}.medium-up-8>.column:nth-of-type(1n),.medium-up-8>.columns:nth-of-type(1n){clear:none}.medium-up-8>.column:nth-of-type(8n+1),.medium-up-8>.columns:nth-of-type(8n+1){clear:both}.medium-up-8>.column:last-child,.medium-up-8>.columns:last-child{float:left}.medium-collapse>.column,.medium-collapse>.columns{padding-right:0;padding-left:0}.medium-collapse .row{margin-right:0;margin-left:0}.expanded.row .medium-collapse.row{margin-right:0;margin-left:0}.medium-uncollapse>.column,.medium-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}.medium-centered{margin-right:auto;margin-left:auto}.medium-centered,.medium-centered:last-child:not(:first-child){float:none;clear:both}.medium-pull-0,.medium-push-0,.medium-uncentered{position:static;margin-right:0;margin-left:0}.medium-pull-0,.medium-pull-0:last-child:not(:first-child),.medium-push-0,.medium-push-0:last-child:not(:first-child),.medium-uncentered,.medium-uncentered:last-child:not(:first-child){float:left;clear:none}.medium-pull-0:last-child:not(:first-child),.medium-push-0:last-child:not(:first-child),.medium-uncentered:last-child:not(:first-child){float:right}}@media print,screen and (min-width:64em){.large-1{width:8.33333%}.large-push-1{position:relative;left:8.33333%}.large-pull-1{position:relative;left:-8.33333%}.large-offset-0{margin-left:0}.large-2{width:16.66667%}.large-push-2{position:relative;left:16.66667%}.large-pull-2{position:relative;left:-16.66667%}.large-offset-1{margin-left:8.33333%}.large-3{width:25%}.large-push-3{position:relative;left:25%}.large-pull-3{position:relative;left:-25%}.large-offset-2{margin-left:16.66667%}.large-4{width:33.33333%}.large-push-4{position:relative;left:33.33333%}.large-pull-4{position:relative;left:-33.33333%}.large-offset-3{margin-left:25%}.large-5{width:41.66667%}.large-push-5{position:relative;left:41.66667%}.large-pull-5{position:relative;left:-41.66667%}.large-offset-4{margin-left:33.33333%}.large-6{width:50%}.large-push-6{position:relative;left:50%}.large-pull-6{position:relative;left:-50%}.large-offset-5{margin-left:41.66667%}.large-7{width:58.33333%}.large-push-7{position:relative;left:58.33333%}.large-pull-7{position:relative;left:-58.33333%}.large-offset-6{margin-left:50%}.large-8{width:66.66667%}.large-push-8{position:relative;left:66.66667%}.large-pull-8{position:relative;left:-66.66667%}.large-offset-7{margin-left:58.33333%}.large-9{width:75%}.large-push-9{position:relative;left:75%}.large-pull-9{position:relative;left:-75%}.large-offset-8{margin-left:66.66667%}.large-10{width:83.33333%}.large-push-10{position:relative;left:83.33333%}.large-pull-10{position:relative;left:-83.33333%}.large-offset-9{margin-left:75%}.large-11{width:91.66667%}.large-push-11{position:relative;left:91.66667%}.large-pull-11{position:relative;left:-91.66667%}.large-offset-10{margin-left:83.33333%}.large-12{width:100%}.large-offset-11{margin-left:91.66667%}.large-up-1>.column,.large-up-1>.columns{float:left;width:100%}.large-up-1>.column:nth-of-type(1n),.large-up-1>.columns:nth-of-type(1n){clear:none}.large-up-1>.column:nth-of-type(1n+1),.large-up-1>.columns:nth-of-type(1n+1){clear:both}.large-up-1>.column:last-child,.large-up-1>.columns:last-child{float:left}.large-up-2>.column,.large-up-2>.columns{float:left;width:50%}.large-up-2>.column:nth-of-type(1n),.large-up-2>.columns:nth-of-type(1n){clear:none}.large-up-2>.column:nth-of-type(2n+1),.large-up-2>.columns:nth-of-type(2n+1){clear:both}.large-up-2>.column:last-child,.large-up-2>.columns:last-child{float:left}.large-up-3>.column,.large-up-3>.columns{float:left;width:33.33333%}.large-up-3>.column:nth-of-type(1n),.large-up-3>.columns:nth-of-type(1n){clear:none}.large-up-3>.column:nth-of-type(3n+1),.large-up-3>.columns:nth-of-type(3n+1){clear:both}.large-up-3>.column:last-child,.large-up-3>.columns:last-child{float:left}.large-up-4>.column,.large-up-4>.columns{float:left;width:25%}.large-up-4>.column:nth-of-type(1n),.large-up-4>.columns:nth-of-type(1n){clear:none}.large-up-4>.column:nth-of-type(4n+1),.large-up-4>.columns:nth-of-type(4n+1){clear:both}.large-up-4>.column:last-child,.large-up-4>.columns:last-child{float:left}.large-up-5>.column,.large-up-5>.columns{float:left;width:20%}.large-up-5>.column:nth-of-type(1n),.large-up-5>.columns:nth-of-type(1n){clear:none}.large-up-5>.column:nth-of-type(5n+1),.large-up-5>.columns:nth-of-type(5n+1){clear:both}.large-up-5>.column:last-child,.large-up-5>.columns:last-child{float:left}.large-up-6>.column,.large-up-6>.columns{float:left;width:16.66667%}.large-up-6>.column:nth-of-type(1n),.large-up-6>.columns:nth-of-type(1n){clear:none}.large-up-6>.column:nth-of-type(6n+1),.large-up-6>.columns:nth-of-type(6n+1){clear:both}.large-up-6>.column:last-child,.large-up-6>.columns:last-child{float:left}.large-up-7>.column,.large-up-7>.columns{float:left;width:14.28571%}.large-up-7>.column:nth-of-type(1n),.large-up-7>.columns:nth-of-type(1n){clear:none}.large-up-7>.column:nth-of-type(7n+1),.large-up-7>.columns:nth-of-type(7n+1){clear:both}.large-up-7>.column:last-child,.large-up-7>.columns:last-child{float:left}.large-up-8>.column,.large-up-8>.columns{float:left;width:12.5%}.large-up-8>.column:nth-of-type(1n),.large-up-8>.columns:nth-of-type(1n){clear:none}.large-up-8>.column:nth-of-type(8n+1),.large-up-8>.columns:nth-of-type(8n+1){clear:both}.large-up-8>.column:last-child,.large-up-8>.columns:last-child{float:left}.large-collapse>.column,.large-collapse>.columns{padding-right:0;padding-left:0}.large-collapse .row{margin-right:0;margin-left:0}.expanded.row .large-collapse.row{margin-right:0;margin-left:0}.large-uncollapse>.column,.large-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}.large-centered{margin-right:auto;margin-left:auto}.large-centered,.large-centered:last-child:not(:first-child){float:none;clear:both}.large-pull-0,.large-push-0,.large-uncentered{position:static;margin-right:0;margin-left:0}.large-pull-0,.large-pull-0:last-child:not(:first-child),.large-push-0,.large-push-0:last-child:not(:first-child),.large-uncentered,.large-uncentered:last-child:not(:first-child){float:left;clear:none}.large-pull-0:last-child:not(:first-child),.large-push-0:last-child:not(:first-child),.large-uncentered:last-child:not(:first-child){float:right}}.column-block{margin-bottom:1.25rem}.column-block>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.column-block{margin-bottom:1.875rem}.column-block>:last-child{margin-bottom:0}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;font-size:0}.button-group::after,.button-group::before{display:table;content:' '}.button-group::after{clear:both}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded{margin-right:-1px}.button-group.expanded::after,.button-group.expanded::before{display:none}.button-group.expanded .button:first-child:last-child{width:calc(100% - 1px)}.button-group.expanded .button:first-child:nth-last-child(2),.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(3),.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(4),.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(5),.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.expanded .button:first-child:nth-last-child(6),.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{width:100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded,.button-group.stacked-for-small.expanded,.button-group.stacked.expanded{margin-right:-1px}.button-group.stacked-for-medium.expanded::after,.button-group.stacked-for-medium.expanded::before,.button-group.stacked-for-small.expanded::after,.button-group.stacked-for-small.expanded::before,.button-group.stacked.expanded::after,.button-group.stacked.expanded::before{display:none}.button-group.stacked-for-medium.expanded .button:first-child:last-child,.button-group.stacked-for-small.expanded .button:first-child:last-child,.button-group.stacked.expanded .button:first-child:last-child{width:calc(100% - 1px)}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(2),.button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button{display:inline-block;width:calc(50% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(3),.button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button{display:inline-block;width:calc(33.33333% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(4),.button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button{display:inline-block;width:calc(25% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(5),.button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button{display:inline-block;width:calc(20% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child{margin-right:-6px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6),.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6),.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button,.button-group.stacked.expanded .button:first-child:nth-last-child(6),.button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button{display:inline-block;width:calc(16.66667% - 1px);margin-right:1px}.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6)~.button:last-child,.button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child{margin-right:-6px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{width:auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{width:auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' '}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:\"/\";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' '}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:\"«\"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:\"»\"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:\"+\"}.is-active>.accordion-title::before{content:\"–\"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:block;margin-bottom:1rem}.media-object img{max-width:none}.media-object-section{display:table-cell;vertical-align:top}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;display:block}.stack-for-small .media-object-section img{width:100%}}.media-object-section.middle{vertical-align:middle}.media-object-section.bottom{vertical-align:bottom}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' '}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu li,.menu.horizontal li{display:inline-block}.menu.vertical li{display:block}.menu.expanded{display:table;width:100%}.menu.expanded>li{display:table-cell;vertical-align:middle}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal li{display:inline-block}.menu.medium-vertical li{display:block}.menu.medium-expanded{display:table;width:100%}.menu.medium-expanded>li{display:table-cell;vertical-align:middle}.menu.medium-simple{display:table;width:100%}.menu.medium-simple>li{display:table-cell;vertical-align:middle}}@media print,screen and (min-width:64em){.menu.large-horizontal li{display:inline-block}.menu.large-vertical li{display:block}.menu.large-expanded{display:table;width:100%}.menu.large-expanded>li{display:table-cell;vertical-align:middle}.menu.large-simple{display:table;width:100%}.menu.large-simple>li{display:table-cell;vertical-align:middle}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons i,.menu.icons img,.menu.icons svg{vertical-align:middle}.menu.icons i+span,.menu.icons img+span,.menu.icons svg+span{vertical-align:middle}.menu.icon-bottom i,.menu.icon-bottom img,.menu.icon-bottom svg,.menu.icon-left i,.menu.icon-left img,.menu.icon-left svg,.menu.icon-right i,.menu.icon-right img,.menu.icon-right svg,.menu.icon-top i,.menu.icon-top img,.menu.icon-top svg{vertical-align:middle}.menu.icon-bottom i+span,.menu.icon-bottom img+span,.menu.icon-bottom svg+span,.menu.icon-left i+span,.menu.icon-left img+span,.menu.icon-left svg+span,.menu.icon-right i+span,.menu.icon-right img+span,.menu.icon-right svg+span,.menu.icon-top i+span,.menu.icon-top img+span,.menu.icon-top svg+span{vertical-align:middle}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem;display:inline-block}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem;display:inline-block}.menu.icon-top li a,.menu.nested.icon-top li a{text-align:center}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{display:block;margin:0 auto .25rem}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{text-align:center}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{display:block;margin:.25rem auto 0}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{text-align:left}.menu.align-right{text-align:right}.menu.align-right .submenu li{text-align:left}.menu.align-right.vertical .submenu li{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center{text-align:center}.menu.align-center .submenu li{text-align:left}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{text-align:center}.menu-centered>.menu .submenu li{text-align:left}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column,.reveal .columns{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe}.title-bar::after,.title-bar::before{display:table;content:' '}.title-bar::after{clear:both}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left{float:left}.title-bar-right{float:right;text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{padding:.5rem}.top-bar::after,.top-bar::before{display:table;content:' '}.top-bar::after{clear:both}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{width:100%}@media print,screen and (min-width:40em){.top-bar .top-bar-left,.top-bar .top-bar-right{width:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{width:100%}}.top-bar-title{display:inline-block;float:left;padding:.5rem 1rem .5rem 0}.top-bar-title .menu-icon{bottom:2px}.top-bar-left{float:left}.top-bar-right{float:right}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' '}.clearfix::after{clear:both}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}\n/*# sourceMappingURL=foundation-float.min.css.map */\n","@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap;\n  display: table-cell;\n  vertical-align: middle; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  width: 1%;\n  height: 100%; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  width: 1%;\n  height: 100%; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    height: 2.4375rem;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\n.input-group .input-group-button {\n  display: table-cell; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.row {\n  max-width: 75rem;\n  margin-right: auto;\n  margin-left: auto; }\n  .row::before, .row::after {\n    display: table;\n    content: ' '; }\n  .row::after {\n    clear: both; }\n  .row.collapse > .column, .row.collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .row .row {\n    margin-right: -0.625rem;\n    margin-left: -0.625rem; }\n    @media print, screen and (min-width: 40em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    @media print, screen and (min-width: 64em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    .row .row.collapse {\n      margin-right: 0;\n      margin-left: 0; }\n  .row.expanded {\n    max-width: none; }\n    .row.expanded .row {\n      margin-right: auto;\n      margin-left: auto; }\n  .row:not(.expanded) .row {\n    max-width: none; }\n  .row.gutter-small > .column, .row.gutter-small > .columns {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem; }\n  .row.gutter-medium > .column, .row.gutter-medium > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n\n.column, .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  width: 100%;\n  float: left; }\n  @media print, screen and (min-width: 40em) {\n    .column, .columns {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: right; }\n  .column.end:last-child:last-child, .end.columns:last-child:last-child {\n    float: left; }\n\n.column.row.row, .row.row.columns {\n  float: none; }\n\n.row .column.row.row, .row .row.row.columns {\n  margin-right: 0;\n  margin-left: 0;\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-1 {\n  width: 8.33333%; }\n\n.small-push-1 {\n  position: relative;\n  left: 8.33333%; }\n\n.small-pull-1 {\n  position: relative;\n  left: -8.33333%; }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.small-2 {\n  width: 16.66667%; }\n\n.small-push-2 {\n  position: relative;\n  left: 16.66667%; }\n\n.small-pull-2 {\n  position: relative;\n  left: -16.66667%; }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.small-3 {\n  width: 25%; }\n\n.small-push-3 {\n  position: relative;\n  left: 25%; }\n\n.small-pull-3 {\n  position: relative;\n  left: -25%; }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.small-4 {\n  width: 33.33333%; }\n\n.small-push-4 {\n  position: relative;\n  left: 33.33333%; }\n\n.small-pull-4 {\n  position: relative;\n  left: -33.33333%; }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.small-5 {\n  width: 41.66667%; }\n\n.small-push-5 {\n  position: relative;\n  left: 41.66667%; }\n\n.small-pull-5 {\n  position: relative;\n  left: -41.66667%; }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.small-6 {\n  width: 50%; }\n\n.small-push-6 {\n  position: relative;\n  left: 50%; }\n\n.small-pull-6 {\n  position: relative;\n  left: -50%; }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.small-7 {\n  width: 58.33333%; }\n\n.small-push-7 {\n  position: relative;\n  left: 58.33333%; }\n\n.small-pull-7 {\n  position: relative;\n  left: -58.33333%; }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.small-8 {\n  width: 66.66667%; }\n\n.small-push-8 {\n  position: relative;\n  left: 66.66667%; }\n\n.small-pull-8 {\n  position: relative;\n  left: -66.66667%; }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.small-9 {\n  width: 75%; }\n\n.small-push-9 {\n  position: relative;\n  left: 75%; }\n\n.small-pull-9 {\n  position: relative;\n  left: -75%; }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.small-10 {\n  width: 83.33333%; }\n\n.small-push-10 {\n  position: relative;\n  left: 83.33333%; }\n\n.small-pull-10 {\n  position: relative;\n  left: -83.33333%; }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.small-11 {\n  width: 91.66667%; }\n\n.small-push-11 {\n  position: relative;\n  left: 91.66667%; }\n\n.small-pull-11 {\n  position: relative;\n  left: -91.66667%; }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.small-12 {\n  width: 100%; }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.small-up-1 > .column, .small-up-1 > .columns {\n  float: left;\n  width: 100%; }\n  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {\n    clear: both; }\n  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {\n    float: left; }\n\n.small-up-2 > .column, .small-up-2 > .columns {\n  float: left;\n  width: 50%; }\n  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {\n    clear: both; }\n  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {\n    float: left; }\n\n.small-up-3 > .column, .small-up-3 > .columns {\n  float: left;\n  width: 33.33333%; }\n  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {\n    clear: both; }\n  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {\n    float: left; }\n\n.small-up-4 > .column, .small-up-4 > .columns {\n  float: left;\n  width: 25%; }\n  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {\n    clear: both; }\n  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {\n    float: left; }\n\n.small-up-5 > .column, .small-up-5 > .columns {\n  float: left;\n  width: 20%; }\n  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {\n    clear: both; }\n  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {\n    float: left; }\n\n.small-up-6 > .column, .small-up-6 > .columns {\n  float: left;\n  width: 16.66667%; }\n  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {\n    clear: both; }\n  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {\n    float: left; }\n\n.small-up-7 > .column, .small-up-7 > .columns {\n  float: left;\n  width: 14.28571%; }\n  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {\n    clear: both; }\n  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {\n    float: left; }\n\n.small-up-8 > .column, .small-up-8 > .columns {\n  float: left;\n  width: 12.5%; }\n  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {\n    clear: both; }\n  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {\n    float: left; }\n\n.small-collapse > .column, .small-collapse > .columns {\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-collapse .row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.expanded.row .small-collapse.row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.small-uncollapse > .column, .small-uncollapse > .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n\n.small-centered {\n  margin-right: auto;\n  margin-left: auto; }\n  .small-centered, .small-centered:last-child:not(:first-child) {\n    float: none;\n    clear: both; }\n\n.small-uncentered, .small-push-0, .small-pull-0 {\n  position: static;\n  margin-right: 0;\n  margin-left: 0; }\n  .small-uncentered, .small-uncentered:last-child:not(:first-child), .small-push-0, .small-push-0:last-child:not(:first-child), .small-pull-0, .small-pull-0:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .small-uncentered:last-child:not(:first-child), .small-push-0:last-child:not(:first-child), .small-pull-0:last-child:not(:first-child) {\n    float: right; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-1 {\n    width: 8.33333%; }\n  .medium-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .medium-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .medium-2 {\n    width: 16.66667%; }\n  .medium-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .medium-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .medium-3 {\n    width: 25%; }\n  .medium-push-3 {\n    position: relative;\n    left: 25%; }\n  .medium-pull-3 {\n    position: relative;\n    left: -25%; }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .medium-4 {\n    width: 33.33333%; }\n  .medium-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .medium-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .medium-5 {\n    width: 41.66667%; }\n  .medium-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .medium-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .medium-6 {\n    width: 50%; }\n  .medium-push-6 {\n    position: relative;\n    left: 50%; }\n  .medium-pull-6 {\n    position: relative;\n    left: -50%; }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .medium-7 {\n    width: 58.33333%; }\n  .medium-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .medium-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .medium-8 {\n    width: 66.66667%; }\n  .medium-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .medium-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .medium-9 {\n    width: 75%; }\n  .medium-push-9 {\n    position: relative;\n    left: 75%; }\n  .medium-pull-9 {\n    position: relative;\n    left: -75%; }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .medium-10 {\n    width: 83.33333%; }\n  .medium-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .medium-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .medium-11 {\n    width: 91.66667%; }\n  .medium-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .medium-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .medium-12 {\n    width: 100%; }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .medium-up-1 > .column, .medium-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {\n      float: left; }\n  .medium-up-2 > .column, .medium-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {\n      float: left; }\n  .medium-up-3 > .column, .medium-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {\n      float: left; }\n  .medium-up-4 > .column, .medium-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {\n      float: left; }\n  .medium-up-5 > .column, .medium-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {\n      float: left; }\n  .medium-up-6 > .column, .medium-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {\n      float: left; }\n  .medium-up-7 > .column, .medium-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {\n      float: left; }\n  .medium-up-8 > .column, .medium-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {\n      float: left; }\n  .medium-collapse > .column, .medium-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .medium-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .medium-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .medium-uncollapse > .column, .medium-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .medium-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .medium-centered, .medium-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .medium-uncentered, .medium-push-0, .medium-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-uncentered, .medium-uncentered:last-child:not(:first-child), .medium-push-0, .medium-push-0:last-child:not(:first-child), .medium-pull-0, .medium-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .medium-uncentered:last-child:not(:first-child), .medium-push-0:last-child:not(:first-child), .medium-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-1 {\n    width: 8.33333%; }\n  .large-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .large-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .large-offset-0 {\n    margin-left: 0%; }\n  .large-2 {\n    width: 16.66667%; }\n  .large-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .large-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .large-3 {\n    width: 25%; }\n  .large-push-3 {\n    position: relative;\n    left: 25%; }\n  .large-pull-3 {\n    position: relative;\n    left: -25%; }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .large-4 {\n    width: 33.33333%; }\n  .large-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .large-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .large-5 {\n    width: 41.66667%; }\n  .large-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .large-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .large-6 {\n    width: 50%; }\n  .large-push-6 {\n    position: relative;\n    left: 50%; }\n  .large-pull-6 {\n    position: relative;\n    left: -50%; }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .large-7 {\n    width: 58.33333%; }\n  .large-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .large-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .large-8 {\n    width: 66.66667%; }\n  .large-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .large-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .large-9 {\n    width: 75%; }\n  .large-push-9 {\n    position: relative;\n    left: 75%; }\n  .large-pull-9 {\n    position: relative;\n    left: -75%; }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .large-10 {\n    width: 83.33333%; }\n  .large-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .large-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .large-11 {\n    width: 91.66667%; }\n  .large-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .large-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .large-12 {\n    width: 100%; }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .large-up-1 > .column, .large-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {\n      float: left; }\n  .large-up-2 > .column, .large-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {\n      float: left; }\n  .large-up-3 > .column, .large-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {\n      float: left; }\n  .large-up-4 > .column, .large-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {\n      float: left; }\n  .large-up-5 > .column, .large-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {\n      float: left; }\n  .large-up-6 > .column, .large-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {\n      float: left; }\n  .large-up-7 > .column, .large-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {\n      float: left; }\n  .large-up-8 > .column, .large-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {\n      float: left; }\n  .large-collapse > .column, .large-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .large-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .large-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .large-uncollapse > .column, .large-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .large-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .large-centered, .large-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .large-uncentered, .large-push-0, .large-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .large-uncentered, .large-uncentered:last-child:not(:first-child), .large-push-0, .large-push-0:last-child:not(:first-child), .large-pull-0, .large-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .large-uncentered:last-child:not(:first-child), .large-push-0:last-child:not(:first-child), .large-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n.column-block {\n  margin-bottom: 1.25rem; }\n  .column-block > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .column-block {\n      margin-bottom: 1.875rem; }\n      .column-block > :last-child {\n        margin-bottom: 0; } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  font-size: 0; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' '; }\n  .button-group::after {\n    clear: both; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded {\n    margin-right: -1px; }\n    .button-group.expanded::before, .button-group.expanded::after {\n      display: none; }\n    .button-group.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n    width: 100%; }\n    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n      margin-bottom: 0; }\n  .button-group.stacked.expanded, .button-group.stacked-for-small.expanded, .button-group.stacked-for-medium.expanded {\n    margin-right: -1px; }\n    .button-group.stacked.expanded::before, .button-group.stacked.expanded::after, .button-group.stacked-for-small.expanded::before, .button-group.stacked-for-small.expanded::after, .button-group.stacked-for-medium.expanded::before, .button-group.stacked-for-medium.expanded::after {\n      display: none; }\n    .button-group.stacked.expanded .button:first-child:last-child, .button-group.stacked-for-small.expanded .button:first-child:last-child, .button-group.stacked-for-medium.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(2), .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(3), .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(4), .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(5), .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(6), .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' '; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' '; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: block;\n  margin-bottom: 1rem; }\n  .media-object img {\n    max-width: none; }\n\n.media-object-section {\n  display: table-cell;\n  vertical-align: top; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      display: block; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.middle {\n    vertical-align: middle; }\n  .media-object-section.bottom {\n    vertical-align: bottom; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' '; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu li, .menu.horizontal li {\n    display: inline-block; }\n  .menu.vertical li {\n    display: block; }\n  .menu.expanded {\n    display: table;\n    width: 100%; }\n    .menu.expanded > li {\n      display: table-cell;\n      vertical-align: middle; }\n  .menu.simple li + li {\n    margin-left: 1rem; }\n  .menu.simple a {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal li {\n      display: inline-block; }\n    .menu.medium-vertical li {\n      display: block; }\n    .menu.medium-expanded {\n      display: table;\n      width: 100%; }\n      .menu.medium-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.medium-simple {\n      display: table;\n      width: 100%; }\n      .menu.medium-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal li {\n      display: inline-block; }\n    .menu.large-vertical li {\n      display: block; }\n    .menu.large-expanded {\n      display: table;\n      width: 100%; }\n      .menu.large-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.large-simple {\n      display: table;\n      width: 100%; }\n      .menu.large-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons img,\n  .menu.icons i,\n  .menu.icons svg {\n    vertical-align: middle; }\n    .menu.icons img + span,\n    .menu.icons i + span,\n    .menu.icons svg + span {\n      vertical-align: middle; }\n  .menu.icon-top img,\n  .menu.icon-top i,\n  .menu.icon-top svg, .menu.icon-right img,\n  .menu.icon-right i,\n  .menu.icon-right svg, .menu.icon-bottom img,\n  .menu.icon-bottom i,\n  .menu.icon-bottom svg, .menu.icon-left img,\n  .menu.icon-left i,\n  .menu.icon-left svg {\n    vertical-align: middle; }\n    .menu.icon-top img + span,\n    .menu.icon-top i + span,\n    .menu.icon-top svg + span, .menu.icon-right img + span,\n    .menu.icon-right i + span,\n    .menu.icon-right svg + span, .menu.icon-bottom img + span,\n    .menu.icon-bottom i + span,\n    .menu.icon-bottom svg + span, .menu.icon-left img + span,\n    .menu.icon-left i + span,\n    .menu.icon-left svg + span {\n      vertical-align: middle; }\n  .menu.icon-left li a img,\n  .menu.icon-left li a i,\n  .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n  .menu.nested.icon-left li a i,\n  .menu.nested.icon-left li a svg {\n    margin-right: 0.25rem;\n    display: inline-block; }\n  .menu.icon-right li a img,\n  .menu.icon-right li a i,\n  .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n  .menu.nested.icon-right li a i,\n  .menu.nested.icon-right li a svg {\n    margin-left: 0.25rem;\n    display: inline-block; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    text-align: center; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      display: block;\n      margin: 0 auto 0.25rem; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    text-align: center; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      display: block;\n      margin: 0.25rem auto 0; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    text-align: left; }\n  .menu.align-right {\n    text-align: right; }\n    .menu.align-right .submenu li {\n      text-align: left; }\n    .menu.align-right.vertical .submenu li {\n      text-align: right; }\n    .menu.align-right .nested {\n      margin-right: 1rem;\n      margin-left: 0; }\n  .menu.align-center {\n    text-align: center; }\n    .menu.align-center .submenu li {\n      text-align: left; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  text-align: center; }\n  .menu-centered > .menu .submenu li {\n    text-align: left; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column, .reveal .columns {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe; }\n  .title-bar::before, .title-bar::after {\n    display: table;\n    content: ' '; }\n  .title-bar::after {\n    clear: both; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left {\n  float: left; }\n\n.title-bar-right {\n  float: right;\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  padding: 0.5rem; }\n  .top-bar::before, .top-bar::after {\n    display: table;\n    content: ' '; }\n  .top-bar::after {\n    clear: both; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar .top-bar-left,\n    .top-bar .top-bar-right {\n      width: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium .top-bar-left,\n    .top-bar.stacked-for-medium .top-bar-right {\n      width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large .top-bar-left,\n    .top-bar.stacked-for-large .top-bar-right {\n      width: 100%; } }\n\n.top-bar-title {\n  display: inline-block;\n  float: left;\n  padding: 0.5rem 1rem 0.5rem 0; }\n  .top-bar-title .menu-icon {\n    bottom: 2px; }\n\n.top-bar-left {\n  float: left; }\n\n.top-bar-right {\n  float: right; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' '; }\n\n.clearfix::after {\n  clear: both; }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Outputs CSS classes for the grid.\n/// @access private\n@mixin foundation-grid(\n  $row: 'row',\n  $column: 'column',\n  $column-row: 'column-row',\n  $gutter: 'gutter',\n  $push: 'push',\n  $pull: 'pull',\n  $center: 'centered',\n  $uncenter: 'uncentered',\n  $collapse: 'collapse',\n  $uncollapse: 'uncollapse',\n  $offset: 'offset',\n  $end: 'end',\n  $expanded: 'expanded',\n  $block: 'block'\n) {\n  // Row\n  .#{$row} {\n    @include grid-row;\n\n    // Collapsing\n    &.#{$collapse} {\n      > .#{$column} {\n        @include grid-col-collapse;\n      }\n    }\n\n    // Nesting\n    & .#{$row} {\n      @include grid-row-nest($grid-column-gutter);\n\n      &.#{$collapse} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    // Expanded (full-width) row\n    &.#{$expanded} {\n      @include grid-row-size(expand);\n\n      .#{$row} {\n        margin-right: auto;\n        margin-left: auto;\n      }\n    }\n\n    &:not(.#{$expanded}) .#{$row} {\n      @include grid-row-size(expand);\n    }\n\n    @if type-of($grid-column-gutter) == 'map' {\n      // Static (unresponsive) row gutters\n      //\n      @each $breakpoint, $value in $grid-column-gutter {\n        &.#{$gutter}-#{$breakpoint} {\n          > .#{$column} {\n            @include grid-col-gutter($value);\n          }\n        }\n      }\n    }\n  }\n\n  // Column\n  .#{$column} {\n    @include grid-col;\n\n    @if $grid-column-align-edge {\n      &.#{$end} {\n        @include grid-col-end;\n      }\n    }\n  }\n\n  // Column row\n  // The double .row class is needed to bump up the specificity\n  .#{$column}.#{$row}.#{$row} {\n    float: none;\n  }\n\n  // To properly nest a column row, padding and margin is removed\n  .#{$row} .#{$column}.#{$row}.#{$row} {\n    margin-right: 0;\n    margin-left: 0;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-column-count {\n      // Column width\n      .#{$-zf-size}-#{$i} {\n        @include grid-col-size($i);\n      }\n\n      // Source ordering\n      @if $i < $grid-column-count {\n        @if $push {\n          .#{$-zf-size}-#{$push}-#{$i} {\n            @include grid-col-pos($i);\n          }\n        }\n\n        @if $pull {\n          .#{$-zf-size}-#{$pull}-#{$i} {\n            @include grid-col-pos(-$i);\n          }\n        }\n      }\n\n      // Offsets\n      $o: $i - 1;\n\n      @if $offset {\n        .#{$-zf-size}-#{$offset}-#{$o} {\n          @include grid-col-off($o);\n        }\n      }\n    }\n\n    // Block grid\n    @for $i from 1 through $block-grid-max {\n      .#{$-zf-size}-up-#{$i} {\n        @include grid-layout($i, '.#{$column}');\n      }\n    }\n\n    // Responsive collapsing\n    .#{$-zf-size}-#{$collapse} {\n      > .#{$column} { @include grid-col-collapse; }\n\n      .#{$row} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    .#{$expanded}.#{$row} .#{$-zf-size}-#{$collapse}.#{$row} {\n      margin-right: 0;\n      margin-left: 0;\n    }\n\n    .#{$-zf-size}-#{$uncollapse} {\n      > .#{$column} { @include grid-col-gutter($-zf-size); }\n    }\n\n    // Positioning\n    @if $center {\n      .#{$-zf-size}-#{$center} {\n        @include grid-col-pos(center);\n      }\n    }\n\n    // Gutter adjustment\n    $-gutter-unpos-selector: (\n      if($uncenter, '.#{$-zf-size}-#{$uncenter}', null),\n      if($push, '.#{$-zf-size}-#{$push}-0', null),\n      if($pull, '.#{$-zf-size}-#{$pull}-0', null),\n    );\n    @if ($uncenter or $push or $pull) {\n      #{$-gutter-unpos-selector} {\n        @include grid-col-unpos;\n      }\n    }\n  }\n\n  // Block grid columns\n  .#{$column}-#{$block} {\n    @include grid-column-margin;\n  }\n\n  @if $column == 'column' and has-value($grid-column-alias) {\n    .#{$grid-column-alias} {\n      // sass-lint:disable-block placeholder-in-extend\n      @extend .column;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Change the behavior of columns defined inside this mixin to use a different column count.\n/// @content\n///\n/// @param {Number} $columns - Number of columns to use.\n/// @param {Boolean} $root [false]\n///   If `false`, selectors inside this mixin will nest inside the parent selector.\n///   If `true`, selectors will not nest.\n@mixin grid-context(\n  $columns,\n  $root: false\n) {\n  // Store the current column count so it can be re-set later\n  $old-grid-column-count: $grid-column-count;\n  $grid-column-count: $columns !global;\n\n  @if $root {\n    @at-root { @content; }\n  }\n  @else {\n    @content;\n  }\n\n  // Restore the old column count\n  $grid-column-count: $old-grid-column-count !global;\n}\n\n/// Creates a grid row.\n/// @content\n///\n/// @param {Number} $columns [null] - Column count for this row. `null` will use the default column count.\n/// @param {Keywords} $behavior [null]\n///   Modifications to the default grid styles. `nest` indicates the row will be placed inside another row. `collapse` indicates that the columns inside this row will not have padding. `nest collapse` combines both behaviors.\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n/// @param {Boolean} $cf [true] - Whether or not to include a clearfix.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row(\n  $columns: null,\n  $behavior: null,\n  $size: $grid-row-width,\n  $cf: true,\n  $gutters: $grid-column-gutter\n) {\n  $margin: auto;\n\n  @if index($behavior, nest) != null {\n    @include grid-row-nest($gutters);\n\n    @if index($behavior, collapse) != null {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n  @else {\n    @include grid-row-size($size);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @if $cf {\n    @include clearfix;\n  }\n\n  @if $columns != null {\n    @include grid-context($columns) {\n      @content;\n    }\n  }\n}\n\n/// Inverts the margins of a row to nest it inside of a column.\n///\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row-nest($gutters: $grid-column-gutter) {\n  @include -zf-each-breakpoint {\n    $margin: rem-calc(-zf-get-bp-val($gutters, $-zf-size)) * 0.5 * -1;\n\n    margin-right: $margin;\n    margin-left: $margin;\n  }\n}\n\n/// Set a grid row size\n///\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n@mixin grid-row-size($size: $grid-row-width) {\n  @if $size == expand {\n    $size: none;\n  }\n\n  max-width: $size;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the gutters on a column\n/// @param {Number|Keyword} $gutter [auto]\n///   Spacing between columns, accepts multiple values:\n///   - A single value will make the gutter that exact size.\n///   - A breakpoint name will make the gutter the corresponding size in the $gutters map.\n///   - \"auto\" will make the gutter responsive, using the $gutters map values.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($gutter, $gutters) {\n    $padding: rem-calc($-zf-bp-value) * 0.5;\n\n    padding-right: $padding;\n    padding-left: $padding;\n  }\n}\n\n/// Collapse the gutters on a column by removing the padding. **Note:** only use this mixin within a breakpoint. To collapse a column's gutters on all screen sizes, use the `$gutter` parameter of the `grid-column()` mixin instead.\n@mixin grid-column-collapse {\n  @include grid-column-gutter(0);\n}\n\n/// Shorthand for `grid-column-gutter()`.\n/// @alias grid-column-gutter\n@mixin grid-col-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-gutter($gutter, $gutters);\n}\n\n/// Shorthand for `grid-column-collapse()`.\n/// @alias grid-column-collapse\n@mixin grid-col-collapse {\n  @include grid-column-collapse;\n}\n\n/// Sets bottom margin on grid columns to match gutters\n/// @param {Number|Keyword} $margin [auto]\n///   The bottom margin on grid columns, accepts multiple values:\n///   - A single value will make the margin that exact size.\n///   - A breakpoint name will make the margin the corresponding size in the $margins map.\n///   - \"auto\" will make the margin responsive, using the $margins map values.\n/// @param {Number|Map} $margins [$grid-column-gutter] - Map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-margin (\n  $margin: auto,\n  $margins: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($margin, $margins) {\n    $margin-bottom: rem-calc($-zf-bp-value);\n    margin-bottom: $margin-bottom;\n\n    > :last-child {\n      margin-bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the width of a grid column.\n///\n/// @param {Number|List} $width [$grid-column-count] - Width to make the column. You can pass in any value accepted by the `grid-column()` function, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-size(\n  $columns: $grid-column-count\n) {\n  width: grid-column($columns);\n}\n\n/// Shorthand for `grid-column-size()`.\n/// @alias grid-column-size\n@mixin grid-col-size(\n  $columns: $grid-column-count\n) {\n  @include grid-column-size($columns);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Calculates the width of a column based on a number of factors.\n///\n/// @param {Number|List} $columns\n///   Width of the column. Accepts multiple values:\n///   - A percentage value will make the column that exact size.\n///   - A single digit will make the column span that number of columns wide, taking into account the column count of the parent row.\n///   - A list of the format \"x of y\" (without quotes) will make a column that is *x* columns wide, assuming *y* total columns for the parent.\n///\n/// @returns {Number} A calculated percentage value.\n@function grid-column($columns) {\n  @return fraction-to-percentage($columns, $denominator: $grid-column-count);\n}\n\n/// Creates a grid column.\n///\n/// @param {Mixed} $columns [$grid-column-count] - Width of the column. Refer to the `grid-column()` function to see possible values.\n/// @param {Mixed} $gutters [$grid-column-gutter] - Spacing between columns. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  // Gutters\n  @include grid-column-gutter($gutters: $gutters);\n  // Position\n  @include grid-col-pos(auto);\n\n  @include grid-column-size($columns);\n  float: $global-left;\n}\n\n/// Creates a grid column row. This is the equivalent of adding `.row` and `.column` to the same element.\n///\n/// @param {Mixed} $gutters [$grid-column-gutter] - Width of the gutters on either side of the column row. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-row;\n  @include grid-column($gutters: $gutters);\n\n  &,\n  &:last-child {\n    float: none;\n  }\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@function grid-col(\n  $columns: $grid-column-count\n) {\n  @return grid-column($columns);\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@mixin grid-col(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column($columns, $gutters);\n}\n\n/// Shorthand for `grid-column-row()`.\n/// @alias grid-column-row\n@mixin grid-col-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-row($gutters);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Reposition a column.\n///\n/// @param {Number|Keyword} $position - It can be:\n///   * A number: The column will move equal to the width of the column count\n///     specified. A positive number will push the column to the right, while\n///     a negative number will pull it to the left.\n///   * `center`: Column will be centered\n///   * `auto`: Column will be pushed to the left (or to the right for the last column).\n@mixin grid-column-position($position) {\n  // Auto positioning\n  @if $position == auto {\n    &, &:last-child:not(:first-child) {\n      float: $global-left;\n      clear: none;\n    }\n\n    // Last column alignment\n    @if $grid-column-align-edge {\n      &:last-child:not(:first-child) {\n        float: $global-right;\n      }\n    }\n  }\n\n  // Push/pull\n  @else if type-of($position) == 'number' {\n    $offset: percentage(divide($position, $grid-column-count));\n\n    position: relative;\n    #{$global-left}: $offset;\n  }\n\n  // Center positioning\n  @else if $position == center {\n    &, &:last-child:not(:first-child) {\n      float: none;\n      clear: both;\n    }\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @else {\n    @warn 'Wrong syntax for grid-column-position(). Enter a positive or negative number, \"center\" or \"auto\".';\n  }\n}\n\n/// Reset a position definition.\n@mixin grid-column-unposition {\n  @include grid-column-position(auto);\n  position: static;\n  margin-right: 0;\n  margin-left: 0;\n}\n\n/// Offsets a column to the right by `$n` columns.\n/// @param {Number|List} $n - Width to offset by. You can pass in any value accepted by the `grid-column()` mixin, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-offset($n) {\n  margin-#{$global-left}: grid-column($n);\n}\n\n/// Disable the default behavior of the last column in a row aligning to the opposite edge.\n@mixin grid-column-end {\n  // This extra specificity is required for the property to be applied\n  &:last-child:last-child {\n    float: $global-left;\n  }\n}\n\n/// Shorthand for `grid-column-position()`.\n/// @alias grid-column-position\n@mixin grid-col-pos($position) {\n  @include grid-column-position($position);\n}\n\n/// Shorthand for `grid-column-unposition()`.\n/// @alias grid-column-unposition\n@mixin grid-col-unpos {\n  @include grid-column-unposition;\n}\n\n/// Shorthand for `grid-column-offset()`.\n/// @alias grid-column-offset\n@mixin grid-col-off($n) {\n  @include grid-column-offset($n);\n}\n\n/// Shorthand for `grid-column-end()`.\n/// @alias grid-column-end\n@mixin grid-col-end {\n  @include grid-column-end;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.column'] - Selector(s) to use for child elements.\n/// @param {Number|List} $gutter\n///   The gutter to apply to child elements. Accepts multiple values:\n///   - $grid-column-gutter will use the values in the $grid-column-gutter map, including breakpoint sizes.\n///   - A fixed numeric value will apply this gutter to all breakpoints.\n@mixin grid-layout(\n  $n,\n  $selector: '.column',\n  $gutter: null\n) {\n  & > #{$selector} {\n    float: $global-left;\n    width: percentage(divide(1, $n));\n\n    // If a $gutter value is passed\n    @if($gutter) {\n      // Gutters\n      @if type-of($gutter) == 'map' {\n        @each $breakpoint, $value in $gutter {\n          $padding: rem-calc($value) * 0.5;\n\n          @include breakpoint($breakpoint) {\n            padding-right: $padding;\n            padding-left: $padding;\n          }\n        }\n      }\n      @else if type-of($gutter) == 'number' and strip-unit($gutter) > 0 {\n        $padding: rem-calc($gutter) * 0.5;\n        padding-right: $padding;\n        padding-left: $padding;\n      }\n    }\n\n    &:nth-of-type(1n) {\n      clear: none;\n    }\n\n    &:nth-of-type(#{$n}n+1) {\n      clear: both;\n    }\n\n    &:last-child {\n      float: $global-left;\n    }\n  }\n}\n\n/// Adds extra CSS to block grid children so the last items in the row center automatically. Apply this to the columns, not the row.\n///\n/// @param {Number} $n - Number of items that appear in each row.\n@mixin grid-layout-center-last($n) {\n  @for $i from 1 to $n {\n    @if $i == 1 {\n      &:nth-child(#{$n}n+1):last-child {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n    @else {\n      &:nth-child(#{$n}n+1):nth-last-child(#{$i}) {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation-float.min.css","foundation-float.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/grid/_classes.scss","../scss/grid/_row.scss","../scss/grid/_gutter.scss","../scss/grid/_size.scss","../scss/grid/_column.scss","../scss/grid/_position.scss","../scss/grid/_layout.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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","file":"foundation-float.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n",null,"@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap;\n  display: table-cell;\n  vertical-align: middle; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  width: 1%;\n  height: 100%; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  width: 1%;\n  height: 100%; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    height: 2.4375rem;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\n.input-group .input-group-button {\n  display: table-cell; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.row {\n  max-width: 75rem;\n  margin-right: auto;\n  margin-left: auto; }\n  .row::before, .row::after {\n    display: table;\n    content: ' '; }\n  .row::after {\n    clear: both; }\n  .row.collapse > .column, .row.collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .row .row {\n    margin-right: -0.625rem;\n    margin-left: -0.625rem; }\n    @media print, screen and (min-width: 40em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    @media print, screen and (min-width: 64em) {\n      .row .row {\n        margin-right: -0.9375rem;\n        margin-left: -0.9375rem; } }\n    .row .row.collapse {\n      margin-right: 0;\n      margin-left: 0; }\n  .row.expanded {\n    max-width: none; }\n    .row.expanded .row {\n      margin-right: auto;\n      margin-left: auto; }\n  .row:not(.expanded) .row {\n    max-width: none; }\n  .row.gutter-small > .column, .row.gutter-small > .columns {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem; }\n  .row.gutter-medium > .column, .row.gutter-medium > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n\n.column, .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  width: 100%;\n  float: left; }\n  @media print, screen and (min-width: 40em) {\n    .column, .columns {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .column, .columns, .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .column:last-child:not(:first-child), .columns:last-child:not(:first-child) {\n    float: right; }\n  .column.end:last-child:last-child, .end.columns:last-child:last-child {\n    float: left; }\n\n.column.row.row, .row.row.columns {\n  float: none; }\n\n.row .column.row.row, .row .row.row.columns {\n  margin-right: 0;\n  margin-left: 0;\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-1 {\n  width: 8.33333%; }\n\n.small-push-1 {\n  position: relative;\n  left: 8.33333%; }\n\n.small-pull-1 {\n  position: relative;\n  left: -8.33333%; }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.small-2 {\n  width: 16.66667%; }\n\n.small-push-2 {\n  position: relative;\n  left: 16.66667%; }\n\n.small-pull-2 {\n  position: relative;\n  left: -16.66667%; }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.small-3 {\n  width: 25%; }\n\n.small-push-3 {\n  position: relative;\n  left: 25%; }\n\n.small-pull-3 {\n  position: relative;\n  left: -25%; }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.small-4 {\n  width: 33.33333%; }\n\n.small-push-4 {\n  position: relative;\n  left: 33.33333%; }\n\n.small-pull-4 {\n  position: relative;\n  left: -33.33333%; }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.small-5 {\n  width: 41.66667%; }\n\n.small-push-5 {\n  position: relative;\n  left: 41.66667%; }\n\n.small-pull-5 {\n  position: relative;\n  left: -41.66667%; }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.small-6 {\n  width: 50%; }\n\n.small-push-6 {\n  position: relative;\n  left: 50%; }\n\n.small-pull-6 {\n  position: relative;\n  left: -50%; }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.small-7 {\n  width: 58.33333%; }\n\n.small-push-7 {\n  position: relative;\n  left: 58.33333%; }\n\n.small-pull-7 {\n  position: relative;\n  left: -58.33333%; }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.small-8 {\n  width: 66.66667%; }\n\n.small-push-8 {\n  position: relative;\n  left: 66.66667%; }\n\n.small-pull-8 {\n  position: relative;\n  left: -66.66667%; }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.small-9 {\n  width: 75%; }\n\n.small-push-9 {\n  position: relative;\n  left: 75%; }\n\n.small-pull-9 {\n  position: relative;\n  left: -75%; }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.small-10 {\n  width: 83.33333%; }\n\n.small-push-10 {\n  position: relative;\n  left: 83.33333%; }\n\n.small-pull-10 {\n  position: relative;\n  left: -83.33333%; }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.small-11 {\n  width: 91.66667%; }\n\n.small-push-11 {\n  position: relative;\n  left: 91.66667%; }\n\n.small-pull-11 {\n  position: relative;\n  left: -91.66667%; }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.small-12 {\n  width: 100%; }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.small-up-1 > .column, .small-up-1 > .columns {\n  float: left;\n  width: 100%; }\n  .small-up-1 > .column:nth-of-type(1n), .small-up-1 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-1 > .column:nth-of-type(1n+1), .small-up-1 > .columns:nth-of-type(1n+1) {\n    clear: both; }\n  .small-up-1 > .column:last-child, .small-up-1 > .columns:last-child {\n    float: left; }\n\n.small-up-2 > .column, .small-up-2 > .columns {\n  float: left;\n  width: 50%; }\n  .small-up-2 > .column:nth-of-type(1n), .small-up-2 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-2 > .column:nth-of-type(2n+1), .small-up-2 > .columns:nth-of-type(2n+1) {\n    clear: both; }\n  .small-up-2 > .column:last-child, .small-up-2 > .columns:last-child {\n    float: left; }\n\n.small-up-3 > .column, .small-up-3 > .columns {\n  float: left;\n  width: 33.33333%; }\n  .small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {\n    clear: both; }\n  .small-up-3 > .column:last-child, .small-up-3 > .columns:last-child {\n    float: left; }\n\n.small-up-4 > .column, .small-up-4 > .columns {\n  float: left;\n  width: 25%; }\n  .small-up-4 > .column:nth-of-type(1n), .small-up-4 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-4 > .column:nth-of-type(4n+1), .small-up-4 > .columns:nth-of-type(4n+1) {\n    clear: both; }\n  .small-up-4 > .column:last-child, .small-up-4 > .columns:last-child {\n    float: left; }\n\n.small-up-5 > .column, .small-up-5 > .columns {\n  float: left;\n  width: 20%; }\n  .small-up-5 > .column:nth-of-type(1n), .small-up-5 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-5 > .column:nth-of-type(5n+1), .small-up-5 > .columns:nth-of-type(5n+1) {\n    clear: both; }\n  .small-up-5 > .column:last-child, .small-up-5 > .columns:last-child {\n    float: left; }\n\n.small-up-6 > .column, .small-up-6 > .columns {\n  float: left;\n  width: 16.66667%; }\n  .small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {\n    clear: both; }\n  .small-up-6 > .column:last-child, .small-up-6 > .columns:last-child {\n    float: left; }\n\n.small-up-7 > .column, .small-up-7 > .columns {\n  float: left;\n  width: 14.28571%; }\n  .small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {\n    clear: both; }\n  .small-up-7 > .column:last-child, .small-up-7 > .columns:last-child {\n    float: left; }\n\n.small-up-8 > .column, .small-up-8 > .columns {\n  float: left;\n  width: 12.5%; }\n  .small-up-8 > .column:nth-of-type(1n), .small-up-8 > .columns:nth-of-type(1n) {\n    clear: none; }\n  .small-up-8 > .column:nth-of-type(8n+1), .small-up-8 > .columns:nth-of-type(8n+1) {\n    clear: both; }\n  .small-up-8 > .column:last-child, .small-up-8 > .columns:last-child {\n    float: left; }\n\n.small-collapse > .column, .small-collapse > .columns {\n  padding-right: 0;\n  padding-left: 0; }\n\n.small-collapse .row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.expanded.row .small-collapse.row {\n  margin-right: 0;\n  margin-left: 0; }\n\n.small-uncollapse > .column, .small-uncollapse > .columns {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n\n.small-centered {\n  margin-right: auto;\n  margin-left: auto; }\n  .small-centered, .small-centered:last-child:not(:first-child) {\n    float: none;\n    clear: both; }\n\n.small-uncentered, .small-push-0, .small-pull-0 {\n  position: static;\n  margin-right: 0;\n  margin-left: 0; }\n  .small-uncentered, .small-uncentered:last-child:not(:first-child), .small-push-0, .small-push-0:last-child:not(:first-child), .small-pull-0, .small-pull-0:last-child:not(:first-child) {\n    float: left;\n    clear: none; }\n  .small-uncentered:last-child:not(:first-child), .small-push-0:last-child:not(:first-child), .small-pull-0:last-child:not(:first-child) {\n    float: right; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-1 {\n    width: 8.33333%; }\n  .medium-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .medium-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .medium-2 {\n    width: 16.66667%; }\n  .medium-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .medium-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .medium-3 {\n    width: 25%; }\n  .medium-push-3 {\n    position: relative;\n    left: 25%; }\n  .medium-pull-3 {\n    position: relative;\n    left: -25%; }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .medium-4 {\n    width: 33.33333%; }\n  .medium-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .medium-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .medium-5 {\n    width: 41.66667%; }\n  .medium-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .medium-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .medium-6 {\n    width: 50%; }\n  .medium-push-6 {\n    position: relative;\n    left: 50%; }\n  .medium-pull-6 {\n    position: relative;\n    left: -50%; }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .medium-7 {\n    width: 58.33333%; }\n  .medium-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .medium-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .medium-8 {\n    width: 66.66667%; }\n  .medium-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .medium-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .medium-9 {\n    width: 75%; }\n  .medium-push-9 {\n    position: relative;\n    left: 75%; }\n  .medium-pull-9 {\n    position: relative;\n    left: -75%; }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .medium-10 {\n    width: 83.33333%; }\n  .medium-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .medium-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .medium-11 {\n    width: 91.66667%; }\n  .medium-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .medium-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .medium-12 {\n    width: 100%; }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .medium-up-1 > .column, .medium-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .medium-up-1 > .column:nth-of-type(1n), .medium-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-1 > .column:nth-of-type(1n+1), .medium-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .medium-up-1 > .column:last-child, .medium-up-1 > .columns:last-child {\n      float: left; }\n  .medium-up-2 > .column, .medium-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .medium-up-2 > .column:nth-of-type(1n), .medium-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-2 > .column:nth-of-type(2n+1), .medium-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .medium-up-2 > .column:last-child, .medium-up-2 > .columns:last-child {\n      float: left; }\n  .medium-up-3 > .column, .medium-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .medium-up-3 > .column:last-child, .medium-up-3 > .columns:last-child {\n      float: left; }\n  .medium-up-4 > .column, .medium-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .medium-up-4 > .column:nth-of-type(1n), .medium-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-4 > .column:nth-of-type(4n+1), .medium-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .medium-up-4 > .column:last-child, .medium-up-4 > .columns:last-child {\n      float: left; }\n  .medium-up-5 > .column, .medium-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .medium-up-5 > .column:nth-of-type(1n), .medium-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-5 > .column:nth-of-type(5n+1), .medium-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .medium-up-5 > .column:last-child, .medium-up-5 > .columns:last-child {\n      float: left; }\n  .medium-up-6 > .column, .medium-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .medium-up-6 > .column:last-child, .medium-up-6 > .columns:last-child {\n      float: left; }\n  .medium-up-7 > .column, .medium-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .medium-up-7 > .column:last-child, .medium-up-7 > .columns:last-child {\n      float: left; }\n  .medium-up-8 > .column, .medium-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .medium-up-8 > .column:nth-of-type(1n), .medium-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .medium-up-8 > .column:nth-of-type(8n+1), .medium-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .medium-up-8 > .column:last-child, .medium-up-8 > .columns:last-child {\n      float: left; }\n  .medium-collapse > .column, .medium-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .medium-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .medium-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .medium-uncollapse > .column, .medium-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .medium-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .medium-centered, .medium-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .medium-uncentered, .medium-push-0, .medium-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-uncentered, .medium-uncentered:last-child:not(:first-child), .medium-push-0, .medium-push-0:last-child:not(:first-child), .medium-pull-0, .medium-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .medium-uncentered:last-child:not(:first-child), .medium-push-0:last-child:not(:first-child), .medium-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-1 {\n    width: 8.33333%; }\n  .large-push-1 {\n    position: relative;\n    left: 8.33333%; }\n  .large-pull-1 {\n    position: relative;\n    left: -8.33333%; }\n  .large-offset-0 {\n    margin-left: 0%; }\n  .large-2 {\n    width: 16.66667%; }\n  .large-push-2 {\n    position: relative;\n    left: 16.66667%; }\n  .large-pull-2 {\n    position: relative;\n    left: -16.66667%; }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .large-3 {\n    width: 25%; }\n  .large-push-3 {\n    position: relative;\n    left: 25%; }\n  .large-pull-3 {\n    position: relative;\n    left: -25%; }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .large-4 {\n    width: 33.33333%; }\n  .large-push-4 {\n    position: relative;\n    left: 33.33333%; }\n  .large-pull-4 {\n    position: relative;\n    left: -33.33333%; }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .large-5 {\n    width: 41.66667%; }\n  .large-push-5 {\n    position: relative;\n    left: 41.66667%; }\n  .large-pull-5 {\n    position: relative;\n    left: -41.66667%; }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .large-6 {\n    width: 50%; }\n  .large-push-6 {\n    position: relative;\n    left: 50%; }\n  .large-pull-6 {\n    position: relative;\n    left: -50%; }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .large-7 {\n    width: 58.33333%; }\n  .large-push-7 {\n    position: relative;\n    left: 58.33333%; }\n  .large-pull-7 {\n    position: relative;\n    left: -58.33333%; }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .large-8 {\n    width: 66.66667%; }\n  .large-push-8 {\n    position: relative;\n    left: 66.66667%; }\n  .large-pull-8 {\n    position: relative;\n    left: -66.66667%; }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .large-9 {\n    width: 75%; }\n  .large-push-9 {\n    position: relative;\n    left: 75%; }\n  .large-pull-9 {\n    position: relative;\n    left: -75%; }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .large-10 {\n    width: 83.33333%; }\n  .large-push-10 {\n    position: relative;\n    left: 83.33333%; }\n  .large-pull-10 {\n    position: relative;\n    left: -83.33333%; }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .large-11 {\n    width: 91.66667%; }\n  .large-push-11 {\n    position: relative;\n    left: 91.66667%; }\n  .large-pull-11 {\n    position: relative;\n    left: -91.66667%; }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .large-12 {\n    width: 100%; }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .large-up-1 > .column, .large-up-1 > .columns {\n    float: left;\n    width: 100%; }\n    .large-up-1 > .column:nth-of-type(1n), .large-up-1 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-1 > .column:nth-of-type(1n+1), .large-up-1 > .columns:nth-of-type(1n+1) {\n      clear: both; }\n    .large-up-1 > .column:last-child, .large-up-1 > .columns:last-child {\n      float: left; }\n  .large-up-2 > .column, .large-up-2 > .columns {\n    float: left;\n    width: 50%; }\n    .large-up-2 > .column:nth-of-type(1n), .large-up-2 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-2 > .column:nth-of-type(2n+1), .large-up-2 > .columns:nth-of-type(2n+1) {\n      clear: both; }\n    .large-up-2 > .column:last-child, .large-up-2 > .columns:last-child {\n      float: left; }\n  .large-up-3 > .column, .large-up-3 > .columns {\n    float: left;\n    width: 33.33333%; }\n    .large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {\n      clear: both; }\n    .large-up-3 > .column:last-child, .large-up-3 > .columns:last-child {\n      float: left; }\n  .large-up-4 > .column, .large-up-4 > .columns {\n    float: left;\n    width: 25%; }\n    .large-up-4 > .column:nth-of-type(1n), .large-up-4 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-4 > .column:nth-of-type(4n+1), .large-up-4 > .columns:nth-of-type(4n+1) {\n      clear: both; }\n    .large-up-4 > .column:last-child, .large-up-4 > .columns:last-child {\n      float: left; }\n  .large-up-5 > .column, .large-up-5 > .columns {\n    float: left;\n    width: 20%; }\n    .large-up-5 > .column:nth-of-type(1n), .large-up-5 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-5 > .column:nth-of-type(5n+1), .large-up-5 > .columns:nth-of-type(5n+1) {\n      clear: both; }\n    .large-up-5 > .column:last-child, .large-up-5 > .columns:last-child {\n      float: left; }\n  .large-up-6 > .column, .large-up-6 > .columns {\n    float: left;\n    width: 16.66667%; }\n    .large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {\n      clear: both; }\n    .large-up-6 > .column:last-child, .large-up-6 > .columns:last-child {\n      float: left; }\n  .large-up-7 > .column, .large-up-7 > .columns {\n    float: left;\n    width: 14.28571%; }\n    .large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {\n      clear: both; }\n    .large-up-7 > .column:last-child, .large-up-7 > .columns:last-child {\n      float: left; }\n  .large-up-8 > .column, .large-up-8 > .columns {\n    float: left;\n    width: 12.5%; }\n    .large-up-8 > .column:nth-of-type(1n), .large-up-8 > .columns:nth-of-type(1n) {\n      clear: none; }\n    .large-up-8 > .column:nth-of-type(8n+1), .large-up-8 > .columns:nth-of-type(8n+1) {\n      clear: both; }\n    .large-up-8 > .column:last-child, .large-up-8 > .columns:last-child {\n      float: left; }\n  .large-collapse > .column, .large-collapse > .columns {\n    padding-right: 0;\n    padding-left: 0; }\n  .large-collapse .row {\n    margin-right: 0;\n    margin-left: 0; }\n  .expanded.row .large-collapse.row {\n    margin-right: 0;\n    margin-left: 0; }\n  .large-uncollapse > .column, .large-uncollapse > .columns {\n    padding-right: 0.9375rem;\n    padding-left: 0.9375rem; }\n  .large-centered {\n    margin-right: auto;\n    margin-left: auto; }\n    .large-centered, .large-centered:last-child:not(:first-child) {\n      float: none;\n      clear: both; }\n  .large-uncentered, .large-push-0, .large-pull-0 {\n    position: static;\n    margin-right: 0;\n    margin-left: 0; }\n    .large-uncentered, .large-uncentered:last-child:not(:first-child), .large-push-0, .large-push-0:last-child:not(:first-child), .large-pull-0, .large-pull-0:last-child:not(:first-child) {\n      float: left;\n      clear: none; }\n    .large-uncentered:last-child:not(:first-child), .large-push-0:last-child:not(:first-child), .large-pull-0:last-child:not(:first-child) {\n      float: right; } }\n\n.column-block {\n  margin-bottom: 1.25rem; }\n  .column-block > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .column-block {\n      margin-bottom: 1.875rem; }\n      .column-block > :last-child {\n        margin-bottom: 0; } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  font-size: 0; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' '; }\n  .button-group::after {\n    clear: both; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded {\n    margin-right: -1px; }\n    .button-group.expanded::before, .button-group.expanded::after {\n      display: none; }\n    .button-group.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.expanded .button:first-child:nth-last-child(2), .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(2):last-child, .button-group.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(3), .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(3):last-child, .button-group.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(4), .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(4):last-child, .button-group.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(5), .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(5):last-child, .button-group.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.expanded .button:first-child:nth-last-child(6), .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.expanded .button:first-child:nth-last-child(6):last-child, .button-group.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n    width: 100%; }\n    .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n      margin-bottom: 0; }\n  .button-group.stacked.expanded, .button-group.stacked-for-small.expanded, .button-group.stacked-for-medium.expanded {\n    margin-right: -1px; }\n    .button-group.stacked.expanded::before, .button-group.stacked.expanded::after, .button-group.stacked-for-small.expanded::before, .button-group.stacked-for-small.expanded::after, .button-group.stacked-for-medium.expanded::before, .button-group.stacked-for-medium.expanded::after {\n      display: none; }\n    .button-group.stacked.expanded .button:first-child:last-child, .button-group.stacked-for-small.expanded .button:first-child:last-child, .button-group.stacked-for-medium.expanded .button:first-child:last-child {\n      width: calc(100% - 1px); }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(2), .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button {\n      display: inline-block;\n      width: calc(50% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(2):first-child:nth-last-child(2) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(3), .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button {\n      display: inline-block;\n      width: calc(33.33333% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(3):first-child:nth-last-child(3) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(4), .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button {\n      display: inline-block;\n      width: calc(25% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(4):first-child:nth-last-child(4) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(5), .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button {\n      display: inline-block;\n      width: calc(20% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(5):first-child:nth-last-child(5) ~ .button:last-child {\n        margin-right: -6px; }\n    .button-group.stacked.expanded .button:first-child:nth-last-child(6), .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6), .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button {\n      display: inline-block;\n      width: calc(16.66667% - 1px);\n      margin-right: 1px; }\n      .button-group.stacked.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-small.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):last-child, .button-group.stacked-for-medium.expanded .button:first-child:nth-last-child(6):first-child:nth-last-child(6) ~ .button:last-child {\n        margin-right: -6px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      width: auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' '; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' '; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: block;\n  margin-bottom: 1rem; }\n  .media-object img {\n    max-width: none; }\n\n.media-object-section {\n  display: table-cell;\n  vertical-align: top; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      display: block; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.middle {\n    vertical-align: middle; }\n  .media-object-section.bottom {\n    vertical-align: bottom; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' '; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu li, .menu.horizontal li {\n    display: inline-block; }\n  .menu.vertical li {\n    display: block; }\n  .menu.expanded {\n    display: table;\n    width: 100%; }\n    .menu.expanded > li {\n      display: table-cell;\n      vertical-align: middle; }\n  .menu.simple li + li {\n    margin-left: 1rem; }\n  .menu.simple a {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal li {\n      display: inline-block; }\n    .menu.medium-vertical li {\n      display: block; }\n    .menu.medium-expanded {\n      display: table;\n      width: 100%; }\n      .menu.medium-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.medium-simple {\n      display: table;\n      width: 100%; }\n      .menu.medium-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal li {\n      display: inline-block; }\n    .menu.large-vertical li {\n      display: block; }\n    .menu.large-expanded {\n      display: table;\n      width: 100%; }\n      .menu.large-expanded > li {\n        display: table-cell;\n        vertical-align: middle; }\n    .menu.large-simple {\n      display: table;\n      width: 100%; }\n      .menu.large-simple > li {\n        display: table-cell;\n        vertical-align: middle; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons img,\n  .menu.icons i,\n  .menu.icons svg {\n    vertical-align: middle; }\n    .menu.icons img + span,\n    .menu.icons i + span,\n    .menu.icons svg + span {\n      vertical-align: middle; }\n  .menu.icon-top img,\n  .menu.icon-top i,\n  .menu.icon-top svg, .menu.icon-right img,\n  .menu.icon-right i,\n  .menu.icon-right svg, .menu.icon-bottom img,\n  .menu.icon-bottom i,\n  .menu.icon-bottom svg, .menu.icon-left img,\n  .menu.icon-left i,\n  .menu.icon-left svg {\n    vertical-align: middle; }\n    .menu.icon-top img + span,\n    .menu.icon-top i + span,\n    .menu.icon-top svg + span, .menu.icon-right img + span,\n    .menu.icon-right i + span,\n    .menu.icon-right svg + span, .menu.icon-bottom img + span,\n    .menu.icon-bottom i + span,\n    .menu.icon-bottom svg + span, .menu.icon-left img + span,\n    .menu.icon-left i + span,\n    .menu.icon-left svg + span {\n      vertical-align: middle; }\n  .menu.icon-left li a img,\n  .menu.icon-left li a i,\n  .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n  .menu.nested.icon-left li a i,\n  .menu.nested.icon-left li a svg {\n    margin-right: 0.25rem;\n    display: inline-block; }\n  .menu.icon-right li a img,\n  .menu.icon-right li a i,\n  .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n  .menu.nested.icon-right li a i,\n  .menu.nested.icon-right li a svg {\n    margin-left: 0.25rem;\n    display: inline-block; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    text-align: center; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      display: block;\n      margin: 0 auto 0.25rem; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    text-align: center; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      display: block;\n      margin: 0.25rem auto 0; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    text-align: left; }\n  .menu.align-right {\n    text-align: right; }\n    .menu.align-right .submenu li {\n      text-align: left; }\n    .menu.align-right.vertical .submenu li {\n      text-align: right; }\n    .menu.align-right .nested {\n      margin-right: 1rem;\n      margin-left: 0; }\n  .menu.align-center {\n    text-align: center; }\n    .menu.align-center .submenu li {\n      text-align: left; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  text-align: center; }\n  .menu-centered > .menu .submenu li {\n    text-align: left; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column, .reveal .columns {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe; }\n  .title-bar::before, .title-bar::after {\n    display: table;\n    content: ' '; }\n  .title-bar::after {\n    clear: both; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left {\n  float: left; }\n\n.title-bar-right {\n  float: right;\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  padding: 0.5rem; }\n  .top-bar::before, .top-bar::after {\n    display: table;\n    content: ' '; }\n  .top-bar::after {\n    clear: both; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar .top-bar-left,\n    .top-bar .top-bar-right {\n      width: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium .top-bar-left,\n    .top-bar.stacked-for-medium .top-bar-right {\n      width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large .top-bar-left,\n    .top-bar.stacked-for-large .top-bar-right {\n      width: 100%; } }\n\n.top-bar-title {\n  display: inline-block;\n  float: left;\n  padding: 0.5rem 1rem 0.5rem 0; }\n  .top-bar-title .menu-icon {\n    bottom: 2px; }\n\n.top-bar-left {\n  float: left; }\n\n.top-bar-right {\n  float: right; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' '; }\n\n.clearfix::after {\n  clear: both; }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Outputs CSS classes for the grid.\n/// @access private\n@mixin foundation-grid(\n  $row: 'row',\n  $column: 'column',\n  $column-row: 'column-row',\n  $gutter: 'gutter',\n  $push: 'push',\n  $pull: 'pull',\n  $center: 'centered',\n  $uncenter: 'uncentered',\n  $collapse: 'collapse',\n  $uncollapse: 'uncollapse',\n  $offset: 'offset',\n  $end: 'end',\n  $expanded: 'expanded',\n  $block: 'block'\n) {\n  // Row\n  .#{$row} {\n    @include grid-row;\n\n    // Collapsing\n    &.#{$collapse} {\n      > .#{$column} {\n        @include grid-col-collapse;\n      }\n    }\n\n    // Nesting\n    & .#{$row} {\n      @include grid-row-nest($grid-column-gutter);\n\n      &.#{$collapse} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    // Expanded (full-width) row\n    &.#{$expanded} {\n      @include grid-row-size(expand);\n\n      .#{$row} {\n        margin-right: auto;\n        margin-left: auto;\n      }\n    }\n\n    &:not(.#{$expanded}) .#{$row} {\n      @include grid-row-size(expand);\n    }\n\n    @if type-of($grid-column-gutter) == 'map' {\n      // Static (unresponsive) row gutters\n      //\n      @each $breakpoint, $value in $grid-column-gutter {\n        &.#{$gutter}-#{$breakpoint} {\n          > .#{$column} {\n            @include grid-col-gutter($value);\n          }\n        }\n      }\n    }\n  }\n\n  // Column\n  .#{$column} {\n    @include grid-col;\n\n    @if $grid-column-align-edge {\n      &.#{$end} {\n        @include grid-col-end;\n      }\n    }\n  }\n\n  // Column row\n  // The double .row class is needed to bump up the specificity\n  .#{$column}.#{$row}.#{$row} {\n    float: none;\n  }\n\n  // To properly nest a column row, padding and margin is removed\n  .#{$row} .#{$column}.#{$row}.#{$row} {\n    margin-right: 0;\n    margin-left: 0;\n    padding-right: 0;\n    padding-left: 0;\n  }\n\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-column-count {\n      // Column width\n      .#{$-zf-size}-#{$i} {\n        @include grid-col-size($i);\n      }\n\n      // Source ordering\n      @if $i < $grid-column-count {\n        @if $push {\n          .#{$-zf-size}-#{$push}-#{$i} {\n            @include grid-col-pos($i);\n          }\n        }\n\n        @if $pull {\n          .#{$-zf-size}-#{$pull}-#{$i} {\n            @include grid-col-pos(-$i);\n          }\n        }\n      }\n\n      // Offsets\n      $o: $i - 1;\n\n      @if $offset {\n        .#{$-zf-size}-#{$offset}-#{$o} {\n          @include grid-col-off($o);\n        }\n      }\n    }\n\n    // Block grid\n    @for $i from 1 through $block-grid-max {\n      .#{$-zf-size}-up-#{$i} {\n        @include grid-layout($i, '.#{$column}');\n      }\n    }\n\n    // Responsive collapsing\n    .#{$-zf-size}-#{$collapse} {\n      > .#{$column} { @include grid-col-collapse; }\n\n      .#{$row} {\n        margin-right: 0;\n        margin-left: 0;\n      }\n    }\n\n    .#{$expanded}.#{$row} .#{$-zf-size}-#{$collapse}.#{$row} {\n      margin-right: 0;\n      margin-left: 0;\n    }\n\n    .#{$-zf-size}-#{$uncollapse} {\n      > .#{$column} { @include grid-col-gutter($-zf-size); }\n    }\n\n    // Positioning\n    @if $center {\n      .#{$-zf-size}-#{$center} {\n        @include grid-col-pos(center);\n      }\n    }\n\n    // Gutter adjustment\n    $-gutter-unpos-selector: (\n      if($uncenter, '.#{$-zf-size}-#{$uncenter}', null),\n      if($push, '.#{$-zf-size}-#{$push}-0', null),\n      if($pull, '.#{$-zf-size}-#{$pull}-0', null),\n    );\n    @if ($uncenter or $push or $pull) {\n      #{$-gutter-unpos-selector} {\n        @include grid-col-unpos;\n      }\n    }\n  }\n\n  // Block grid columns\n  .#{$column}-#{$block} {\n    @include grid-column-margin;\n  }\n\n  @if $column == 'column' and has-value($grid-column-alias) {\n    .#{$grid-column-alias} {\n      // sass-lint:disable-block placeholder-in-extend\n      @extend .column;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Change the behavior of columns defined inside this mixin to use a different column count.\n/// @content\n///\n/// @param {Number} $columns - Number of columns to use.\n/// @param {Boolean} $root [false]\n///   If `false`, selectors inside this mixin will nest inside the parent selector.\n///   If `true`, selectors will not nest.\n@mixin grid-context(\n  $columns,\n  $root: false\n) {\n  // Store the current column count so it can be re-set later\n  $old-grid-column-count: $grid-column-count;\n  $grid-column-count: $columns !global;\n\n  @if $root {\n    @at-root { @content; }\n  }\n  @else {\n    @content;\n  }\n\n  // Restore the old column count\n  $grid-column-count: $old-grid-column-count !global;\n}\n\n/// Creates a grid row.\n/// @content\n///\n/// @param {Number} $columns [null] - Column count for this row. `null` will use the default column count.\n/// @param {Keywords} $behavior [null]\n///   Modifications to the default grid styles. `nest` indicates the row will be placed inside another row. `collapse` indicates that the columns inside this row will not have padding. `nest collapse` combines both behaviors.\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n/// @param {Boolean} $cf [true] - Whether or not to include a clearfix.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row(\n  $columns: null,\n  $behavior: null,\n  $size: $grid-row-width,\n  $cf: true,\n  $gutters: $grid-column-gutter\n) {\n  $margin: auto;\n\n  @if index($behavior, nest) != null {\n    @include grid-row-nest($gutters);\n\n    @if index($behavior, collapse) != null {\n      margin-right: 0;\n      margin-left: 0;\n    }\n  }\n  @else {\n    @include grid-row-size($size);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @if $cf {\n    @include clearfix;\n  }\n\n  @if $columns != null {\n    @include grid-context($columns) {\n      @content;\n    }\n  }\n}\n\n/// Inverts the margins of a row to nest it inside of a column.\n///\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use when inverting margins. Responsive gutter settings by default.\n@mixin grid-row-nest($gutters: $grid-column-gutter) {\n  @include -zf-each-breakpoint {\n    $margin: rem-calc(-zf-get-bp-val($gutters, $-zf-size)) * 0.5 * -1;\n\n    margin-right: $margin;\n    margin-left: $margin;\n  }\n}\n\n/// Set a grid row size\n///\n/// @param {Keyword|Number} $size [$grid-row-width] Maximum size of the row. Set to `expand` to make the row taking the full width.\n@mixin grid-row-size($size: $grid-row-width) {\n  @if $size == expand {\n    $size: none;\n  }\n\n  max-width: $size;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the gutters on a column\n/// @param {Number|Keyword} $gutter [auto]\n///   Spacing between columns, accepts multiple values:\n///   - A single value will make the gutter that exact size.\n///   - A breakpoint name will make the gutter the corresponding size in the $gutters map.\n///   - \"auto\" will make the gutter responsive, using the $gutters map values.\n/// @param {Number|Map} $gutters [$grid-column-gutter] - Gutter map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($gutter, $gutters) {\n    $padding: rem-calc($-zf-bp-value) * 0.5;\n\n    padding-right: $padding;\n    padding-left: $padding;\n  }\n}\n\n/// Collapse the gutters on a column by removing the padding. **Note:** only use this mixin within a breakpoint. To collapse a column's gutters on all screen sizes, use the `$gutter` parameter of the `grid-column()` mixin instead.\n@mixin grid-column-collapse {\n  @include grid-column-gutter(0);\n}\n\n/// Shorthand for `grid-column-gutter()`.\n/// @alias grid-column-gutter\n@mixin grid-col-gutter(\n  $gutter: auto,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-gutter($gutter, $gutters);\n}\n\n/// Shorthand for `grid-column-collapse()`.\n/// @alias grid-column-collapse\n@mixin grid-col-collapse {\n  @include grid-column-collapse;\n}\n\n/// Sets bottom margin on grid columns to match gutters\n/// @param {Number|Keyword} $margin [auto]\n///   The bottom margin on grid columns, accepts multiple values:\n///   - A single value will make the margin that exact size.\n///   - A breakpoint name will make the margin the corresponding size in the $margins map.\n///   - \"auto\" will make the margin responsive, using the $margins map values.\n/// @param {Number|Map} $margins [$grid-column-gutter] - Map or single value to use. Responsive gutter settings by default.\n@mixin grid-column-margin (\n  $margin: auto,\n  $margins: $grid-column-gutter\n) {\n  @include -zf-breakpoint-value($margin, $margins) {\n    $margin-bottom: rem-calc($-zf-bp-value);\n    margin-bottom: $margin-bottom;\n\n    > :last-child {\n      margin-bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Set the width of a grid column.\n///\n/// @param {Number|List} $width [$grid-column-count] - Width to make the column. You can pass in any value accepted by the `grid-column()` function, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-size(\n  $columns: $grid-column-count\n) {\n  width: grid-column($columns);\n}\n\n/// Shorthand for `grid-column-size()`.\n/// @alias grid-column-size\n@mixin grid-col-size(\n  $columns: $grid-column-count\n) {\n  @include grid-column-size($columns);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Calculates the width of a column based on a number of factors.\n///\n/// @param {Number|List} $columns\n///   Width of the column. Accepts multiple values:\n///   - A percentage value will make the column that exact size.\n///   - A single digit will make the column span that number of columns wide, taking into account the column count of the parent row.\n///   - A list of the format \"x of y\" (without quotes) will make a column that is *x* columns wide, assuming *y* total columns for the parent.\n///\n/// @returns {Number} A calculated percentage value.\n@function grid-column($columns) {\n  @return fraction-to-percentage($columns, $denominator: $grid-column-count);\n}\n\n/// Creates a grid column.\n///\n/// @param {Mixed} $columns [$grid-column-count] - Width of the column. Refer to the `grid-column()` function to see possible values.\n/// @param {Mixed} $gutters [$grid-column-gutter] - Spacing between columns. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  // Gutters\n  @include grid-column-gutter($gutters: $gutters);\n  // Position\n  @include grid-col-pos(auto);\n\n  @include grid-column-size($columns);\n  float: $global-left;\n}\n\n/// Creates a grid column row. This is the equivalent of adding `.row` and `.column` to the same element.\n///\n/// @param {Mixed} $gutters [$grid-column-gutter] - Width of the gutters on either side of the column row. Refer to the `grid-column-gutter()` function to see possible values.\n@mixin grid-column-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-row;\n  @include grid-column($gutters: $gutters);\n\n  &,\n  &:last-child {\n    float: none;\n  }\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@function grid-col(\n  $columns: $grid-column-count\n) {\n  @return grid-column($columns);\n}\n\n/// Shorthand for `grid-column()`.\n/// @alias grid-column\n@mixin grid-col(\n  $columns: $grid-column-count,\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column($columns, $gutters);\n}\n\n/// Shorthand for `grid-column-row()`.\n/// @alias grid-column-row\n@mixin grid-col-row(\n  $gutters: $grid-column-gutter\n) {\n  @include grid-column-row($gutters);\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Reposition a column.\n///\n/// @param {Number|Keyword} $position - It can be:\n///   * A number: The column will move equal to the width of the column count\n///     specified. A positive number will push the column to the right, while\n///     a negative number will pull it to the left.\n///   * `center`: Column will be centered\n///   * `auto`: Column will be pushed to the left (or to the right for the last column).\n@mixin grid-column-position($position) {\n  // Auto positioning\n  @if $position == auto {\n    &, &:last-child:not(:first-child) {\n      float: $global-left;\n      clear: none;\n    }\n\n    // Last column alignment\n    @if $grid-column-align-edge {\n      &:last-child:not(:first-child) {\n        float: $global-right;\n      }\n    }\n  }\n\n  // Push/pull\n  @else if type-of($position) == 'number' {\n    $offset: percentage(divide($position, $grid-column-count));\n\n    position: relative;\n    #{$global-left}: $offset;\n  }\n\n  // Center positioning\n  @else if $position == center {\n    &, &:last-child:not(:first-child) {\n      float: none;\n      clear: both;\n    }\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  @else {\n    @warn 'Wrong syntax for grid-column-position(). Enter a positive or negative number, \"center\" or \"auto\".';\n  }\n}\n\n/// Reset a position definition.\n@mixin grid-column-unposition {\n  @include grid-column-position(auto);\n  position: static;\n  margin-right: 0;\n  margin-left: 0;\n}\n\n/// Offsets a column to the right by `$n` columns.\n/// @param {Number|List} $n - Width to offset by. You can pass in any value accepted by the `grid-column()` mixin, such as `6`, `50%`, or `1 of 2`.\n@mixin grid-column-offset($n) {\n  margin-#{$global-left}: grid-column($n);\n}\n\n/// Disable the default behavior of the last column in a row aligning to the opposite edge.\n@mixin grid-column-end {\n  // This extra specificity is required for the property to be applied\n  &:last-child:last-child {\n    float: $global-left;\n  }\n}\n\n/// Shorthand for `grid-column-position()`.\n/// @alias grid-column-position\n@mixin grid-col-pos($position) {\n  @include grid-column-position($position);\n}\n\n/// Shorthand for `grid-column-unposition()`.\n/// @alias grid-column-unposition\n@mixin grid-col-unpos {\n  @include grid-column-unposition;\n}\n\n/// Shorthand for `grid-column-offset()`.\n/// @alias grid-column-offset\n@mixin grid-col-off($n) {\n  @include grid-column-offset($n);\n}\n\n/// Shorthand for `grid-column-end()`.\n/// @alias grid-column-end\n@mixin grid-col-end {\n  @include grid-column-end;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.column'] - Selector(s) to use for child elements.\n/// @param {Number|List} $gutter\n///   The gutter to apply to child elements. Accepts multiple values:\n///   - $grid-column-gutter will use the values in the $grid-column-gutter map, including breakpoint sizes.\n///   - A fixed numeric value will apply this gutter to all breakpoints.\n@mixin grid-layout(\n  $n,\n  $selector: '.column',\n  $gutter: null\n) {\n  & > #{$selector} {\n    float: $global-left;\n    width: percentage(divide(1, $n));\n\n    // If a $gutter value is passed\n    @if($gutter) {\n      // Gutters\n      @if type-of($gutter) == 'map' {\n        @each $breakpoint, $value in $gutter {\n          $padding: rem-calc($value) * 0.5;\n\n          @include breakpoint($breakpoint) {\n            padding-right: $padding;\n            padding-left: $padding;\n          }\n        }\n      }\n      @else if type-of($gutter) == 'number' and strip-unit($gutter) > 0 {\n        $padding: rem-calc($gutter) * 0.5;\n        padding-right: $padding;\n        padding-left: $padding;\n      }\n    }\n\n    &:nth-of-type(1n) {\n      clear: none;\n    }\n\n    &:nth-of-type(#{$n}n+1) {\n      clear: both;\n    }\n\n    &:last-child {\n      float: $global-left;\n    }\n  }\n}\n\n/// Adds extra CSS to block grid children so the last items in the row center automatically. Apply this to the columns, not the row.\n///\n/// @param {Number} $n - Number of items that appear in each row.\n@mixin grid-layout-center-last($n) {\n  @for $i from 1 to $n {\n    @if $i == 1 {\n      &:nth-child(#{$n}n+1):last-child {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n    @else {\n      &:nth-child(#{$n}n+1):nth-last-child(#{$i}) {\n        margin-left: (100 - divide(100, $n) * $i) * 0.5 * 1%;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
index 63646bfb2f236fc69d9bd92cadc9532691b2a464..f40a2dc3e328571ccab465198b6e93ce7a9f9a63 100644 (file)
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /**
  * Foundation for Sites
- * Version 6.7.4
+ * Version 6.7.5
  * https://get.foundation
  * Licensed under MIT Open Source
  */
@@ -814,8 +814,7 @@ code, .code-inline {
   * {
     background: transparent !important;
     color: black !important;
-    -webkit-print-color-adjust: economy;
-            color-adjust: economy;
+    print-color-adjust: economy;
     -webkit-box-shadow: none !important;
             box-shadow: none !important;
     text-shadow: none !important; }
index 71e9a38267c90b5b7e2b9e914d65e7700e718d96..54b6b46d8daac030d67b241eb9ac85e2dfaf32e4 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["foundation-prototype.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss","../scss/prototype/_text-utilities.scss","../scss/prototype/_text-transformation.scss","../scss/prototype/_text-decoration.scss","../scss/prototype/_font-styling.scss","../scss/prototype/_list-style-type.scss","../scss/prototype/_rounded.scss","../scss/prototype/_bordered.scss","../scss/prototype/_shadow.scss","../scss/prototype/_arrow.scss","../scss/prototype/_separator.scss","../scss/prototype/_position.scss","../scss/prototype/_overflow.scss","../scss/prototype/_display.scss","../scss/prototype/_border-box.scss","../scss/prototype/_border-none.scss","../scss/prototype/_sizing.scss","../scss/prototype/_spacing.scss"],"names":[],"mappings":"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gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,WCnBgE,EAAA,EJnD7D;;AlBqFC;EkB5GF;IGkDJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WAlFY,EAAA;EHNZ;IG6CF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHvCF;IGkFF,WAlFY,EAAA;EHSV;IGyEF,eCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,WCnBgE,EAAA,EJnD7D;;AAKL;EACE,WAAW,EAAA;;AAIb;EACE,YAAY,EAAA;;AA8Bd;ECvGM,sBAA6D;EAA7D,uBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,uBAA6D;MAA7D,wBAA6D,EAAA,EDsIlE;EA/BD;IG6BE,2BAtD8F;IFrE5F,qBAA6D;IAA7D,sBAA6D,EAAA;EnB0I3D;IkB5CN;MG6BE,4BAtD8F;MFrE5F,sBAA6D;MAA7D,uBAA6D,EAAA,ED2G1D;EArCP;IGqDE,WAlFY,EAAA;EHiCd;IGiDE,WAlFY,EAAA;EHyCZ;IGyCA,+BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;ErBqE1F;IkBpEN;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHChG;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA,EHe7F;ElBsDG;IkBpEN;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA,EHe7F;;AA8CH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,EDgJhE;;AAID;ECpJI,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBCJ;MCpJI,wBAA6D;MAA7D,uBAA6D,EAAA,EDsJhE;;AAXH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,ED2JhE;;AK3JH;EFoIE,WCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,YCnBgE,EAAA;;AtBkC5D;EuBnJN;IFoIE,WCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,YCnBgE,EAAA,EC/GjE;;AvBiJK;EuBnJN;IFoIE,WCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,YCnBgE,EAAA,EC/GjE;;AAFD;EFoIE,2BAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,4BAtD8F,EAAA;;ArBqE1F;EuBnJN;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA;EE9EhG;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA,EE5E/F;;AvBiJK;EuBnJN;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA,EE5E/F;;ALqMG;EM9ME,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,eAA0B;IAA1B,cAA0B,EAAA;EAsBxB;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA;EtBkC5D;IwB/HI;MHgHR,eCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,WCnBgE,EAAA,EE3FvD;ExB6HL;IwB/HI;MHgHR,eCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,WCnBgE,EAAA,EE3FvD;;ANuLP;EM7KE,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,gBAA4B;IAA5B,eAA4B,EAAA;;AxB8G9B;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;AxB4GC;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;ANoLD;EOvMF,eAA6B,EAAA;;AP2M3B;EO3MF,mCAA6B,EAAA;;APuM3B;EOvMF,qBAA6B,EAAA;;AP2M3B;EO3MF,yCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;AzB+HzB;EkBwEF;IOvMF,eAA6B,EAAA;EP2M3B;IO3MF,oCAA6B,EAAA;EPuM3B;IOvMF,qBAA6B,EAAA;EP2M3B;IO3MF,0CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA,EP6M1B;;AlB9EC;EkBwEF;IOvMF,eAA6B,EAAA;EP2M3B;IO3MF,oCAA6B,EAAA;EPuM3B;IOvMF,qBAA6B,EAAA;EP2M3B;IO3MF,0CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA,EP6M1B;;AAzJS;EEtEd,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAH6B;EAG7B,6BAH6B;EAG7B,gCAH6B;MAG7B,4BAH6B;UAG7B,wBAH6B,EAAA;EFiP7B;IG1IA,YAAmB;IACnB,gBAA2B,EAAA;EHyI3B;IG7GE,YAlFY,EAAA;EH+Ld;IG7GE,YAlFY,EAAA;EH+Ld;IA2BM,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA;ElBzHhB;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;ElB1HC;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;EA5BL;IGxJA,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHwJN;IG7GE,gBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,WCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,WCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,WCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,YCnBgE,EAAA;EtBkC5D;IkB8FN;MGxJA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YAlFY,EAAA;IH+Ld;MGxJA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IHwJN;MG7GE,YAlFY,EAAA;IH+Ld;MG7GE,gBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,YCnBgE,EAAA,EJyL3D;ElBvJD;IkB8FN;MGxJA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YAlFY,EAAA;IH+Ld;MGxJA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IHwJN;MG7GE,YAlFY,EAAA;IH+Ld;MG7GE,gBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,YCnBgE,EAAA,EJyL3D;;AAOL;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,EDqT9D;;AAJH;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,ED0T9D;;AAnNL;ECvGM,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,sBAA6D;MAA7D,yBAA6D,EAAA,EDsIlE;EA/BD;IG6BE,4BAtD8F;IFrE5F,oBAA6D;IAA7D,uBAA6D,EAAA;EnB0I3D;IkB5CN;MG6BE,6BAtD8F;MFrE5F,qBAA6D;MAA7D,wBAA6D,EAAA,ED2G1D;EArCP;IGqDE,YAlFY,EAAA;EHiCd;IGiDE,YAlFY,EAAA;EHyCZ;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,4BAtD8F,EAAA;ErBqE1F;IkBpEN;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA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IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA;IHChG;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA,EHe7F;ElBsDG;IkBpEN;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA,EHe7F;;AAkTD;EQ1YI,6BAAmC,EAAA;E1B8InC;IkB4PJ;MQ1YI,8BAAmC,EAAA,ER4YtC;ElB9PG;IkB4PJ;MQ1YI,8BAAmC,EAAA,ER4YtC;;AlB9PG;EkBgQF;IQ9YE,8BAAmC,EAAA,ERgZpC;;AlBlQC;EkBgQF;IQ9YE,8BAAmC,EAAA,ERgZpC;;ASz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D+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;A7DsEV;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;A7DmEC;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;AA/FL;ECYA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa,EAAA;;ADRb;EACE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;;AAGhB;EACE,mBAAc;EAAd,sBAA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","file":"foundation-prototype.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n\n.text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important; }\n\n.text-truncate {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: ellipsis;\n  white-space: nowrap !important; }\n\n.text-nowrap {\n  white-space: nowrap !important; }\n\n.text-wrap {\n  word-wrap: break-word !important; }\n\n.text-lowercase {\n  text-transform: lowercase !important; }\n\n.text-uppercase {\n  text-transform: uppercase !important; }\n\n.text-capitalize {\n  text-transform: capitalize !important; }\n\n.text-overline {\n  text-decoration: overline !important; }\n\n.text-underline {\n  text-decoration: underline !important; }\n\n.text-line-through {\n  text-decoration: line-through !important; }\n\n.font-wide {\n  letter-spacing: 0.25rem; }\n\n.font-normal {\n  font-weight: normal; }\n\n.font-bold {\n  font-weight: bold; }\n\n.font-italic {\n  font-style: italic !important; }\n\nul.list-disc {\n  list-style-type: disc !important; }\n\nul.list-circle {\n  list-style-type: circle !important; }\n\nul.list-square {\n  list-style-type: square !important; }\n\nol.list-decimal {\n  list-style-type: decimal !important; }\n\nol.list-lower-alpha {\n  list-style-type: lower-alpha !important; }\n\nol.list-lower-latin {\n  list-style-type: lower-latin !important; }\n\nol.list-lower-roman {\n  list-style-type: lower-roman !important; }\n\nol.list-upper-alpha {\n  list-style-type: upper-alpha !important; }\n\nol.list-upper-latin {\n  list-style-type: upper-latin !important; }\n\nol.list-upper-roman {\n  list-style-type: upper-roman !important; }\n\n.rounded {\n  border-radius: 5000px !important; }\n  .rounded .switch-paddle {\n    border-radius: 5000px !important; }\n    .rounded .switch-paddle:after {\n      border-radius: 50%; }\n\n.radius {\n  border-radius: 0.1875rem; }\n\n.bordered {\n  border: 0.0625rem solid #cacaca; }\n\n.shadow {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }\n\n.arrow-down {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #0a0a0a transparent transparent; }\n\n.arrow-up {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-top-width: 0;\n  border-color: transparent transparent #0a0a0a; }\n\n.arrow-right {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #0a0a0a; }\n\n.arrow-left {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #0a0a0a transparent transparent; }\n\n.separator-center {\n  text-align: center !important; }\n  .separator-center::before, .separator-center::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-center::after {\n    clear: both; }\n  .separator-center::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0; }\n\n.separator-left {\n  text-align: left !important; }\n  .separator-left::before, .separator-left::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-left::after {\n    clear: both; }\n  .separator-left::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-left: 0 !important; }\n\n.separator-right {\n  text-align: right !important; }\n  .separator-right::before, .separator-right::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-right::after {\n    clear: both; }\n  .separator-right::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-right: 0 !important; }\n\n.overflow-visible {\n  overflow: visible !important; }\n\n.overflow-x-visible {\n  overflow-x: visible !important; }\n\n.overflow-y-visible {\n  overflow-y: visible !important; }\n\n.overflow-hidden {\n  overflow: hidden !important; }\n\n.overflow-x-hidden {\n  overflow-x: hidden !important; }\n\n.overflow-y-hidden {\n  overflow-y: hidden !important; }\n\n.overflow-scroll {\n  overflow: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.overflow-x-scroll {\n  overflow-x: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.overflow-y-scroll {\n  overflow-y: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.display-inline {\n  display: inline !important; }\n\n.display-inline-block {\n  display: inline-block !important; }\n\n.display-block {\n  display: block !important; }\n\n.display-table {\n  display: table !important; }\n\n.display-table-cell {\n  display: table-cell !important; }\n\n.position-static {\n  position: static !important; }\n\n.position-relative {\n  position: relative !important; }\n\n.position-absolute {\n  position: absolute !important; }\n\n.position-fixed {\n  position: fixed !important; }\n\n.position-fixed-top {\n  position: fixed !important;\n  top: 0rem !important;\n  right: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.position-fixed-bottom {\n  position: fixed !important;\n  right: 0rem !important;\n  bottom: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.border-box {\n  box-sizing: border-box !important; }\n\n.border-none {\n  border: 0 !important; }\n\n.width-25 {\n  width: 25% !important; }\n\n.width-50 {\n  width: 50% !important; }\n\n.width-75 {\n  width: 75% !important; }\n\n.width-100 {\n  width: 100% !important; }\n\n.height-25 {\n  height: 25% !important; }\n\n.height-50 {\n  height: 50% !important; }\n\n.height-75 {\n  height: 75% !important; }\n\n.height-100 {\n  height: 100% !important; }\n\n.max-width-100 {\n  max-width: 100% !important; }\n\n.max-height-100 {\n  max-height: 100% !important; }\n\n.margin-0 {\n  margin: 0rem !important; }\n\n.margin-top-0 {\n  margin-top: 0rem !important; }\n\n.margin-right-0 {\n  margin-right: 0rem !important; }\n\n.margin-bottom-0 {\n  margin-bottom: 0rem !important; }\n\n.margin-left-0 {\n  margin-left: 0rem !important; }\n\n.margin-horizontal-0 {\n  margin-right: 0rem !important;\n  margin-left: 0rem !important; }\n\n.margin-vertical-0 {\n  margin-top: 0rem !important;\n  margin-bottom: 0rem !important; }\n\n.padding-0 {\n  padding: 0rem !important; }\n\n.padding-top-0 {\n  padding-top: 0rem !important; }\n\n.padding-right-0 {\n  padding-right: 0rem !important; }\n\n.padding-bottom-0 {\n  padding-bottom: 0rem !important; }\n\n.padding-left-0 {\n  padding-left: 0rem !important; }\n\n.padding-horizontal-0 {\n  padding-right: 0rem !important;\n  padding-left: 0rem !important; }\n\n.padding-vertical-0 {\n  padding-top: 0rem !important;\n  padding-bottom: 0rem !important; }\n\n.margin-1 {\n  margin: 1rem !important; }\n\n.margin-top-1 {\n  margin-top: 1rem !important; }\n\n.margin-right-1 {\n  margin-right: 1rem !important; }\n\n.margin-bottom-1 {\n  margin-bottom: 1rem !important; }\n\n.margin-left-1 {\n  margin-left: 1rem !important; }\n\n.margin-horizontal-1 {\n  margin-right: 1rem !important;\n  margin-left: 1rem !important; }\n\n.margin-vertical-1 {\n  margin-top: 1rem !important;\n  margin-bottom: 1rem !important; }\n\n.padding-1 {\n  padding: 1rem !important; }\n\n.padding-top-1 {\n  padding-top: 1rem !important; }\n\n.padding-right-1 {\n  padding-right: 1rem !important; }\n\n.padding-bottom-1 {\n  padding-bottom: 1rem !important; }\n\n.padding-left-1 {\n  padding-left: 1rem !important; }\n\n.padding-horizontal-1 {\n  padding-right: 1rem !important;\n  padding-left: 1rem !important; }\n\n.padding-vertical-1 {\n  padding-top: 1rem !important;\n  padding-bottom: 1rem !important; }\n\n.margin-2 {\n  margin: 2rem !important; }\n\n.margin-top-2 {\n  margin-top: 2rem !important; }\n\n.margin-right-2 {\n  margin-right: 2rem !important; }\n\n.margin-bottom-2 {\n  margin-bottom: 2rem !important; }\n\n.margin-left-2 {\n  margin-left: 2rem !important; }\n\n.margin-horizontal-2 {\n  margin-right: 2rem !important;\n  margin-left: 2rem !important; }\n\n.margin-vertical-2 {\n  margin-top: 2rem !important;\n  margin-bottom: 2rem !important; }\n\n.padding-2 {\n  padding: 2rem !important; }\n\n.padding-top-2 {\n  padding-top: 2rem !important; }\n\n.padding-right-2 {\n  padding-right: 2rem !important; }\n\n.padding-bottom-2 {\n  padding-bottom: 2rem !important; }\n\n.padding-left-2 {\n  padding-left: 2rem !important; }\n\n.padding-horizontal-2 {\n  padding-right: 2rem !important;\n  padding-left: 2rem !important; }\n\n.padding-vertical-2 {\n  padding-top: 2rem !important;\n  padding-bottom: 2rem !important; }\n\n.margin-3 {\n  margin: 3rem !important; }\n\n.margin-top-3 {\n  margin-top: 3rem !important; }\n\n.margin-right-3 {\n  margin-right: 3rem !important; }\n\n.margin-bottom-3 {\n  margin-bottom: 3rem !important; }\n\n.margin-left-3 {\n  margin-left: 3rem !important; }\n\n.margin-horizontal-3 {\n  margin-right: 3rem !important;\n  margin-left: 3rem !important; }\n\n.margin-vertical-3 {\n  margin-top: 3rem !important;\n  margin-bottom: 3rem !important; }\n\n.padding-3 {\n  padding: 3rem !important; }\n\n.padding-top-3 {\n  padding-top: 3rem !important; }\n\n.padding-right-3 {\n  padding-right: 3rem !important; }\n\n.padding-bottom-3 {\n  padding-bottom: 3rem !important; }\n\n.padding-left-3 {\n  padding-left: 3rem !important; }\n\n.padding-horizontal-3 {\n  padding-right: 3rem !important;\n  padding-left: 3rem !important; }\n\n.padding-vertical-3 {\n  padding-top: 3rem !important;\n  padding-bottom: 3rem !important; }\n","/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($mg)}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($margin-gutter)}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-utilities\n////\n\n/// Responsive breakpoints for text utilities\n/// @type Boolean\n$prototype-utilities-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default Value for `text-overflow` variable\n/// @type String\n$prototype-text-overflow: ellipsis !default;\n\n/// Image Replacement utility. `text-hide`\n@mixin text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important;\n}\n\n/// Truncating the text, elipsis by default.\n/// @param {String} $overflow [$prototype-text-overflow] Text Truncate\n@mixin text-truncate(\n  $overflow: $prototype-text-overflow\n) {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: $overflow; \n  white-space: nowrap !important;\n}\n\n/// No wrapping of the text. `text-nowrap`\n@mixin text-nowrap {\n  white-space: nowrap !important;\n}\n\n/// Wrapping of the text. `text-wrap`\n@mixin text-wrap {\n  word-wrap: break-word !important;\n}\n\n@mixin foundation-prototype-text-utilities {\n  .text-hide {\n    @include text-hide;\n  }\n\n  .text-truncate {\n    @include text-truncate;\n  }\n\n  .text-nowrap {\n    @include text-nowrap;\n  }\n\n  .text-wrap {\n    @include text-wrap;\n  }\n\n  @if ($prototype-utilities-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-hide {\n            @include text-hide;\n          }\n\n          .#{$size}-text-truncate {\n            @include text-truncate;\n          }\n\n          .#{$size}-text-nowrap {\n            @include text-nowrap;\n          }\n\n          .#{$size}-text-wrap {\n            @include text-wrap;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-transformation\n////\n\n/// Responsive breakpoints for text transformation classes\n/// @type Boolean\n$prototype-transformation-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-transformation` classes\n/// @type Map\n$prototype-text-transformation: (\n  lowercase,\n  uppercase,\n  capitalize\n) !default;\n\n/// Text Transformation, by default coming through a map `$prototype-text-transformation`\n/// @param {String} $transformation [] Text Transformation\n@mixin text-transform($transformation) {\n  text-transform: $transformation !important;\n}\n\n@mixin foundation-prototype-text-transformation {\n  @each $transformation in $prototype-text-transformation {\n    .text-#{$transformation} {\n      @include text-transform($transformation);\n    }\n  }\n\n  @if ($prototype-transformation-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $transformation in $prototype-text-transformation {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$transformation} {\n              @include text-transform($transformation);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-decoration\n////\n\n/// Responsive breakpoints for text decoration classes\n/// @type Boolean\n$prototype-decoration-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-decoration` classes\n/// @type Map\n$prototype-text-decoration: (\n  overline,\n  underline,\n  line-through,\n) !default;\n\n/// Text Decoration, by default coming through a map `$prototype-text-decoration`\n/// @param {String} $decoration [] Text Decoration\n@mixin text-decoration($decoration) {\n  text-decoration: $decoration !important;\n}\n\n@mixin foundation-prototype-text-decoration {\n  @each $decoration in $prototype-text-decoration {\n    .text-#{$decoration} {\n      @include text-decoration($decoration);\n    }\n  }\n\n  @if ($prototype-decoration-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $decoration in $prototype-text-decoration {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$decoration} {\n              @include text-decoration($decoration);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-font-styling\n////\n\n/// Responsive breakpoints for font styling types\n/// @type Boolean\n$prototype-font-breakpoints: $global-prototype-breakpoints !default;\n\n/// Letter spacing for `.font-wide`\n/// @type Number\n$prototype-wide-letter-spacing: rem-calc(4) !default;\n\n/// Default weight for `.font-normal`, defaulted to `global-weight-normal`\n/// @type Number\n$prototype-font-normal: $global-weight-normal !default;\n\n/// Default weight for `.font-bold`, defaulted to `global-weight-bold`\n/// @type Number\n$prototype-font-bold: $global-weight-bold !default;\n\n/// Font wide letter spacing!\n/// @param {Number} $letter-spacing [$prototype-wide-letter-spacing] Wide letter spacing for the font\n@mixin font-wide(\n  $letter-spacing: $prototype-wide-letter-spacing\n) {\n  letter-spacing: $letter-spacing;\n}\n\n/// Font Weight Normal, default value coming through `global-weight-normal`\n/// @param {Number} $weight [$prototype-font-normal] Weight of the font (normal)\n@mixin font-normal(\n  $weight: $prototype-font-normal\n) {\n  font-weight: $weight;\n}\n\n/// Font Weight Bold, default value coming through `global-weight-bold`\n/// @param {Number} $weight [$prototype-font-bold] Weight of the font (bold)\n@mixin font-bold(\n  $weight: $prototype-font-bold\n) {\n  font-weight: $weight;\n}\n\n/// Font Style Italic\n@mixin font-italic {\n  font-style: italic !important;\n}\n\n@mixin foundation-prototype-font-styling {\n  .font-wide {\n    @include font-wide;\n  }\n\n  .font-normal {\n    @include font-normal;\n  }\n\n  .font-bold {\n    @include font-bold;\n  }\n\n  .font-italic {\n    @include font-italic;\n  }\n\n  @if ($prototype-font-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-font-wide {\n            @include font-wide;\n          }\n\n          .#{$size}-font-normal {\n            @include font-normal;\n          }\n\n          .#{$size}-font-bold {\n            @include font-bold;\n          }\n\n          .#{$size}-font-italic {\n            @include font-italic;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-list-style-type\n////\n\n/// Responsive breakpoints for list styling types\n/// @type Boolean\n$prototype-list-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `style-type-unordered` classes\n/// @type Map\n$prototype-style-type-unordered: (\n  disc,\n  circle,\n  square\n) !default;\n\n/// Map containing all the `style-type-ordered` classes\n/// @type Map\n$prototype-style-type-ordered: (\n  decimal,\n  lower-alpha,\n  lower-latin,\n  lower-roman,\n  upper-alpha,\n  upper-latin,\n  upper-roman\n) !default;\n\n\n/// Style type for unordered Lists, by default coming through a map `$prototype-style-type-unordered`\n/// @param {String} $style-type-unordered [] Style type for unordered Lists\n@mixin style-type-unordered($style-type-unordered) {\n  list-style-type: $style-type-unordered !important;\n}\n\n/// Style type for ordered Lists, by default coming through a map `$prototype-style-type-ordered`\n/// @param {String} $style-type-ordered [] Style type for ordered Lists\n@mixin style-type-ordered($style-type-ordered) {\n  list-style-type: $style-type-ordered !important;\n}\n\n@mixin list-unordered {\n  @each $style-type-unordered in $prototype-style-type-unordered {\n    ul.list-#{$style-type-unordered} {\n      @include style-type-unordered($style-type-unordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-unordered in $prototype-style-type-unordered {\n          @if $size != $-zf-zero-breakpoint {\n            ul.#{$size}-list-#{$style-type-unordered} {\n              @include style-type-unordered($style-type-unordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin list-ordered {\n  @each $style-type-ordered in $prototype-style-type-ordered {\n    ol.list-#{$style-type-ordered} {\n      @include style-type-ordered($style-type-ordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-ordered in $prototype-style-type-ordered {\n          @if $size != $-zf-zero-breakpoint {\n            ol.#{$size}-list-#{$style-type-ordered} {\n              @include style-type-ordered($style-type-ordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-prototype-list-style-type {\n  @include list-unordered;\n  @include list-ordered;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-rounded\n////\n\n/// Responsive breakpoints for rounded utility.\n/// @type Boolean\n$prototype-rounded-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-radius`\n/// @type Number\n$prototype-border-radius: rem-calc(3) !default;\n\n/// Rounded utility (all corners): Adds radius corners (all corners) to an element by default.\n/// @param {Number} $radius [$prototype-border-radius] Border radius (all corners)\n@mixin border-radius(\n  $radius: $prototype-border-radius\n) {\n  border-radius: $radius;\n}\n\n/// Rounded square utility or rectangle utility (all corners): Rounds all corners to an element by default to make a pill shape.\n@mixin border-rounded {\n  border-radius: 5000px !important;\n}\n\n@mixin foundation-prototype-rounded {\n  .rounded {\n    @include border-rounded;\n\n    .switch-paddle {\n      @include border-rounded;\n      &:after {\n        border-radius: 50%; // For switches\n      }\n    }\n  }\n\n  .radius {\n    @include border-radius;\n  }\n\n  @if ($prototype-rounded-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-rounded {\n            @include border-rounded;\n          }\n          .#{$size}-radius {\n            @include border-radius;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-bordered\n////\n\n/// Responsive breakpoints for bordered utility.\n/// @type Boolean\n$prototype-bordered-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-width`\n/// @type Number\n$prototype-border-width: rem-calc(1) !default;\n\n/// Default value for `prototype-border-type`\n/// @type String\n$prototype-border-type: solid !default;\n\n/// Default value for `prototype-border-color` defaulted to `medium-gray`\n/// @type Color\n$prototype-border-color: $medium-gray !default;\n\n/// Bordered Utility: Adds a light border to an element by default.\n/// @param {Number} $width [$prototype-border-width] Width of the border\n/// @param {String} $type [$prototype-border-type] Type of the border\n/// @param {Color} $color [$prototype-border-color] Color of the border\n@mixin bordered(\n  $width: $prototype-border-width,\n  $type: $prototype-border-type,\n  $color: $prototype-border-color\n) {\n  border: $width $type $color;\n}\n\n@mixin foundation-prototype-bordered {\n  .bordered {\n    @include bordered;\n  }\n\n  @if ($prototype-bordered-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-bordered {\n            @include bordered;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-shadow\n////\n\n/// Responsive breakpoints for shadow utility.\n/// @type Boolean\n$prototype-shadow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-box-shadow`\n/// @type Number\n$prototype-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !default;\n\n/// Shadow Utility: Adds a light box shadow to an element by default.\n/// @param {Number} $shadow [$prototype-box-shadow] Box Shadow of a component\n@mixin shadow(\n  $shadow: $prototype-box-shadow\n) {\n  box-shadow: $shadow;\n}\n\n@mixin foundation-prototype-shadow {\n  .shadow {\n    @include shadow;\n  }\n\n  @if ($prototype-shadow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-shadow {\n            @include shadow;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-arrow\n////\n\n/// Map containing all the `arrow` direction\n/// @type Map\n$prototype-arrow-directions: (\n  down,\n  up,\n  right,\n  left\n) !default;\n\n/// Width of the Arrow, `0.4375rem` by default.\n/// @type Number\n$prototype-arrow-size: 0.4375rem;\n\n/// Color of the Arrow, `$black` by default.\n/// @type Color\n$prototype-arrow-color: $black;\n\n@mixin foundation-prototype-arrow {\n  @each $prototype-arrow-direction in $prototype-arrow-directions {\n    .arrow-#{$prototype-arrow-direction} {\n      @include css-triangle(\n        $prototype-arrow-size, \n        $prototype-arrow-color, \n        $prototype-arrow-direction\n      );\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-separator\n////\n\n/// Responsive breakpoints for separator.\n/// @type Boolean\n$prototype-separator-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default alignment of a separator.\n/// @type String\n$prototype-separator-align: center !default;\n\n/// Height of a separator.\n/// @type Number\n$prototype-separator-height: rem-calc(2) !default;\n\n/// Width of a separator.\n/// @type Number\n$prototype-separator-width: 3rem !default;\n\n/// Default color of a separator.\n/// @type Color\n$prototype-separator-background: $primary-color !default;\n\n/// Top Margin of a separator.\n/// @type Number\n$prototype-separator-margin-top: $global-margin !default;\n\n/// Title separator Utility, mostly used to style the main heading of a section\n/// @param {String} $align [$prototype-separator-align] - separator Alignment\n/// @param {Number} $height [$prototype-separator-height] - Width\n/// @param {Number} $width [$prototype-separator-width] - Height\n/// @param {Color} $background [$prototype-separator-background] - Background\n/// @param {Number} $top [$prototype-separator-margin-top] - Margin Top\n@mixin separator (\n  $align: $prototype-separator-align,\n  $height: $prototype-separator-height,\n  $width: $prototype-separator-width,\n  $background: $prototype-separator-background,\n  $top: $prototype-separator-margin-top\n) {\n  @include clearfix;\n  text-align: $align !important;\n\n  &::after {\n    @include position(relative);\n    width: $width;\n    border-bottom: $height solid $background;\n    margin: $top auto 0;\n\n    @if $align == left {\n      margin-left: 0 !important;\n    }\n\n    @if $align == right {\n      margin-right: 0 !important;\n    }\n  }\n}\n\n@mixin foundation-prototype-separator {\n  .separator-center {\n    @include separator(center);\n  }\n\n  .separator-left {\n    @include separator(left);\n  }\n\n  .separator-right {\n    @include separator(right);\n  }\n\n  @if ($prototype-separator-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-separator-center {\n            @include separator(center);\n          }\n          .#{$size}-separator-left {\n            @include separator(left);\n          }\n          .#{$size}-separator-right {\n            @include separator(right);\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-position\n////\n\n/// Responsive breakpoints for position helpers\n/// @type Boolean\n$prototype-position-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `position` classes\n/// @type Map\n$prototype-position: (\n  static,\n  relative,\n  absolute,\n  fixed\n) !default;\n\n/// z-index for fixed positioning\n/// @type Number\n$prototype-position-z-index: 975 !default;\n\n/// Position classes, by default coming through a map `$prototype-position`, whereas all the offset values are multiplied by `$global-position` which by default is equal to `1rem`.\n/// @param {String} $position [] Position classes, Either `static`, `relative`, `absolute` or `fixed`\n/// @param {Number} $top [null] - Top offset\n/// @param {Number} $right [null] - Right offset\n/// @param {Number} $bottom [null] - Bottom offset\n/// @param {Number} $left [null] - Left offset\n@mixin position(\n  $position,\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  position: $position !important;\n  @if $top != null {\n    top: $top * $global-position !important;\n  }\n  @if $right != null {\n    right: $right * $global-position !important;\n  }\n  @if $bottom != null {\n    bottom: $bottom * $global-position !important;\n  }\n  @if $left != null {\n    left: $left * $global-position !important;\n  }\n}\n\n/// Position Fixed on top corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-top`\n@mixin position-fixed-top(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, 0, 0, null, 0);\n  z-index: $z-index;\n}\n\n/// Position Fixed on bottom corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-bottom`\n@mixin position-fixed-bottom(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, null, 0, 0, 0);\n  z-index: $z-index;\n}\n\n@mixin foundation-prototype-position {\n  // Position: Static, Relative, Fixed, Absolute\n  @each $position in $prototype-position {\n    .position-#{$position} {\n      @include position($position);\n    }\n  }\n\n  // Position: Fixed Top, Fixed Bottom\n  .position-fixed-top {\n    @include position-fixed-top;\n  }\n  .position-fixed-bottom {\n    @include position-fixed-bottom;\n  }\n\n  @if ($prototype-position-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        // Position: Static, Relative, Fixed, Absolute\n        @each $position in $prototype-position {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-position-#{$position} {\n              @include position($position);\n            }\n          }\n        }\n\n        // Position: Fixed Top, Fixed Bottom\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-position-fixed-top {\n            @include position-fixed-top;\n          }\n\n          .#{$size}-position-fixed-bottom {\n            @include position-fixed-bottom;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-overflow\n////\n\n/// Responsive breakpoints for overflow helper classes\n/// @type Boolean\n$prototype-overflow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `overflow` classes\n/// @type Map\n$prototype-overflow: (\n  visible,\n  hidden,\n  scroll\n) !default;\n\n/// Overflow classes, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes\n@mixin overflow($overflow) {\n  overflow: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n/// Overflow classes on horizontal axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (horizontal axis)\n@mixin overflow-x($overflow) {\n  overflow-x: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n/// Overflow classes on vertical axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (vertical axis)\n@mixin overflow-y($overflow) {\n  overflow-y: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n@mixin foundation-prototype-overflow {\n  @each $overflow in $prototype-overflow {\n    .overflow-#{$overflow} {\n      @include overflow($overflow);\n    }\n    .overflow-x-#{$overflow} {\n      @include overflow-x($overflow);\n    }\n    .overflow-y-#{$overflow} {\n      @include overflow-y($overflow);\n    }\n  }\n\n  @if ($prototype-overflow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $overflow in $prototype-overflow {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-overflow-#{$overflow} {\n              @include overflow($overflow);\n            }\n            .#{$size}-overflow-x-#{$overflow} {\n              @include overflow-x($overflow);\n            }\n            .#{$size}-overflow-y-#{$overflow} {\n              @include overflow-y($overflow);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-display\n////\n\n/// Responsive breakpoints for display classes\n/// @type Boolean\n$prototype-display-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `display` classes\n/// @type Map\n$prototype-display: (\n  inline,\n  inline-block,\n  block,\n  table,\n  table-cell\n) !default;\n\n/// Display classes, by default coming through a map `$prototype-display`\n/// @param {String} $display [] Display classes\n@mixin display($display) {\n  display: $display !important;\n}\n\n@mixin foundation-prototype-display {\n  @each $display in $prototype-display {\n    .display-#{$display} {\n      @include display($display);\n    }\n  }\n\n  @if ($prototype-display-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $display in $prototype-display {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-display-#{$display} {\n              @include display($display);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-box\n////\n\n/// Responsive breakpoints for border box.\n/// @type Boolean\n$prototype-border-box-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border box utility\n@mixin border-box {\n  box-sizing: border-box !important;\n}\n\n@mixin foundation-prototype-border-box {\n  .border-box {\n    @include border-box;\n  }\n\n  @if ($prototype-border-box-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-box {\n            @include border-box;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-none\n////\n\n/// Responsive breakpoints for border none.\n/// @type Boolean\n$prototype-border-none-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border none utility\n@mixin border-none {\n  border: 0 !important;\n}\n\n@mixin foundation-prototype-border-none {\n  .border-none {\n    @include border-none;\n  }\n\n  @if ($prototype-border-none-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-none {\n            @include border-none;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-sizing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-sizing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `sizing` classes\n/// @type Map\n$prototype-sizing: (\n  width,\n  height\n) !default;\n\n/// Map containing all the sizes.\n/// @type Map\n$prototype-sizes: (\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%\n) !default;\n\n/// Max Width 100 utility.\n@mixin max-width-100 {\n  max-width: 100% !important;\n}\n\n/// Max Height 100 utility.\n@mixin max-height-100 {\n  max-height: 100% !important;\n}\n\n@mixin foundation-prototype-sizing {\n  // Element Sizing\n  @each $sizing in $prototype-sizing {\n    @each $length, $percentage in $prototype-sizes {\n      .#{$sizing}-#{$length} {\n        #{$sizing}: $percentage !important;\n      }\n    }\n  }\n\n  // Max width & height\n  .max-width-100 {\n    @include max-width-100;\n  }\n  .max-height-100 {\n    @include max-height-100;\n  }\n\n  @if ($prototype-sizing-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          @each $sizing in $prototype-sizing {\n            @each $length, $percentage in $prototype-sizes {\n              .#{$size}-#{$sizing}-#{$length} {\n                #{$sizing}: $percentage !important;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-spacing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-spacing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default number of spacers count (margin and padding)\n/// @type Number\n$prototype-spacers-count: 3 !default;\n\n/// Margin helper mixin, all the values are multiplied by `$global-margin` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Margin Top\n/// @param {Number} $right [null] - Margin Right\n/// @param {Number} $bottom [null] - Margin Bottom\n/// @param {Number} $left [null] - Margin Left\n@mixin margin(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    margin-top: $top * $global-margin !important;\n  }\n  @if $right != null {\n    margin-right: $right * $global-margin !important;\n  }\n  @if $bottom != null {\n    margin-bottom: $bottom * $global-margin !important;\n  }\n  @if $left != null {\n    margin-left: $left * $global-margin !important;\n  }\n}\n\n/// Padding helper mixin, all the values are multiplied by `$global-padding` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Padding Top\n/// @param {Number} $right [null] - Padding Right\n/// @param {Number} $bottom [null] - Padding Bottom\n/// @param {Number} $left [null] - Padding Left\n@mixin padding(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    padding-top: $top * $global-padding !important;\n  }\n  @if $right != null {\n    padding-right: $right * $global-padding !important;\n  }\n  @if $bottom != null {\n    padding-bottom: $bottom * $global-padding !important;\n  }\n  @if $left != null {\n    padding-left: $left * $global-padding !important;\n  }\n}\n\n/// Margin classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin margin-direction($dir, $spacer) {\n  @if ($dir == top) {\n    @include margin($top: $spacer);\n  }\n  @else if ($dir == right) {\n    @include margin($right: $spacer);\n  }\n  @else if ($dir == bottom) {\n    @include margin($bottom: $spacer);\n  }\n  @else if ($dir == left) {\n    @include margin($left: $spacer);\n  }\n  @else if ($dir == horizontal) {\n    @include margin($right: $spacer, $left: $spacer);\n  }\n  @else if ($dir == vertical) {\n    @include margin($top: $spacer, $bottom: $spacer);\n  }\n}\n\n/// Padding classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin padding-direction($dir, $spacer) {\n  @if ($dir == top) {\n    @include padding($top: $spacer);\n  }\n  @else if ($dir == right) {\n    @include padding($right: $spacer);\n  }\n  @else if ($dir == bottom) {\n    @include padding($bottom: $spacer);\n  }\n  @else if ($dir == left) {\n    @include padding($left: $spacer);\n  }\n  @else if ($dir == horizontal) {\n    @include padding($right: $spacer, $left: $spacer);\n  }\n  @else if ($dir == vertical) {\n    @include padding($top: $spacer, $bottom: $spacer);\n  }\n}\n\n@mixin foundation-prototype-spacing {\n  @for $spacer from 0 through $prototype-spacers-count {\n\n    @each $prop in (margin, padding) {\n      // All Sides\n      .#{$prop}-#{$spacer} {\n        @if ($prop == margin) {\n          margin: $spacer * $global-margin !important;\n        }\n        @else if ($prop == padding) {\n          padding: $spacer * $global-padding !important;\n        }\n      }\n\n      @each $dir in (top, right, bottom, left, horizontal, vertical) {\n        // Top Side\n        .#{$prop}-#{$dir}-#{$spacer} {\n          @if ($prop == margin) {\n            @include margin-direction($dir, $spacer);\n          }\n          @else if ($prop == padding) {\n            @include padding-direction($dir, $spacer);\n          }\n        }\n      }\n    }\n  }\n\n  @if ($prototype-spacing-breakpoints) {\n    @for $spacer from 0 through $prototype-spacers-count {\n      // Loop through Responsive Breakpoints\n      @each $size in $breakpoint-classes {\n        @include breakpoint($size) {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size} {\n              @each $prop in (margin, padding) {\n                // All Sides\n                &-#{$prop}-#{$spacer} {\n                  @if ($prop == margin) {\n                    margin: $spacer * $global-margin !important;\n                  }\n                  @else if ($prop == padding) {\n                    padding: $spacer * $global-padding !important;\n                  }\n                }\n\n                @each $dir in (top, right, bottom, left, horizontal, vertical) {\n                  // Top Side\n                  &-#{$prop}-#{$dir}-#{$spacer} {\n                    @if ($prop == margin) {\n                      @include margin-direction($dir, $spacer);\n                    }\n                    @else if ($prop == padding) {\n                      @include padding-direction($dir, $spacer);\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["foundation-prototype.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss","../scss/prototype/_text-utilities.scss","../scss/prototype/_text-transformation.scss","../scss/prototype/_text-decoration.scss","../scss/prototype/_font-styling.scss","../scss/prototype/_list-style-type.scss","../scss/prototype/_rounded.scss","../scss/prototype/_bordered.scss","../scss/prototype/_shadow.scss","../scss/prototype/_arrow.scss","../scss/prototype/_separator.scss","../scss/prototype/_position.scss","../scss/prototype/_overflow.scss","../scss/prototype/_display.scss","../scss/prototype/_border-box.scss","../scss/prototype/_border-none.scss","../scss/prototype/_sizing.scss","../scss/prototype/_spacing.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;;;;EDME;AE6KM;ECtIN;IACE,WAAW;IACX,UAAU;IACV,cAAc,EAAA,EACf;;AC9CD,2EAAA;AAQA;EACE,iBAAiB;EACjB,8BAA8B,EAAA;;AAQhC;EACE,SAAS,EAAA;;AAMX;EACE,cAAc;EACd,gBAAgB,EAAA;;AASlB;EACE,+BAAuB;UAAvB,uBAAuB;EACvB,SAAS;EACT,iBAAiB,EAAA;;AAMnB;EACE,iCAAiC;EACjC,cAAc,EAAA;;AAQhB;EACE,6BAA6B,EAAA;;AAM/B;EACE,gBAAgB;EAChB,yCAAiC;UAAjC,iCAAiC,EAAA;;AAKnC;;EAEE,mBAAmB,EAAA;;AAMrB;;;EAGE,iCAAiC;EACjC,cAAc,EAAA;;AAKhB;EACE,cAAc,EAAA;;AAMhB;;EAEE,cAAc;EACd,cAAc;EACd,kBAAkB;EAClB,wBAAwB,EAAA;;AAG1B;EACE,eAAe,EAAA;;AAGjB;EACE,WAAW,EAAA;;AAQb;EACE,kBAAkB,EAAA;;AASpB;;;;;EAKE,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,SAAS,EAAA;;AAMX;;EAEE,iBAAiB,EAAA;;AAMnB;;EAEE,oBAAoB,EAAA;;AAKtB;;;;EAIE,0BAA0B,EAAA;;AAK5B;;;;EAIE,kBAAkB;EAClB,UAAU,EAAA;;AAKZ;;;;EAIE,8BAA8B,EAAA;;AAKhC;EACE,8BAA8B,EAAA;;AAQhC;EACE,8BAAsB;UAAtB,sBAAsB;EACtB,cAAc;EACd,cAAc;EACd,eAAe;EACf,UAAU;EACV,mBAAmB,EAAA;;AAKrB;EACE,wBAAwB,EAAA;;AAK1B;EACE,cAAc,EAAA;;AJvFlB;;EI+FI,8BAAsB;UAAtB,sBAAsB;EACtB,UAAU,EAAA;;AJ3Fd;;EIkGI,YAAY,EAAA;;AJ9FhB;EIqGI,6BAA6B;EAC7B,oBAAoB,EAAA;;AJlGxB;EIwGI,wBAAwB,EAAA;;AAM1B;EACE,0BAA0B;EAC1B,aAAa,EAAA;;AAQf;EACE,cAAc,EAAA;;AAKhB;EACE,kBAAkB,EAAA;;AAQpB;EACE,aAAa,EAAA;;AJxHjB;EI8HI,aAAa,EAAA;;AJ3HjB;;;;;;;EIoIM,aAAa,EAAA;;AJ3HnB;EIiII,2BAA2B;EAC3B,yBAAyB,EAAA;;ACxJ3B;EACE,wEAAgD,EAAA;;ADrIlD;ECyIE,8BAAsB;UAAtB,sBAAsB;EACtB,eCzImB,EAAA;;AD6IrB;;;EAGE,2BAAmB;UAAnB,mBAAmB,EAAA;;ADvIrB;EC4IE,SAAS;EACT,UAAU;EAUV,mBAxHW;EA0HX,mEA9GqE;EA+GrE,mBAvFyB;EAwFzB,gBA1JmB;EA2JnB,cAjIW;EAoIT,mCAAmC;EACnC,kCAAkC,EAAA;;ADhEtC;ECsEE,qBAAqB;EACrB,sBAAsB;EAGtB,eAAe;EACf,YAAY;EACZ,+BAA+B,EAAA;;ADiBjC;ECZE,YAAY;EACZ,gBAAgB;EAChB,gBAxGa,EAAA;;AA4Gf;EACE,8BAAsB;UAAtB,sBAAsB;EACtB,WAAW;EACX,gBA/Ga,EAAA;;AAoHf;;;;;;EAKI,0BAA0B,EAAA;;AAK9B;EAEE,UAAU;EACV,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB;EAChB,SAAS;EACT,gBAnIa;EAoIb,uBAAuB;EACvB,cAAc;EACd,YA/GuB,EAAA;EL0GzB;IOvBE,UAAU,EAAA;;AH1JZ;EC2LE,cAAc;EACd,iCAAiC,EAAA;;AD7GnC;;;;;ECsHE,oBAAoB,EAAA;;AAItB;EACE,yBAAyB,EAAA;;AAG3B;EACE,wBAAwB,EAAA;;ALT5B;;EQ9JE,cAAc;EACd,8BAAsB;UAAtB,sBAAsB;EACtB,WAAW;EACX,iBALsJ;EAMtJ,gBFG8D;EEF9D,eAtCiC;EAwCjC,yBHtDmB;EGuDnB,gBHCe;EGAf,yBH5Ca;EG6Cb,yDHjDa;UGiDb,iDHjDa;EGmDb,oBAjFyB;EAkFzB,eFN8D;EEO9D,mBHb2B;EGc3B,gBHhFqB;EGiFrB,cHvDa;EG0DX,2EApC8D;EAoC9D,mEApC8D;EAoC9D,2DApC8D;EAoC9D,oFApC8D;EAyD9D,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB,EAAA;ERyIlB;;IQzJE,aAAa;IACb,yBHpEe;IGqEf,yBH7DW;IG8DX,mCH1EiB;YG0EjB,2BH1EiB;IG6Ef,2EA/C4D;IA+C5D,mEA/C4D;IA+C5D,2DA/C4D;IA+C5D,oFA/C4D,EAAA;;AJ4IhE;EI9EE,eAAe,EAAA;EADjB;IAII,YAAY,EAAA;;AAIhB;;;EAKI,yBH5Gc;EG6Gd,mBA/E6B,EAAA;;ARyNnC;;EQnII,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB;EAChB,gBHzDa,EAAA;;AG6Df;EACE,8BAAsB;UAAtB,sBAAsB,EAAA;;AAiBxB;EACE,cHxIiB,EAAA;;AGuInB;EACE,cHxIiB,EAAA;;AGuInB;EACE,cHxIiB,EAAA;;AGuInB;EACE,cHxIiB,EAAA;;AGuInB;EACE,cHxIiB,EAAA;;AL8PrB;;;ES1RI,gBHkF4D,EAAA;;AN6MhE;;ESzRI,qBAAqB;EACrB,wBAAwB;EAExB,mBAAkD;EAClD,kBHwE4D;EGvE5D,gBAAgB,EAAA;ET2RlB;;ISxRI,eAAe,EAAA;;AAKnB;;EAEE,oBAAmD,EAAA;;ATyRvD;ESpRI,WAAW,EAAA;;ACKb;EAlBA,cAAc;EACd,SAAS;EAET,mBJkE8D;EIjE9D,mBL2D2B;EK1D3B,gBAR0B;EAS1B,cLiBa,EAAA;EKLb;IANA,gBJyD8D;IIxD9D,gBLhBqB;IKiBrB,oBAAgE,EAAA;;AClBhE;EAGE,mBAFuC;EAGvC,oBLqE4D;EKpE5D,kBARwB;EASxB,cNqBW,EAAA;;AOtBb;EACE,oBAAiC;EAAjC,qBAAiC;EAAjC,oBAAiC;EAAjC,aAAiC;EACjC,WAAW;EACX,mBNiE4D;EM9D1D,0BAAoB;EAApB,4BAAoB;MAApB,uBAAoB;UAApB,oBAAoB,EAAA;EANxB;IAWM,sBP2DS,EAAA;EOtEf;IAiBM,sBAAiH,EAAA;;AAKvH;;;;EACE,SAAS;EACT,mBAAmB,EAAA;;AAQrB;EAEE,eAvCuB;EAwCvB,yBPrBiB;EOsBjB,mBP1BgB;EO4BhB,cPhBW;EOiBX,kBAAkB;EAClB,mBAAmB;EAGjB,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc;EACd,yBAAmB;EAAnB,2BAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB,EAAA;EAbvB;IAsBM,eAAiC,EAAA;EAtBvC;IA0BM,cAAgC,EAAA;;AAKtC;EAEE,gBAAgB;EAGd,mBAAa;EAAb,qBAAa;MAAb,iBAAa;UAAb,aAAa;EACb,YAAY,EAAA;;AAIhB;EAEE,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAGhB,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;EARlB;;;;IAsBM,2BAAmB;QAAnB,4BAAmB;YAAnB,mBAAmB;IACnB,YAAY;IAKd,cAAc;IACd,iBAAiB;IACjB,eNnC0D,EAAA;;AF0F9D;ESjJE,SAAS;EACT,UAAU;EACV,SAAS,EAAA;;ATwJX;ESpJE,eAAe;EACf,qBAAkC,EAAA;;AAGpC;EAxBA,kBP0EW;EOzEX,gBPoE8D;EOnE9D,yBRamB,EAAA;EQXnB;IAEE,SAAS;IACT,uBP8D4D;IO7D5D,oBP6D4D,EAAA;;AD8G9D;ESrLA,iBAFsJ;EAGtJ,gBRsE8D;EQrE9D,eN6BiC;EM3BjC,wBAAgB;KAAhB,qBAAgB;UAAhB,gBAAgB;EAChB,yBTYmB;ESXnB,gBTmEe;ESlEf,yBTsBa;ESpBb,oBNdyB;EMezB,eR6D8D;EQ5D9D,mBTsD2B;ESrD3B,gBTbqB;EScrB,cTYa;EEsGb,wOAAyN;EO9GvN,8BAA8B;EAC9B,uCAA0D;EAC1D,4BAA4B;EAC5B,wBAAwB;EAExB,qBAAuD;EAIvD,2ENqB8D;EMrB9D,mENqB8D;EMrB9D,2DNqB8D;EMrB9D,oFNqB8D,EAAA;EDkFhE;IFoDA;MEjDI,uWAAuW,EAAA,EOnE1W;EAnCD;IACE,aAAa;IACb,yBTXe;ISYf,yBTJW;ISKX,mCTjBiB;YSiBjB,2BTjBiB;ISoBf,2ENU4D;IMV5D,mENU4D;IMV5D,2DNU4D;IMV5D,oFNU4D,EAAA;EMLhE;IACE,yBT9BgB;IS+BhB,mBND+B,EAAA;EMKjC;IACE,aAAa,EAAA;EAGf;IACE,YAAY;IACZ,sBAAsB,EAAA;EAExB;IACE,cAAc;IACd,iBAAiB,EAAA;;ACrCnB;EACE,qBVdc;EUed,yBAA+D,EAAA;EAE/D;IACE,cVlBY,EAAA;EUiBd;IACE,cVlBY,EAAA;EUiBd;IACE,cVlBY,EAAA;EUiBd;IACE,cVlBY,EAAA;EUiBd;IACE,cVlBY,EAAA;;AU4Cd;EACE,cV7CY,EAAA;;AUkDhB;EAzBA,aAAa;EACb,mBAAgC;EAChC,mBToC8D;ESlC9D,kBTkC8D;ESjC9D,iBV+BuB;EU9BvB,cV/BgB,EAAA;EUkDhB;IAII,cAAc,EAAA;;AC8IlB;;;;;;;;;;;;;;;;;;;EAmBE,SAAS;EACT,UAAU,EAAA;;AAIZ;EACE,mBA7I0B;EA+I1B,kBAAkB;EAClB,gBApJsB;EAqJtB,kCA7IyC,EAAA;;AAiJ3C;;EAEE,kBAAkB;EAClB,oBAAoB,EAAA;;AAItB;;EAEE,iBXjLqB;EWkLrB,oBAAoB,EAAA;;AZrLtB;EY0LE,cAhLiB;EAiLjB,oBAAoB,EAAA;;AAItB;;;;;;EAME,mEX9NqE;EW+NrE,kBA7PsB;EA8PtB,mBXxMyB;EWyMzB,cAvPkB;EAwPlB,kCAnMsC,EAAA;EAyLxC;;;;;;IAaI,cAAc;IACd,cX9Pe,EAAA;;AWuQb;EAII,iBVrNoD;EUiOpD,gBAjRW;EAyRX,aAAa;EAOb,qBA5RiB,EAAA;;AA6PrB;EAII,kBVrNoD;EUiOpD,gBAjRW;EAyRX,aAAa;EAOb,qBA5RiB,EAAA;;AA6PrB;EAII,oBVrNoD;EUiOpD,gBAjRW;EAyRX,aAAa;EAOb,qBA5RiB,EAAA;;AA6PrB;EAII,mBVrNoD;EUiOpD,gBAjRW;EAyRX,aAAa;EAOb,qBA5RiB,EAAA;;AA6PrB;EAII,oBVrNoD;EUiOpD,gBAjRW;EAyRX,aAAa;EAOb,qBA5RiB,EAAA;;AA6PrB;EAII,eVrNoD;EUiOpD,gBAjRW;EAyRX,aAAa;EAOb,qBA5RiB,EAAA;;AdiIrB;Ec4HA;IAII,eVrNoD,EAAA;EUiNxD;IAII,iBVrNoD,EAAA;EUiNxD;IAII,oBVrNoD,EAAA;EUiNxD;IAII,oBVrNoD,EAAA;EUiNxD;IAII,kBVrNoD,EAAA;EUiNxD;IAII,eVrNoD,EAAA,EUkPvD;;AZtRP;EY6RE,oBAAoB;EACpB,cX7TgB;EW8ThB,qBAtNyB;EAwNzB,eAAe,EAAA;EALjB;IASI,cAhO2D,EAAA;EAuN/D;IAgBI,SAAS,EAAA;;AZ/Tb;EYqUE,WAAW;EAEX,gBVhR4D;EUiR5D,SAAS;EACT,oBA7NyB;EA+NzB,aAAa;EACb,eAAe;EACf,gCX5UiB;EW6UjB,cAAc,EAAA;;AAIhB;;;EAGE,mBA7Q0B;EA8Q1B,4BA1NyB;EA2NzB,gBAnRsB,EAAA;;AAuRxB;EACE,kBAAkB,EAAA;;AAIpB;EACE,oBAjOsB;EAkOtB,qBA1OkB,EAAA;;AA8OpB;EACE,oBAvOsB,EAAA;;AA2OxB;EAEI,oBAzO2B;EA0O3B,gBAAgB,EAAA;;AAKpB;EACE,mBA5OyB,EAAA;EA2O3B;IAII,qBAvO8B;IAwO9B,iBXnUmB,EAAA;;AWwUvB;EACE,gBAtT0B;EAuT1B,sCVxU4D;EUyU5D,8BX/XiB,EAAA;EW4XnB;IAMI,gBA/ToB;IAgUpB,cX/Xa,EAAA;;AW6YjB;EACE,iCX1YW;EW2YX,YAAY;EACZ,qBAAqB,EAAA;;AAIvB;EACE,SAAS,EAAA;;AAWX;EACE,SAAS;EACT,2BV3WS;EU6WT,yBX5agB;EW8ahB,4DA5amE;EA6anE,cXnaW,EAAA;;AYqFb;EACE,kBAxGyB;EAyGzB,qBArG4B;EAuG5B,mBZjDyB;EYkDzB,gBAxHsB;EAyHtB,cZ/Fe,EAAA;;AYmGjB;EACE,eAtIqC;EAuIrC,gBAnIiB,EAAA;;AAuInB;EACE,iBAhHmB;EAiHnB,cAAc,EAAA;EAEd;IACE,iBAAiB,EAAA;;AAIrB;EAGI,cAAgC;EAChC,gBAAgB,EAAA;;AD+QlB;EC5VF,cAAc;EACd,cZ1CiB;EY2CjB,oBXO8D,EAAA;EUmV5D;ICvVA,aAxCkB,EAAa;;ADoZ/B;ECrWF,yBZzDmB;EY0DnB,yBZ9DkB;EYgElB,4DD9DqE;EC+DrE,mBZb2B;EYc3B,cZtDa;EY4Db,eAAe;EACf,eAAe;EACf,qBAAqB;EAErB,qCXlB8D,EAAA;;AWyF9D;EAtFA,yBZzDmB;EY0DnB,yBZ9DkB;EYgElB,4DD9DqE;EC+DrE,mBZb2B;EYc3B,cZtDa;EYsEb,cAAc;EACd,cAAc;EACd,gBAAgB;EAEhB,aA5CuB;EA6CvB,qBAzC+B,EAAA;;ACpEvB;EACE,gBARe,EAAA;;AAOjB;EACE,iBARsB,EAAA;;AAOxB;EACE,kBAR8B,EAAA;;AAOhC;EACE,mBARuC,EAAA;;AhB4K3C;EgB1KE;IACE,gBAHe,EAAA;EAEjB;IACE,iBAHsB,EAAA;EAExB;IACE,kBAH8B,EAAA;EAEhC;IACE,mBAHuC,EAAA,EAIxC;;AhBwKH;EgB1KE;IACE,gBAHe,EAAA;EAEjB;IACE,iBAHsB,EAAA;EAExB;IACE,kBAH8B,EAAA;EAEhC;IACE,mBAHuC,EAAA,EAIxC;;ACMT;EAAkB,wBAAwB,EAAA;;AAE1C;EACE;IAII,kCAAkC;IAClC,uBAAuB;IACvB,2BAA2B;IAO7B,mCAA2B;YAA3B,2BAA2B;IAC3B,4BAA4B,EAAA;EAjBhC;IAoBoB,yBAAyB,EAAA;EAC3C;IAAkB,wBAAwB,EAAA;EAE1C;IAAuB,yBAAyB,EAAA;EAChD;IAAuB,sCAAsC,EAAA;EAC7D;IAAuB,mCAAmC,EAAA;EAC1D;IAAoB,6BAA6B,EAAA;EACjD;IAAoB,8BAA8B,EAAA;EAClD;IAAoB,8BAA8B,EAAA;EAGlD;;IACY,0BAA0B,EAAA;EAEpC;IAAgB,4BAA4B,EAAA;EAI9C;;;IAEqB,WAAW,EAAA;EAGhC;IAAoB,6BAA6B,EAAA;EAGjD;;IAEE,yBdrBa;IcsBb,wBAAwB,EAAA;EAI1B;IAAQ,2BAA2B,EAAA;EAEnC;;IACM,wBAAwB,EAAA;Ef4ChC;Ie1CQ,0BAA0B,EAAA;EAEhC;IAAQ,aAAa,EAAA;EAErB;;;IAGE,UAAU;IACV,SAAS,EAAA;EAIX;;IACK,uBAAuB,EAAA;EAG5B;IACE,uBAAuB,EAAA,EACxB;;ACjFH;ECoBM,uBAA6D;EAA7D,sBAA6D;ECdnE,gBhB4E8D;EgB3E9D,iBAAiB;EACjB,kBAAkB,EAAA;EpB+JZ;IkBvKN;MCoBM,wBAA6D;MAA7D,uBAA6D,EAAA,EDVlE;EAVD;ICoBM,uBAA6D;IAA7D,sBAA6D;ICdnE,eFFmC;IEGnC,iBAAiB;IACjB,kBAAkB,EAAA;IpB+JZ;MkBvKN;QCoBM,wBAA6D;QAA7D,uBAA6D,EAAA,EDfhE;EALH;IC6BI,gBAA6D;IAA7D,eAA6D;ICvBjE,eFEmC;IEDnC,iBAAiB;IACjB,kBAAkB,EAAA;;AFKlB;EESA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,8BAHqB;EAGrB,6BAHqB;EAGrB,2BAHqB;MAGrB,uBAHqB;UAGrB,mBAHqB,EAAA;;AFHrB;EGqGA,mBAAM;EAAN,sBAAM;MAAN,kBAAM;UAAN,cAAM;EAIJ,aAAa;EACb,YAAY;EAsCZ,WA/EiC,EAAA;EHjEnC;IGqGA,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM,EAAA;EHrGN;IGqGA,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;;AHzFN;EGoIE,WA3FY,EAAA;;AHzCd;EGoIE,WA3FY,EAAA;;AHzBZ;EAMI,wBAAgB;MAAhB,6BAAgB;UAAhB,gBAAgB,EAAA;;AlBoHhB;EkB1HJ;IAMI,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA,EACjB;;AlBmHC;EkB1HJ;IAMI,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA,EACjB;;AAYH;EGsDF,mBAAM;EAAN,sBAAM;MAAN,kBAAM;UAAN,cAAM,EAAA;;AHvCF;EGkFF,eC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,UC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,UC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,UC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,gBC5BgE,EAAA;;AJtD9D;EGkFF,WC5BgE,EAAA;;AtBkC5D;EkB5GF;IG2DJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WA3FY,EAAA;EHNZ;IGsDF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHhDF;IG2FF,WA3FY,EAAA;EHSV;IGkFF,eC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,WC5BgE,EAAA,EJnD7D;;AlBqFC;EkB5GF;IG2DJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WA3FY,EAAA;EHNZ;IGsDF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHhDF;IG2FF,WA3FY,EAAA;EHSV;IGkFF,eC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,WC5BgE,EAAA,EJnD7D;;AAKL;EACE,WAAW,EAAA;;AAIb;EACE,YAAY,EAAA;;AA8Bd;ECvGM,sBAA6D;EAA7D,uBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,uBAA6D;MAA7D,wBAA6D,EAAA,EDsIlE;EA/BD;IGsCE,2BAtD0E;IF9ExE,qBAA6D;IAA7D,sBAA6D,EAAA;EnB0I3D;IkB5CN;MGsCE,4BAtD0E;MF9ExE,sBAA6D;MAA7D,uBAA6D,EAAA,ED2G1D;EArCP;IG8DE,WA3FY,EAAA;EHiCd;IG0DE,WA3FY,EAAA;EHyCZ;IGkDA,+BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;ErB4DtE;IkBpEN;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHR5E;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA,EHMzE;ElBsDG;IkBpEN;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA,EHMzE;;AA8CH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,EDgJhE;;AAID;ECpJI,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBCJ;MCpJI,wBAA6D;MAA7D,uBAA6D,EAAA,EDsJhE;;AAXH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,ED2JhE;;AK3JH;EF6IE,WC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,YC5BgE,EAAA;;AtBkC5D;EuBnJN;IF6IE,WC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,YC5BgE,EAAA,EC/GjE;;AvBiJK;EuBnJN;IF6IE,WC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,YC5BgE,EAAA,EC/GjE;;AAFD;EF6IE,2BAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,4BAtD0E,EAAA;;ArB4DtE;EuBnJN;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA;EEvF5E;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA,EErF3E;;AvBiJK;EuBnJN;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA,EErF3E;;ALqMG;EM9ME,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,eAA0B;IAA1B,cAA0B,EAAA;EAsBxB;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA;EtBkC5D;IwB/HI;MHyHR,eC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,WC5BgE,EAAA,EE3FvD;ExB6HL;IwB/HI;MHyHR,eC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,WC5BgE,EAAA,EE3FvD;;ANuLP;EM7KE,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,gBAA4B;IAA5B,eAA4B,EAAA;;AxB8G9B;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;AxB4GC;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;ANoLD;EOnMF,eAA6B,EAAA;;APuM3B;EOvMF,mCAA6B,EAAA;;APmM3B;EOnMF,qBAA6B,EAAA;;APuM3B;EOvMF,yCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;AzB2HzB;EkBwEF;IOnMF,eAA6B,EAAA;EPuM3B;IOvMF,oCAA6B,EAAA;EPmM3B;IOnMF,qBAA6B,EAAA;EPuM3B;IOvMF,0CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA,EPyM1B;;AlB9EC;EkBwEF;IOnMF,eAA6B,EAAA;EPuM3B;IOvMF,oCAA6B,EAAA;EPmM3B;IOnMF,qBAA6B,EAAA;EPuM3B;IOvMF,0CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA,EPyM1B;;AAzJS;EEtEd,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAH6B;EAG7B,6BAH6B;EAG7B,gCAH6B;MAG7B,4BAH6B;UAG7B,wBAH6B,EAAA;EFiP7B;IGjIA,YAAmB;IACnB,gBAA2B,EAAA;EHgI3B;IGpGE,YA3FY,EAAA;EH+Ld;IGpGE,YA3FY,EAAA;EH+Ld;IA2BM,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA;ElBzHhB;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;ElB1HC;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;EA5BL;IG/IA,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EH+IN;IGpGE,gBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,YC5BgE,EAAA;EtBkC5D;IkB8FN;MG/IA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YA3FY,EAAA;IH+Ld;MG/IA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IH+IN;MGpGE,YA3FY,EAAA;IH+Ld;MGpGE,gBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,YC5BgE,EAAA,EJyL3D;ElBvJD;IkB8FN;MG/IA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YA3FY,EAAA;IH+Ld;MG/IA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IH+IN;MGpGE,YA3FY,EAAA;IH+Ld;MGpGE,gBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,YC5BgE,EAAA,EJyL3D;;AAOL;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,EDqT9D;;AAJH;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,ED0T9D;;AAnNL;ECvGM,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,sBAA6D;MAA7D,yBAA6D,EAAA,EDsIlE;EA/BD;IGsCE,4BAtD0E;IF9ExE,oBAA6D;IAA7D,uBAA6D,EAAA;EnB0I3D;IkB5CN;MGsCE,6BAtD0E;MF9ExE,qBAA6D;MAA7D,wBAA6D,EAAA,ED2G1D;EArCP;IG8DE,YA3FY,EAAA;EHiCd;IG0DE,YA3FY,EAAA;EHyCZ;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,4BAtD0E,EAAA;ErB4DtE;IkBpEN;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;M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kDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA;IHR5E;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA,EHMzE;ElBsDG;IkBpEN;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA,EHMzE;;AAkTD;EQtYI,6BAAmC,EAAA;E1B0InC;IkB4PJ;MQtYI,8BAAmC,EAAA,ERwYtC;ElB9PG;IkB4PJ;MQtYI,8BAAmC,EAAA,ERwYtC;;AlB9PG;EkBgQF;IQ1YE,8BAAmC,EAAA,ER4YpC;;AlBlQC;EkBgQF;IQ1YE,8BAAmC,EAAA,ER4YpC;;ASzGL;EA1OA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BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;A7DsEV;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;A7DmEC;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;AA/FL;ECYA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa,EAAA;;ADRb;EACE,mBA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","file":"foundation-prototype.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n\n.text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important; }\n\n.text-truncate {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: ellipsis;\n  white-space: nowrap !important; }\n\n.text-nowrap {\n  white-space: nowrap !important; }\n\n.text-wrap {\n  word-wrap: break-word !important; }\n\n.text-lowercase {\n  text-transform: lowercase !important; }\n\n.text-uppercase {\n  text-transform: uppercase !important; }\n\n.text-capitalize {\n  text-transform: capitalize !important; }\n\n.text-overline {\n  text-decoration: overline !important; }\n\n.text-underline {\n  text-decoration: underline !important; }\n\n.text-line-through {\n  text-decoration: line-through !important; }\n\n.font-wide {\n  letter-spacing: 0.25rem; }\n\n.font-normal {\n  font-weight: normal; }\n\n.font-bold {\n  font-weight: bold; }\n\n.font-italic {\n  font-style: italic !important; }\n\nul.list-disc {\n  list-style-type: disc !important; }\n\nul.list-circle {\n  list-style-type: circle !important; }\n\nul.list-square {\n  list-style-type: square !important; }\n\nol.list-decimal {\n  list-style-type: decimal !important; }\n\nol.list-lower-alpha {\n  list-style-type: lower-alpha !important; }\n\nol.list-lower-latin {\n  list-style-type: lower-latin !important; }\n\nol.list-lower-roman {\n  list-style-type: lower-roman !important; }\n\nol.list-upper-alpha {\n  list-style-type: upper-alpha !important; }\n\nol.list-upper-latin {\n  list-style-type: upper-latin !important; }\n\nol.list-upper-roman {\n  list-style-type: upper-roman !important; }\n\n.rounded {\n  border-radius: 5000px !important; }\n  .rounded .switch-paddle {\n    border-radius: 5000px !important; }\n    .rounded .switch-paddle:after {\n      border-radius: 50%; }\n\n.radius {\n  border-radius: 0.1875rem; }\n\n.bordered {\n  border: 0.0625rem solid #cacaca; }\n\n.shadow {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }\n\n.arrow-down {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #0a0a0a transparent transparent; }\n\n.arrow-up {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-top-width: 0;\n  border-color: transparent transparent #0a0a0a; }\n\n.arrow-right {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #0a0a0a; }\n\n.arrow-left {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #0a0a0a transparent transparent; }\n\n.separator-center {\n  text-align: center !important; }\n  .separator-center::before, .separator-center::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-center::after {\n    clear: both; }\n  .separator-center::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0; }\n\n.separator-left {\n  text-align: left !important; }\n  .separator-left::before, .separator-left::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-left::after {\n    clear: both; }\n  .separator-left::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-left: 0 !important; }\n\n.separator-right {\n  text-align: right !important; }\n  .separator-right::before, .separator-right::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-right::after {\n    clear: both; }\n  .separator-right::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-right: 0 !important; }\n\n.overflow-visible {\n  overflow: visible !important; }\n\n.overflow-x-visible {\n  overflow-x: visible !important; }\n\n.overflow-y-visible {\n  overflow-y: visible !important; }\n\n.overflow-hidden {\n  overflow: hidden !important; }\n\n.overflow-x-hidden {\n  overflow-x: hidden !important; }\n\n.overflow-y-hidden {\n  overflow-y: hidden !important; }\n\n.overflow-scroll {\n  overflow: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.overflow-x-scroll {\n  overflow-x: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.overflow-y-scroll {\n  overflow-y: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.display-inline {\n  display: inline !important; }\n\n.display-inline-block {\n  display: inline-block !important; }\n\n.display-block {\n  display: block !important; }\n\n.display-table {\n  display: table !important; }\n\n.display-table-cell {\n  display: table-cell !important; }\n\n.position-static {\n  position: static !important; }\n\n.position-relative {\n  position: relative !important; }\n\n.position-absolute {\n  position: absolute !important; }\n\n.position-fixed {\n  position: fixed !important; }\n\n.position-fixed-top {\n  position: fixed !important;\n  top: 0rem !important;\n  right: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.position-fixed-bottom {\n  position: fixed !important;\n  right: 0rem !important;\n  bottom: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.border-box {\n  box-sizing: border-box !important; }\n\n.border-none {\n  border: 0 !important; }\n\n.width-25 {\n  width: 25% !important; }\n\n.width-50 {\n  width: 50% !important; }\n\n.width-75 {\n  width: 75% !important; }\n\n.width-100 {\n  width: 100% !important; }\n\n.height-25 {\n  height: 25% !important; }\n\n.height-50 {\n  height: 50% !important; }\n\n.height-75 {\n  height: 75% !important; }\n\n.height-100 {\n  height: 100% !important; }\n\n.max-width-100 {\n  max-width: 100% !important; }\n\n.max-height-100 {\n  max-height: 100% !important; }\n\n.margin-0 {\n  margin: 0rem !important; }\n\n.margin-top-0 {\n  margin-top: 0rem !important; }\n\n.margin-right-0 {\n  margin-right: 0rem !important; }\n\n.margin-bottom-0 {\n  margin-bottom: 0rem !important; }\n\n.margin-left-0 {\n  margin-left: 0rem !important; }\n\n.margin-horizontal-0 {\n  margin-right: 0rem !important;\n  margin-left: 0rem !important; }\n\n.margin-vertical-0 {\n  margin-top: 0rem !important;\n  margin-bottom: 0rem !important; }\n\n.padding-0 {\n  padding: 0rem !important; }\n\n.padding-top-0 {\n  padding-top: 0rem !important; }\n\n.padding-right-0 {\n  padding-right: 0rem !important; }\n\n.padding-bottom-0 {\n  padding-bottom: 0rem !important; }\n\n.padding-left-0 {\n  padding-left: 0rem !important; }\n\n.padding-horizontal-0 {\n  padding-right: 0rem !important;\n  padding-left: 0rem !important; }\n\n.padding-vertical-0 {\n  padding-top: 0rem !important;\n  padding-bottom: 0rem !important; }\n\n.margin-1 {\n  margin: 1rem !important; }\n\n.margin-top-1 {\n  margin-top: 1rem !important; }\n\n.margin-right-1 {\n  margin-right: 1rem !important; }\n\n.margin-bottom-1 {\n  margin-bottom: 1rem !important; }\n\n.margin-left-1 {\n  margin-left: 1rem !important; }\n\n.margin-horizontal-1 {\n  margin-right: 1rem !important;\n  margin-left: 1rem !important; }\n\n.margin-vertical-1 {\n  margin-top: 1rem !important;\n  margin-bottom: 1rem !important; }\n\n.padding-1 {\n  padding: 1rem !important; }\n\n.padding-top-1 {\n  padding-top: 1rem !important; }\n\n.padding-right-1 {\n  padding-right: 1rem !important; }\n\n.padding-bottom-1 {\n  padding-bottom: 1rem !important; }\n\n.padding-left-1 {\n  padding-left: 1rem !important; }\n\n.padding-horizontal-1 {\n  padding-right: 1rem !important;\n  padding-left: 1rem !important; }\n\n.padding-vertical-1 {\n  padding-top: 1rem !important;\n  padding-bottom: 1rem !important; }\n\n.margin-2 {\n  margin: 2rem !important; }\n\n.margin-top-2 {\n  margin-top: 2rem !important; }\n\n.margin-right-2 {\n  margin-right: 2rem !important; }\n\n.margin-bottom-2 {\n  margin-bottom: 2rem !important; }\n\n.margin-left-2 {\n  margin-left: 2rem !important; }\n\n.margin-horizontal-2 {\n  margin-right: 2rem !important;\n  margin-left: 2rem !important; }\n\n.margin-vertical-2 {\n  margin-top: 2rem !important;\n  margin-bottom: 2rem !important; }\n\n.padding-2 {\n  padding: 2rem !important; }\n\n.padding-top-2 {\n  padding-top: 2rem !important; }\n\n.padding-right-2 {\n  padding-right: 2rem !important; }\n\n.padding-bottom-2 {\n  padding-bottom: 2rem !important; }\n\n.padding-left-2 {\n  padding-left: 2rem !important; }\n\n.padding-horizontal-2 {\n  padding-right: 2rem !important;\n  padding-left: 2rem !important; }\n\n.padding-vertical-2 {\n  padding-top: 2rem !important;\n  padding-bottom: 2rem !important; }\n\n.margin-3 {\n  margin: 3rem !important; }\n\n.margin-top-3 {\n  margin-top: 3rem !important; }\n\n.margin-right-3 {\n  margin-right: 3rem !important; }\n\n.margin-bottom-3 {\n  margin-bottom: 3rem !important; }\n\n.margin-left-3 {\n  margin-left: 3rem !important; }\n\n.margin-horizontal-3 {\n  margin-right: 3rem !important;\n  margin-left: 3rem !important; }\n\n.margin-vertical-3 {\n  margin-top: 3rem !important;\n  margin-bottom: 3rem !important; }\n\n.padding-3 {\n  padding: 3rem !important; }\n\n.padding-top-3 {\n  padding-top: 3rem !important; }\n\n.padding-right-3 {\n  padding-right: 3rem !important; }\n\n.padding-bottom-3 {\n  padding-bottom: 3rem !important; }\n\n.padding-left-3 {\n  padding-left: 3rem !important; }\n\n.padding-horizontal-3 {\n  padding-right: 3rem !important;\n  padding-left: 3rem !important; }\n\n.padding-vertical-3 {\n  padding-top: 3rem !important;\n  padding-bottom: 3rem !important; }\n","/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $mgc: rem-calc($mg);\n      @if $mgc == 0 {\n        $mgc: 0rem;\n      }\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{$mg}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    // Make sure that 0 is translated in 0rem for calc()\n    $mgc: rem-calc($margin-gutter);\n    @if $mgc == 0 {\n      $mgc: 0rem;\n    }\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{$mgc}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    // Make sure that 0 is translated in 0rem for calc()\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    @if $gutter == 0 {\n      $gutter: 0rem;\n    }\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-utilities\n////\n\n/// Responsive breakpoints for text utilities\n/// @type Boolean\n$prototype-utilities-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default Value for `text-overflow` variable\n/// @type String\n$prototype-text-overflow: ellipsis !default;\n\n/// Image Replacement utility. `text-hide`\n@mixin text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important;\n}\n\n/// Truncating the text, elipsis by default.\n/// @param {String} $overflow [$prototype-text-overflow] Text Truncate\n@mixin text-truncate(\n  $overflow: $prototype-text-overflow\n) {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: $overflow; \n  white-space: nowrap !important;\n}\n\n/// No wrapping of the text. `text-nowrap`\n@mixin text-nowrap {\n  white-space: nowrap !important;\n}\n\n/// Wrapping of the text. `text-wrap`\n@mixin text-wrap {\n  word-wrap: break-word !important;\n}\n\n@mixin foundation-prototype-text-utilities {\n  .text-hide {\n    @include text-hide;\n  }\n\n  .text-truncate {\n    @include text-truncate;\n  }\n\n  .text-nowrap {\n    @include text-nowrap;\n  }\n\n  .text-wrap {\n    @include text-wrap;\n  }\n\n  @if ($prototype-utilities-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-hide {\n            @include text-hide;\n          }\n\n          .#{$size}-text-truncate {\n            @include text-truncate;\n          }\n\n          .#{$size}-text-nowrap {\n            @include text-nowrap;\n          }\n\n          .#{$size}-text-wrap {\n            @include text-wrap;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-transformation\n////\n\n/// Responsive breakpoints for text transformation classes\n/// @type Boolean\n$prototype-transformation-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-transformation` classes\n/// @type Map\n$prototype-text-transformation: (\n  lowercase,\n  uppercase,\n  capitalize\n) !default;\n\n/// Text Transformation, by default coming through a map `$prototype-text-transformation`\n/// @param {String} $transformation [] Text Transformation\n@mixin text-transform($transformation) {\n  text-transform: $transformation !important;\n}\n\n@mixin foundation-prototype-text-transformation {\n  @each $transformation in $prototype-text-transformation {\n    .text-#{$transformation} {\n      @include text-transform($transformation);\n    }\n  }\n\n  @if ($prototype-transformation-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $transformation in $prototype-text-transformation {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$transformation} {\n              @include text-transform($transformation);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-decoration\n////\n\n/// Responsive breakpoints for text decoration classes\n/// @type Boolean\n$prototype-decoration-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-decoration` classes\n/// @type Map\n$prototype-text-decoration: (\n  overline,\n  underline,\n  line-through,\n) !default;\n\n/// Text Decoration, by default coming through a map `$prototype-text-decoration`\n/// @param {String} $decoration [] Text Decoration\n@mixin text-decoration($decoration) {\n  text-decoration: $decoration !important;\n}\n\n@mixin foundation-prototype-text-decoration {\n  @each $decoration in $prototype-text-decoration {\n    .text-#{$decoration} {\n      @include text-decoration($decoration);\n    }\n  }\n\n  @if ($prototype-decoration-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $decoration in $prototype-text-decoration {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$decoration} {\n              @include text-decoration($decoration);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-font-styling\n////\n\n/// Responsive breakpoints for font styling types\n/// @type Boolean\n$prototype-font-breakpoints: $global-prototype-breakpoints !default;\n\n/// Letter spacing for `.font-wide`\n/// @type Number\n$prototype-wide-letter-spacing: rem-calc(4) !default;\n\n/// Default weight for `.font-normal`, defaulted to `global-weight-normal`\n/// @type Number\n$prototype-font-normal: $global-weight-normal !default;\n\n/// Default weight for `.font-bold`, defaulted to `global-weight-bold`\n/// @type Number\n$prototype-font-bold: $global-weight-bold !default;\n\n/// Font wide letter spacing!\n/// @param {Number} $letter-spacing [$prototype-wide-letter-spacing] Wide letter spacing for the font\n@mixin font-wide(\n  $letter-spacing: $prototype-wide-letter-spacing\n) {\n  letter-spacing: $letter-spacing;\n}\n\n/// Font Weight Normal, default value coming through `global-weight-normal`\n/// @param {Number} $weight [$prototype-font-normal] Weight of the font (normal)\n@mixin font-normal(\n  $weight: $prototype-font-normal\n) {\n  font-weight: $weight;\n}\n\n/// Font Weight Bold, default value coming through `global-weight-bold`\n/// @param {Number} $weight [$prototype-font-bold] Weight of the font (bold)\n@mixin font-bold(\n  $weight: $prototype-font-bold\n) {\n  font-weight: $weight;\n}\n\n/// Font Style Italic\n@mixin font-italic {\n  font-style: italic !important;\n}\n\n@mixin foundation-prototype-font-styling {\n  .font-wide {\n    @include font-wide;\n  }\n\n  .font-normal {\n    @include font-normal;\n  }\n\n  .font-bold {\n    @include font-bold;\n  }\n\n  .font-italic {\n    @include font-italic;\n  }\n\n  @if ($prototype-font-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-font-wide {\n            @include font-wide;\n          }\n\n          .#{$size}-font-normal {\n            @include font-normal;\n          }\n\n          .#{$size}-font-bold {\n            @include font-bold;\n          }\n\n          .#{$size}-font-italic {\n            @include font-italic;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-list-style-type\n////\n\n/// Responsive breakpoints for list styling types\n/// @type Boolean\n$prototype-list-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `style-type-unordered` classes\n/// @type Map\n$prototype-style-type-unordered: (\n  disc,\n  circle,\n  square\n) !default;\n\n/// Map containing all the `style-type-ordered` classes\n/// @type Map\n$prototype-style-type-ordered: (\n  decimal,\n  lower-alpha,\n  lower-latin,\n  lower-roman,\n  upper-alpha,\n  upper-latin,\n  upper-roman\n) !default;\n\n\n/// Style type for unordered Lists, by default coming through a map `$prototype-style-type-unordered`\n/// @param {String} $style-type-unordered [] Style type for unordered Lists\n@mixin style-type-unordered($style-type-unordered) {\n  list-style-type: $style-type-unordered !important;\n}\n\n/// Style type for ordered Lists, by default coming through a map `$prototype-style-type-ordered`\n/// @param {String} $style-type-ordered [] Style type for ordered Lists\n@mixin style-type-ordered($style-type-ordered) {\n  list-style-type: $style-type-ordered !important;\n}\n\n@mixin list-unordered {\n  @each $style-type-unordered in $prototype-style-type-unordered {\n    ul.list-#{$style-type-unordered} {\n      @include style-type-unordered($style-type-unordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-unordered in $prototype-style-type-unordered {\n          @if $size != $-zf-zero-breakpoint {\n            ul.#{$size}-list-#{$style-type-unordered} {\n              @include style-type-unordered($style-type-unordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin list-ordered {\n  @each $style-type-ordered in $prototype-style-type-ordered {\n    ol.list-#{$style-type-ordered} {\n      @include style-type-ordered($style-type-ordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-ordered in $prototype-style-type-ordered {\n          @if $size != $-zf-zero-breakpoint {\n            ol.#{$size}-list-#{$style-type-ordered} {\n              @include style-type-ordered($style-type-ordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-prototype-list-style-type {\n  @include list-unordered;\n  @include list-ordered;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-rounded\n////\n\n/// Responsive breakpoints for rounded utility.\n/// @type Boolean\n$prototype-rounded-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-radius`\n/// @type Number\n$prototype-border-radius: rem-calc(3) !default;\n\n/// Rounded utility (all corners): Adds radius corners (all corners) to an element by default.\n/// @param {Number} $radius [$prototype-border-radius] Border radius (all corners)\n@mixin border-radius(\n  $radius: $prototype-border-radius\n) {\n  border-radius: $radius;\n}\n\n/// Rounded square utility or rectangle utility (all corners): Rounds all corners to an element by default to make a pill shape.\n@mixin border-rounded {\n  border-radius: 5000px !important;\n}\n\n@mixin foundation-prototype-rounded {\n  .rounded {\n    @include border-rounded;\n\n    .switch-paddle {\n      @include border-rounded;\n      &:after {\n        border-radius: 50%; // For switches\n      }\n    }\n  }\n\n  .radius {\n    @include border-radius;\n  }\n\n  @if ($prototype-rounded-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-rounded {\n            @include border-rounded;\n          }\n          .#{$size}-radius {\n            @include border-radius;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-bordered\n////\n\n/// Responsive breakpoints for bordered utility.\n/// @type Boolean\n$prototype-bordered-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-width`\n/// @type Number\n$prototype-border-width: rem-calc(1) !default;\n\n/// Default value for `prototype-border-type`\n/// @type String\n$prototype-border-type: solid !default;\n\n/// Default value for `prototype-border-color` defaulted to `medium-gray`\n/// @type Color\n$prototype-border-color: $medium-gray !default;\n\n/// Bordered Utility: Adds a light border to an element by default.\n/// @param {Number} $width [$prototype-border-width] Width of the border\n/// @param {String} $type [$prototype-border-type] Type of the border\n/// @param {Color} $color [$prototype-border-color] Color of the border\n@mixin bordered(\n  $width: $prototype-border-width,\n  $type: $prototype-border-type,\n  $color: $prototype-border-color\n) {\n  border: $width $type $color;\n}\n\n@mixin foundation-prototype-bordered {\n  .bordered {\n    @include bordered;\n  }\n\n  @if ($prototype-bordered-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-bordered {\n            @include bordered;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-shadow\n////\n\n/// Responsive breakpoints for shadow utility.\n/// @type Boolean\n$prototype-shadow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-box-shadow`\n/// @type Number\n$prototype-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !default;\n\n/// Shadow Utility: Adds a light box shadow to an element by default.\n/// @param {Number} $shadow [$prototype-box-shadow] Box Shadow of a component\n@mixin shadow(\n  $shadow: $prototype-box-shadow\n) {\n  box-shadow: $shadow;\n}\n\n@mixin foundation-prototype-shadow {\n  .shadow {\n    @include shadow;\n  }\n\n  @if ($prototype-shadow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-shadow {\n            @include shadow;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-arrow\n////\n\n/// Map containing all the `arrow` direction\n/// @type Map\n$prototype-arrow-directions: (\n  down,\n  up,\n  right,\n  left\n) !default;\n\n/// Width of the Arrow, `0.4375rem` by default.\n/// @type Number\n$prototype-arrow-size: 0.4375rem;\n\n/// Color of the Arrow, `$black` by default.\n/// @type Color\n$prototype-arrow-color: $black;\n\n@mixin foundation-prototype-arrow {\n  @each $prototype-arrow-direction in $prototype-arrow-directions {\n    .arrow-#{$prototype-arrow-direction} {\n      @include css-triangle(\n        $prototype-arrow-size, \n        $prototype-arrow-color, \n        $prototype-arrow-direction\n      );\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-separator\n////\n\n/// Responsive breakpoints for separator.\n/// @type Boolean\n$prototype-separator-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default alignment of a separator.\n/// @type String\n$prototype-separator-align: center !default;\n\n/// Height of a separator.\n/// @type Number\n$prototype-separator-height: rem-calc(2) !default;\n\n/// Width of a separator.\n/// @type Number\n$prototype-separator-width: 3rem !default;\n\n/// Default color of a separator.\n/// @type Color\n$prototype-separator-background: $primary-color !default;\n\n/// Top Margin of a separator.\n/// @type Number\n$prototype-separator-margin-top: $global-margin !default;\n\n/// Title separator Utility, mostly used to style the main heading of a section\n/// @param {String} $align [$prototype-separator-align] - separator Alignment\n/// @param {Number} $height [$prototype-separator-height] - Width\n/// @param {Number} $width [$prototype-separator-width] - Height\n/// @param {Color} $background [$prototype-separator-background] - Background\n/// @param {Number} $top [$prototype-separator-margin-top] - Margin Top\n@mixin separator (\n  $align: $prototype-separator-align,\n  $height: $prototype-separator-height,\n  $width: $prototype-separator-width,\n  $background: $prototype-separator-background,\n  $top: $prototype-separator-margin-top\n) {\n  @include clearfix;\n  text-align: $align !important;\n\n  &::after {\n    @include position(relative);\n    width: $width;\n    border-bottom: $height solid $background;\n    margin: $top auto 0;\n\n    @if $align == left {\n      margin-left: 0 !important;\n    }\n\n    @if $align == right {\n      margin-right: 0 !important;\n    }\n  }\n}\n\n@mixin foundation-prototype-separator {\n  .separator-center {\n    @include separator(center);\n  }\n\n  .separator-left {\n    @include separator(left);\n  }\n\n  .separator-right {\n    @include separator(right);\n  }\n\n  @if ($prototype-separator-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-separator-center {\n            @include separator(center);\n          }\n          .#{$size}-separator-left {\n            @include separator(left);\n          }\n          .#{$size}-separator-right {\n            @include separator(right);\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-position\n////\n\n/// Responsive breakpoints for position helpers\n/// @type Boolean\n$prototype-position-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `position` classes\n/// @type Map\n$prototype-position: (\n  static,\n  relative,\n  absolute,\n  fixed\n) !default;\n\n/// z-index for fixed positioning\n/// @type Number\n$prototype-position-z-index: 975 !default;\n\n/// Position classes, by default coming through a map `$prototype-position`, whereas all the offset values are multiplied by `$global-position` which by default is equal to `1rem`.\n/// @param {String} $position [] Position classes, Either `static`, `relative`, `absolute` or `fixed`\n/// @param {Number} $top [null] - Top offset\n/// @param {Number} $right [null] - Right offset\n/// @param {Number} $bottom [null] - Bottom offset\n/// @param {Number} $left [null] - Left offset\n@mixin position(\n  $position,\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  position: $position !important;\n  @if $top != null {\n    top: $top * $global-position !important;\n  }\n  @if $right != null {\n    right: $right * $global-position !important;\n  }\n  @if $bottom != null {\n    bottom: $bottom * $global-position !important;\n  }\n  @if $left != null {\n    left: $left * $global-position !important;\n  }\n}\n\n/// Position Fixed on top corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-top`\n@mixin position-fixed-top(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, 0, 0, null, 0);\n  z-index: $z-index;\n}\n\n/// Position Fixed on bottom corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-bottom`\n@mixin position-fixed-bottom(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, null, 0, 0, 0);\n  z-index: $z-index;\n}\n\n@mixin foundation-prototype-position {\n  // Position: Static, Relative, Fixed, Absolute\n  @each $position in $prototype-position {\n    .position-#{$position} {\n      @include position($position);\n    }\n  }\n\n  // Position: Fixed Top, Fixed Bottom\n  .position-fixed-top {\n    @include position-fixed-top;\n  }\n  .position-fixed-bottom {\n    @include position-fixed-bottom;\n  }\n\n  @if ($prototype-position-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        // Position: Static, Relative, Fixed, Absolute\n        @each $position in $prototype-position {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-position-#{$position} {\n              @include position($position);\n            }\n          }\n        }\n\n        // Position: Fixed Top, Fixed Bottom\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-position-fixed-top {\n            @include position-fixed-top;\n          }\n\n          .#{$size}-position-fixed-bottom {\n            @include position-fixed-bottom;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-overflow\n////\n\n/// Responsive breakpoints for overflow helper classes\n/// @type Boolean\n$prototype-overflow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `overflow` classes\n/// @type Map\n$prototype-overflow: (\n  visible,\n  hidden,\n  scroll\n) !default;\n\n/// Overflow classes, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes\n@mixin overflow($overflow) {\n  overflow: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n/// Overflow classes on horizontal axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (horizontal axis)\n@mixin overflow-x($overflow) {\n  overflow-x: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n/// Overflow classes on vertical axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (vertical axis)\n@mixin overflow-y($overflow) {\n  overflow-y: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n@mixin foundation-prototype-overflow {\n  @each $overflow in $prototype-overflow {\n    .overflow-#{$overflow} {\n      @include overflow($overflow);\n    }\n    .overflow-x-#{$overflow} {\n      @include overflow-x($overflow);\n    }\n    .overflow-y-#{$overflow} {\n      @include overflow-y($overflow);\n    }\n  }\n\n  @if ($prototype-overflow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $overflow in $prototype-overflow {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-overflow-#{$overflow} {\n              @include overflow($overflow);\n            }\n            .#{$size}-overflow-x-#{$overflow} {\n              @include overflow-x($overflow);\n            }\n            .#{$size}-overflow-y-#{$overflow} {\n              @include overflow-y($overflow);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-display\n////\n\n/// Responsive breakpoints for display classes\n/// @type Boolean\n$prototype-display-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `display` classes\n/// @type Map\n$prototype-display: (\n  inline,\n  inline-block,\n  block,\n  table,\n  table-cell\n) !default;\n\n/// Display classes, by default coming through a map `$prototype-display`\n/// @param {String} $display [] Display classes\n@mixin display($display) {\n  display: $display !important;\n}\n\n@mixin foundation-prototype-display {\n  @each $display in $prototype-display {\n    .display-#{$display} {\n      @include display($display);\n    }\n  }\n\n  @if ($prototype-display-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $display in $prototype-display {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-display-#{$display} {\n              @include display($display);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-box\n////\n\n/// Responsive breakpoints for border box.\n/// @type Boolean\n$prototype-border-box-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border box utility\n@mixin border-box {\n  box-sizing: border-box !important;\n}\n\n@mixin foundation-prototype-border-box {\n  .border-box {\n    @include border-box;\n  }\n\n  @if ($prototype-border-box-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-box {\n            @include border-box;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-none\n////\n\n/// Responsive breakpoints for border none.\n/// @type Boolean\n$prototype-border-none-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border none utility\n@mixin border-none {\n  border: 0 !important;\n}\n\n@mixin foundation-prototype-border-none {\n  .border-none {\n    @include border-none;\n  }\n\n  @if ($prototype-border-none-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-none {\n            @include border-none;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-sizing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-sizing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `sizing` classes\n/// @type Map\n$prototype-sizing: (\n  width,\n  height\n) !default;\n\n/// Map containing all the sizes.\n/// @type Map\n$prototype-sizes: (\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%\n) !default;\n\n/// Max Width 100 utility.\n@mixin max-width-100 {\n  max-width: 100% !important;\n}\n\n/// Max Height 100 utility.\n@mixin max-height-100 {\n  max-height: 100% !important;\n}\n\n@mixin foundation-prototype-sizing {\n  // Element Sizing\n  @each $sizing in $prototype-sizing {\n    @each $length, $percentage in $prototype-sizes {\n      .#{$sizing}-#{$length} {\n        #{$sizing}: $percentage !important;\n      }\n    }\n  }\n\n  // Max width & height\n  .max-width-100 {\n    @include max-width-100;\n  }\n  .max-height-100 {\n    @include max-height-100;\n  }\n\n  @if ($prototype-sizing-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          @each $sizing in $prototype-sizing {\n            @each $length, $percentage in $prototype-sizes {\n              .#{$size}-#{$sizing}-#{$length} {\n                #{$sizing}: $percentage !important;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-spacing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-spacing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default number of spacers count (margin and padding)\n/// @type Number\n$prototype-spacers-count: 3 !default;\n\n/// Margin helper mixin, all the values are multiplied by `$global-margin` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Margin Top\n/// @param {Number} $right [null] - Margin Right\n/// @param {Number} $bottom [null] - Margin Bottom\n/// @param {Number} $left [null] - Margin Left\n@mixin margin(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    margin-top: $top * $global-margin !important;\n  }\n  @if $right != null {\n    margin-right: $right * $global-margin !important;\n  }\n  @if $bottom != null {\n    margin-bottom: $bottom * $global-margin !important;\n  }\n  @if $left != null {\n    margin-left: $left * $global-margin !important;\n  }\n}\n\n/// Padding helper mixin, all the values are multiplied by `$global-padding` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Padding Top\n/// @param {Number} $right [null] - Padding Right\n/// @param {Number} $bottom [null] - Padding Bottom\n/// @param {Number} $left [null] - Padding Left\n@mixin padding(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    padding-top: $top * $global-padding !important;\n  }\n  @if $right != null {\n    padding-right: $right * $global-padding !important;\n  }\n  @if $bottom != null {\n    padding-bottom: $bottom * $global-padding !important;\n  }\n  @if $left != null {\n    padding-left: $left * $global-padding !important;\n  }\n}\n\n/// Margin classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin margin-direction($dir, $spacer) {\n  @if ($dir == top) {\n    @include margin($top: $spacer);\n  }\n  @else if ($dir == right) {\n    @include margin($right: $spacer);\n  }\n  @else if ($dir == bottom) {\n    @include margin($bottom: $spacer);\n  }\n  @else if ($dir == left) {\n    @include margin($left: $spacer);\n  }\n  @else if ($dir == horizontal) {\n    @include margin($right: $spacer, $left: $spacer);\n  }\n  @else if ($dir == vertical) {\n    @include margin($top: $spacer, $bottom: $spacer);\n  }\n}\n\n/// Padding classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin padding-direction($dir, $spacer) {\n  @if ($dir == top) {\n    @include padding($top: $spacer);\n  }\n  @else if ($dir == right) {\n    @include padding($right: $spacer);\n  }\n  @else if ($dir == bottom) {\n    @include padding($bottom: $spacer);\n  }\n  @else if ($dir == left) {\n    @include padding($left: $spacer);\n  }\n  @else if ($dir == horizontal) {\n    @include padding($right: $spacer, $left: $spacer);\n  }\n  @else if ($dir == vertical) {\n    @include padding($top: $spacer, $bottom: $spacer);\n  }\n}\n\n@mixin foundation-prototype-spacing {\n  @for $spacer from 0 through $prototype-spacers-count {\n\n    @each $prop in (margin, padding) {\n      // All Sides\n      .#{$prop}-#{$spacer} {\n        @if ($prop == margin) {\n          margin: $spacer * $global-margin !important;\n        }\n        @else if ($prop == padding) {\n          padding: $spacer * $global-padding !important;\n        }\n      }\n\n      @each $dir in (top, right, bottom, left, horizontal, vertical) {\n        // Top Side\n        .#{$prop}-#{$dir}-#{$spacer} {\n          @if ($prop == margin) {\n            @include margin-direction($dir, $spacer);\n          }\n          @else if ($prop == padding) {\n            @include padding-direction($dir, $spacer);\n          }\n        }\n      }\n    }\n  }\n\n  @if ($prototype-spacing-breakpoints) {\n    @for $spacer from 0 through $prototype-spacers-count {\n      // Loop through Responsive Breakpoints\n      @each $size in $breakpoint-classes {\n        @include breakpoint($size) {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size} {\n              @each $prop in (margin, padding) {\n                // All Sides\n                &-#{$prop}-#{$spacer} {\n                  @if ($prop == margin) {\n                    margin: $spacer * $global-margin !important;\n                  }\n                  @else if ($prop == padding) {\n                    padding: $spacer * $global-padding !important;\n                  }\n                }\n\n                @each $dir in (top, right, bottom, left, horizontal, vertical) {\n                  // Top Side\n                  &-#{$prop}-#{$dir}-#{$spacer} {\n                    @if ($prop == margin) {\n                      @include margin-direction($dir, $spacer);\n                    }\n                    @else if ($prop == padding) {\n                      @include padding-direction($dir, $spacer);\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
index d941fa524e7723cdc96983fc639d5f6e49103b73..eb5606de8fc85627709859c2d12fa2c2a38cd8dd 100644 (file)
@@ -1,2 +1,2 @@
-@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + 1.25rem / 2)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + 1.25rem / 2)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + 1.25rem / 2)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + 1.25rem / 2)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + 1.875rem / 2)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + 1.875rem / 2)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + 1.875rem / 2)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + 1.875rem / 2)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}.text-hide{font:0/0 a!important;color:transparent!important;text-shadow:none!important;background-color:transparent!important;border:0!important}.text-truncate{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important}.text-nowrap{white-space:nowrap!important}.text-wrap{word-wrap:break-word!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-overline{text-decoration:overline!important}.text-underline{text-decoration:underline!important}.text-line-through{text-decoration:line-through!important}.font-wide{letter-spacing:.25rem}.font-normal{font-weight:400}.font-bold{font-weight:700}.font-italic{font-style:italic!important}ul.list-disc{list-style-type:disc!important}ul.list-circle{list-style-type:circle!important}ul.list-square{list-style-type:square!important}ol.list-decimal{list-style-type:decimal!important}ol.list-lower-alpha{list-style-type:lower-alpha!important}ol.list-lower-latin{list-style-type:lower-latin!important}ol.list-lower-roman{list-style-type:lower-roman!important}ol.list-upper-alpha{list-style-type:upper-alpha!important}ol.list-upper-latin{list-style-type:upper-latin!important}ol.list-upper-roman{list-style-type:upper-roman!important}.rounded{border-radius:5000px!important}.rounded .switch-paddle{border-radius:5000px!important}.rounded .switch-paddle:after{border-radius:50%}.radius{border-radius:.1875rem}.bordered{border:.0625rem solid #cacaca}.shadow{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.arrow-down{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent}.arrow-up{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a}.arrow-right{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a}.arrow-left{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent}.separator-center{text-align:center!important}.separator-center::after,.separator-center::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-center::after{clear:both}.separator-center::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0}.separator-left{text-align:left!important}.separator-left::after,.separator-left::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-left::after{clear:both}.separator-left::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0;margin-left:0!important}.separator-right{text-align:right!important}.separator-right::after,.separator-right::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-right::after{clear:both}.separator-right::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0;margin-right:0!important}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-hidden{overflow:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-scroll{overflow:scroll!important;-webkit-overflow-scrolling:touch}.overflow-x-scroll{overflow-x:scroll!important;-webkit-overflow-scrolling:touch}.overflow-y-scroll{overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.display-inline{display:inline!important}.display-inline-block{display:inline-block!important}.display-block{display:block!important}.display-table{display:table!important}.display-table-cell{display:table-cell!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-fixed-top{position:fixed!important;top:0!important;right:0!important;left:0!important;z-index:975}.position-fixed-bottom{position:fixed!important;right:0!important;bottom:0!important;left:0!important;z-index:975}.border-box{-webkit-box-sizing:border-box!important;box-sizing:border-box!important}.border-none{border:0!important}.width-25{width:25%!important}.width-50{width:50%!important}.width-75{width:75%!important}.width-100{width:100%!important}.height-25{height:25%!important}.height-50{height:50%!important}.height-75{height:75%!important}.height-100{height:100%!important}.max-width-100{max-width:100%!important}.max-height-100{max-height:100%!important}.margin-0{margin:0!important}.margin-top-0{margin-top:0!important}.margin-right-0{margin-right:0!important}.margin-bottom-0{margin-bottom:0!important}.margin-left-0{margin-left:0!important}.margin-horizontal-0{margin-right:0!important;margin-left:0!important}.margin-vertical-0{margin-top:0!important;margin-bottom:0!important}.padding-0{padding:0!important}.padding-top-0{padding-top:0!important}.padding-right-0{padding-right:0!important}.padding-bottom-0{padding-bottom:0!important}.padding-left-0{padding-left:0!important}.padding-horizontal-0{padding-right:0!important;padding-left:0!important}.padding-vertical-0{padding-top:0!important;padding-bottom:0!important}.margin-1{margin:1rem!important}.margin-top-1{margin-top:1rem!important}.margin-right-1{margin-right:1rem!important}.margin-bottom-1{margin-bottom:1rem!important}.margin-left-1{margin-left:1rem!important}.margin-horizontal-1{margin-right:1rem!important;margin-left:1rem!important}.margin-vertical-1{margin-top:1rem!important;margin-bottom:1rem!important}.padding-1{padding:1rem!important}.padding-top-1{padding-top:1rem!important}.padding-right-1{padding-right:1rem!important}.padding-bottom-1{padding-bottom:1rem!important}.padding-left-1{padding-left:1rem!important}.padding-horizontal-1{padding-right:1rem!important;padding-left:1rem!important}.padding-vertical-1{padding-top:1rem!important;padding-bottom:1rem!important}.margin-2{margin:2rem!important}.margin-top-2{margin-top:2rem!important}.margin-right-2{margin-right:2rem!important}.margin-bottom-2{margin-bottom:2rem!important}.margin-left-2{margin-left:2rem!important}.margin-horizontal-2{margin-right:2rem!important;margin-left:2rem!important}.margin-vertical-2{margin-top:2rem!important;margin-bottom:2rem!important}.padding-2{padding:2rem!important}.padding-top-2{padding-top:2rem!important}.padding-right-2{padding-right:2rem!important}.padding-bottom-2{padding-bottom:2rem!important}.padding-left-2{padding-left:2rem!important}.padding-horizontal-2{padding-right:2rem!important;padding-left:2rem!important}.padding-vertical-2{padding-top:2rem!important;padding-bottom:2rem!important}.margin-3{margin:3rem!important}.margin-top-3{margin-top:3rem!important}.margin-right-3{margin-right:3rem!important}.margin-bottom-3{margin-bottom:3rem!important}.margin-left-3{margin-left:3rem!important}.margin-horizontal-3{margin-right:3rem!important;margin-left:3rem!important}.margin-vertical-3{margin-top:3rem!important;margin-bottom:3rem!important}.padding-3{padding:3rem!important}.padding-top-3{padding-top:3rem!important}.padding-right-3{padding-right:3rem!important}.padding-bottom-3{padding-bottom:3rem!important}.padding-left-3{padding-left:3rem!important}.padding-horizontal-3{padding-right:3rem!important;padding-left:3rem!important}.padding-vertical-3{padding-top:3rem!important;padding-bottom:3rem!important}
+@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + 1.25rem / 2)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + 1.25rem / 2)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + 1.25rem / 2)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + 1.25rem / 2)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + 1.875rem / 2)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + 1.875rem / 2)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + 1.875rem / 2)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + 1.875rem / 2)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}.text-hide{font:0/0 a!important;color:transparent!important;text-shadow:none!important;background-color:transparent!important;border:0!important}.text-truncate{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important}.text-nowrap{white-space:nowrap!important}.text-wrap{word-wrap:break-word!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-overline{text-decoration:overline!important}.text-underline{text-decoration:underline!important}.text-line-through{text-decoration:line-through!important}.font-wide{letter-spacing:.25rem}.font-normal{font-weight:400}.font-bold{font-weight:700}.font-italic{font-style:italic!important}ul.list-disc{list-style-type:disc!important}ul.list-circle{list-style-type:circle!important}ul.list-square{list-style-type:square!important}ol.list-decimal{list-style-type:decimal!important}ol.list-lower-alpha{list-style-type:lower-alpha!important}ol.list-lower-latin{list-style-type:lower-latin!important}ol.list-lower-roman{list-style-type:lower-roman!important}ol.list-upper-alpha{list-style-type:upper-alpha!important}ol.list-upper-latin{list-style-type:upper-latin!important}ol.list-upper-roman{list-style-type:upper-roman!important}.rounded{border-radius:5000px!important}.rounded .switch-paddle{border-radius:5000px!important}.rounded .switch-paddle:after{border-radius:50%}.radius{border-radius:.1875rem}.bordered{border:.0625rem solid #cacaca}.shadow{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.arrow-down{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent}.arrow-up{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a}.arrow-right{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a}.arrow-left{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent}.separator-center{text-align:center!important}.separator-center::after,.separator-center::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-center::after{clear:both}.separator-center::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0}.separator-left{text-align:left!important}.separator-left::after,.separator-left::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-left::after{clear:both}.separator-left::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0;margin-left:0!important}.separator-right{text-align:right!important}.separator-right::after,.separator-right::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-right::after{clear:both}.separator-right::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0;margin-right:0!important}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-hidden{overflow:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-scroll{overflow:scroll!important;-webkit-overflow-scrolling:touch}.overflow-x-scroll{overflow-x:scroll!important;-webkit-overflow-scrolling:touch}.overflow-y-scroll{overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.display-inline{display:inline!important}.display-inline-block{display:inline-block!important}.display-block{display:block!important}.display-table{display:table!important}.display-table-cell{display:table-cell!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-fixed-top{position:fixed!important;top:0!important;right:0!important;left:0!important;z-index:975}.position-fixed-bottom{position:fixed!important;right:0!important;bottom:0!important;left:0!important;z-index:975}.border-box{-webkit-box-sizing:border-box!important;box-sizing:border-box!important}.border-none{border:0!important}.width-25{width:25%!important}.width-50{width:50%!important}.width-75{width:75%!important}.width-100{width:100%!important}.height-25{height:25%!important}.height-50{height:50%!important}.height-75{height:75%!important}.height-100{height:100%!important}.max-width-100{max-width:100%!important}.max-height-100{max-height:100%!important}.margin-0{margin:0!important}.margin-top-0{margin-top:0!important}.margin-right-0{margin-right:0!important}.margin-bottom-0{margin-bottom:0!important}.margin-left-0{margin-left:0!important}.margin-horizontal-0{margin-right:0!important;margin-left:0!important}.margin-vertical-0{margin-top:0!important;margin-bottom:0!important}.padding-0{padding:0!important}.padding-top-0{padding-top:0!important}.padding-right-0{padding-right:0!important}.padding-bottom-0{padding-bottom:0!important}.padding-left-0{padding-left:0!important}.padding-horizontal-0{padding-right:0!important;padding-left:0!important}.padding-vertical-0{padding-top:0!important;padding-bottom:0!important}.margin-1{margin:1rem!important}.margin-top-1{margin-top:1rem!important}.margin-right-1{margin-right:1rem!important}.margin-bottom-1{margin-bottom:1rem!important}.margin-left-1{margin-left:1rem!important}.margin-horizontal-1{margin-right:1rem!important;margin-left:1rem!important}.margin-vertical-1{margin-top:1rem!important;margin-bottom:1rem!important}.padding-1{padding:1rem!important}.padding-top-1{padding-top:1rem!important}.padding-right-1{padding-right:1rem!important}.padding-bottom-1{padding-bottom:1rem!important}.padding-left-1{padding-left:1rem!important}.padding-horizontal-1{padding-right:1rem!important;padding-left:1rem!important}.padding-vertical-1{padding-top:1rem!important;padding-bottom:1rem!important}.margin-2{margin:2rem!important}.margin-top-2{margin-top:2rem!important}.margin-right-2{margin-right:2rem!important}.margin-bottom-2{margin-bottom:2rem!important}.margin-left-2{margin-left:2rem!important}.margin-horizontal-2{margin-right:2rem!important;margin-left:2rem!important}.margin-vertical-2{margin-top:2rem!important;margin-bottom:2rem!important}.padding-2{padding:2rem!important}.padding-top-2{padding-top:2rem!important}.padding-right-2{padding-right:2rem!important}.padding-bottom-2{padding-bottom:2rem!important}.padding-left-2{padding-left:2rem!important}.padding-horizontal-2{padding-right:2rem!important;padding-left:2rem!important}.padding-vertical-2{padding-top:2rem!important;padding-bottom:2rem!important}.margin-3{margin:3rem!important}.margin-top-3{margin-top:3rem!important}.margin-right-3{margin-right:3rem!important}.margin-bottom-3{margin-bottom:3rem!important}.margin-left-3{margin-left:3rem!important}.margin-horizontal-3{margin-right:3rem!important;margin-left:3rem!important}.margin-vertical-3{margin-top:3rem!important;margin-bottom:3rem!important}.padding-3{padding:3rem!important}.padding-top-3{padding-top:3rem!important}.padding-right-3{padding-right:3rem!important}.padding-bottom-3{padding-bottom:3rem!important}.padding-left-3{padding-left:3rem!important}.padding-horizontal-3{padding-right:3rem!important;padding-left:3rem!important}.padding-vertical-3{padding-top:3rem!important;padding-bottom:3rem!important}
 /*# sourceMappingURL=foundation-prototype.min.css.map */
index 30fe9b8c3bcb83c076b21e177bff8d26519bbb37..173d5e008bd56110f751145f093c5c2bc2efd382 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation-prototype.min.css","foundation-prototype.css","../scss/_global.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/util/_unit.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/util/_mixins.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/util/_flex.scss","../scss/components/_flex.scss","../scss/components/_visibility.scss","../scss/prototype/_text-utilities.scss","../scss/prototype/_text-transformation.scss","../scss/prototype/_text-decoration.scss","../scss/prototype/_font-styling.scss","../scss/prototype/_list-style-type.scss","../scss/prototype/_rounded.scss","../scss/prototype/_shadow.scss","../scss/prototype/_arrow.scss","../scss/prototype/_separator.scss","../scss/prototype/_position.scss","../scss/prototype/_overflow.scss","../scss/prototype/_display.scss","../scss/prototype/_border-box.scss","../scss/prototype/_border-none.scss","../scss/prototype/_sizing.scss","../scss/prototype/_spacing.scss"],"names":[],"mappings":"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BgE,EAAA,IJtD9D,KAAA,EAAA,EAAA,EGyEF,MAAA,KHzEE,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,sBGyEF,iBCnBgE,EJtD9D,aAAA,EAAA,EAAA,KGyEF,SAAA,ECnBgE,EAAA,KJtD9D,KAAA,EAAA,EAAA,KjB07BJ,sBiB17BI,MAAA,KjB47BJ,iBiB57BI,MAAA,SjB87BJ,iBiB97BI,MAAA,UjBg8BJ,iBiBh8BI,MAAA,IjBk8BJ,iBiBl8BI,MAAA,UjBo8BJ,iBiBp8BI,MAAA,UjBs8BJ,iBACE,MAAO,IiB/7BT,iBACE,MAAA,UjBi8BF,iBiB77BA,MAAA,UACE,iBjB+7BA,MAAO,IiBj6BT,kBCvGM,MAAA,UAAA,kBrBsJA,MAAA,UGu3BN,kBACE,MkB9gCI,MlBghCR,kCACE,MoB74BE,KpB+4BJ,kCH73BQ,OAAA,KGg4BR,eACE,YkB9gCI,SlB+gCJ,akB/gCI,SDsEJ,aAAA,4BGqDE,eHjDF,YAAA,UGiDE,aAlFY,WHyCZ,qBGyCA,MAAA,qBHzCA,YAAA,QGyCA,aAAA,QHzCA,aAAA,4BGyCA,qBHzCA,MAAA,sBGyCA,YAAA,SHzCA,aAAA,UjB28BF,qBiB38BE,MAAA,KjB68BF,uBiB78BE,MAAA,KjB+8BF,wBiB/8BE,MAAA,yBjBi9BF,wBiBj9BE,MAAA,0BjBm9BF,wBiBn9BE,MAAA,oBjBq9BF,wBiBr9BE,MAAA,0BjBu9BF,wBiBv9BE,MAAA,0BjBy9BF,wBH95BM,MAAA,oBGg6BN,wBACE,MoBn7BA,0BpBo7BF,wBACE,MoBr7BA,0BpBs7BF,wBACE,MoBv7BA,oBpBw7BF,yBACE,MoBz7BA,0BpB07BF,yBACE,MoB37BA,0BpB47BF,yBACE,MoB77BA,qBpB87BF,aiBv+BE,4BjBw+BA,qBiBx+BA,MAAA,KjB0+BA,uBiB1+BA,MAAA,KjB4+BA,wBiB5+BA,MAAA,0BjB8+BA,wBiB9+BA,MAAA,2BjBg/BA,wBiBh/BA,MAAA,qBjBk/BA,wBiBl/BA,MAAA,2BjBo/BA,wBiBp/BA,MAAA,2BjBs/BA,wBiBlgCF,MAAA,qBjBogCE,wBiBhgCF,MAAA,2BjBkgCE,wBiB1/BA,MAAA,2BjB4/BA,wBiB5/BA,MAAA,qBjB8/BA,yBiB9/BA,MAAA,2BjBggCA,yBiBhgCA,MAAA,2BjBkgCA,yBiBlgCA,MAAA,sBjBogCA,4BiBpgCA,MAAA,KjBsgCA,8BiBtgCA,MAAA,KjBwgCA,yBiBxgCA,MAAA,0BjB0gCA,yBiB1gCA,MAAA,2BjB4gCA,yBiB5gCA,MAAA,qBjB8gCA,yBiB9gCA,MAAA,2BjBghCA,yBiBhhCA,MAAA,2BjBkhCA,yBHv9BI,MAAA,qBoBvEN,yBGqDE,MAAA,2BHjDF,yBGiDE,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,0BGyCA,MAAA,2BHzCA,0BGyCA,MAAA,2BHzCA,0BGyCA,MAAA,uBpBu/BF,aiBhiCE,4BjBiiCA,2BiBjiCA,MAAA,KjBmiCA,6BiBniCA,MAAA,KjBqiCA,wBiBriCA,MAAA,0BjBuiCA,wBiBviCA,MAAA,2BjByiCA,wBiBziCA,MAAA,qBjB2iCA,wBiB3iCA,MAAA,2BjB6iCA,wBiB7iCA,MAAA,2BjB+iCA,wBACE,MAAO,qBiBhgCX,wBC3IM,MAAA,2BAAA,wBrBsJA,MAAA,2BoBXN,wBC3IM,MAAA,qBlBkpCJ,yBACE,MAAO,2BiB//BT,yBCpJI,MAAA,2BAAA,yBrBsJA,MAAA,uBGmgCR,gCACE,akB1pCM,SlB2pCN,YAAa,SiBhhCb,aAAA,4BC3IM,gCAAA,aAAA,UrBsJA,YAAA,WG2gCR,2CACE,akBlqCM,SlBmqCN,YAAa,SsBnqCb,aAAA,4BFoIE,2CpBkiCE,aAAc,UsBtqClB,YAAA,WtByqCF,sBsBzqCE,cAAA,QFoIE,aAAA,QpBwiCF,aAAc,4BsB5qCd,sBFoIE,cCnBgE,SrB8jC9D,aAAc,UAEpB,kBACE,MAAO,KAET,kBACE,MAAO,IAET,kBACE,MAAO,UAET,kBACE,MAAO,IAET,kBACE,MoB1jCE,IpB4jCJ,kBsBhsCE,MAAA,UtBmsCF,kBACE,MoBhkCE,UpBkkCJ,kBsBtsCE,MAAA,MtBysCF,asBzsCE,4BtB0sCA,mBsB1sCA,MAAA,KtB4sCA,mBACE,MAAO,IHvjCH,mByBtJN,MAAA,UtBgtCA,mBsBhtCA,MAAA,ItBktCA,mBsBltCA,MAAA,ItBotCA,mBsBptCA,MAAA,UtBstCA,mBsBttCA,MAAA,UtBwtCA,mBsBxtCA,MAAA,OtB2tCF,asB3tCE,4BtB4tCA,kBsB5tCA,MAAA,KtB8tCA,kBACE,MAAO,IsB/tCT,kBFoIE,MAAA,UpB8lCF,kBsBluCA,MAAA,IFoIE,kBpBimCA,MAAO,IsBruCT,kBFoIE,MAAA,UpBomCF,kBsBxuCA,MAAA,UFoIE,kBpBumCA,MAAO,OAEX,gCACE,MAAO,qBAET,gCACE,MAAO,oBAET,gCACE,MAAO,0BAET,gCACE,MAAO,oBAET,gCACE,MoBtnCE,oBpBwnCJ,gCsB5vCE,MAAA,0BtB+vCF,gCACE,MoB5nCE,0BpB8nCJ,gCsBlwCE,MAAA,sBtBqwCF,asBrwCE,4BtBswCA,gCsBtwCA,MAAA,sBtBwwCA,gCsBxwCA,MAAA,qBtB0wCA,gCsB1wCA,MAAA,2BtB4wCA,gCsB5wCA,MAAA,qBtB8wCA,gCsB9wCA,MAAA,qBtBgxCA,gCsBhxCA,MAAA,2BtBkxCA,gCsBlxCA,MAAA,2BtBoxCA,gCsBpxCA,MAAA,uBtBsxCA,iCsBtxCA,MAAA,sBtBwxCA,iCACE,MAAO,qBHnoCH,iCyBtJN,MAAA,2BtB4xCA,iCsB5xCA,MAAA,qBtB8xCA,iCsB9xCA,MAAA,qBtBgyCA,iCsBhyCA,MAAA,2BtBkyCA,iCsBlyCA,MAAA,2BtBoyCA,iCsBpyCA,MAAA,wBtBuyCF,asBvyCE,4BtBwyCA,gCsBxyCA,MAAA,sBtB0yCA,gCACE,MAAO,qBiBpmCL,gCM9ME,MAAA,2BAAA,gCAGF,MAAA,qBvBozCJ,gCuBlzCQ,MAAA,qBAsBE,gCHgHR,MAAA,2BGhHQ,gCHgHR,MAAA,2BGhHQ,gCHgHR,MAAA,wBpBqrCJ,uBuBryCY,aAAA,EvBuyCV,YoBvrCE,EGhHQ,6BHgHR,aCnBgE,EE7FxD,YAAA,EvB2yCV,gCuB3yCU,MAAA,SvB6yCV,gCuB7yCU,MAAA,UvB+yCV,gCuB/yCU,MAAA,IvBizCV,gCuBjzCU,MAAA,UvBmzCV,gCuBnzCU,MAAA,UvBqzCV,gCHnrCM,MAAA,IGqrCN,gCACE,MoBxsCA,UpBysCF,gCACE,MoB1sCA,UpB2sCF,gCACE,MoB5sCA,IpB6sCF,iCACE,MoB9sCA,UpB+sCF,iCACE,MoBhtCA,UpBitCF,iCACE,MoBltCA,KpBmtCF,auBn0CU,4BvBo0CR,iCuBp0CQ,MAAA,SvBs0CR,iCuBt0CQ,MAAA,UvBw0CR,iCuBx0CQ,MAAA,IvB00CR,iCuB10CQ,MAAA,UvB40CR,iCuB50CQ,MAAA,UvB80CR,iCH5sCI,MAAA,I0BlII,iCHgHR,MAAA,UGhHQ,iCHgHR,MAAA,UGhHQ,iCHgHR,MAAA,IGhHQ,kCHgHR,MAAA,UGhHQ,kCHgHR,MAAA,UGhHQ,kCHgHR,MAAA,MpB4uCF,auB51CU,4BvB61CR,gCuB71CQ,MAAA,SvB+1CR,gCuB/1CQ,MAAA,UvBi2CR,gCuBj2CQ,MAAA,IvBm2CR,gCuBn2CQ,MAAA,UvBq2CR,gCuBr2CQ,MAAA,UvBu2CR,gCACE,MAAO,IiB/qCP,gCM7KE,MAAA,UAAA,gCAGF,MAAA,UAEI,gCAAA,MAAA,IvB81CN,iCH7uCI,MAAA,UoBiDF,iCM9ME,MAAA,UAAA,iCAGF,MAAA,MvB84CN,wBACE,aAAc,EHrvCR,YAAA,E0B3II,8BHyHR,cCnBgE,EEtGxD,aAAA,EvBs4CZ,auBt4CY,4BvBu4CV,wBuBv4CU,aAAA,EHyHR,YAAA,EGzHQ,8BHyHR,aCnBgE,EEtGxD,YAAA,GvB84CZ,auB94CY,4BvB+4CV,iCuB/4CU,MAAA,SvBi5CV,iCuBj5CU,MAAA,UvBm5CV,iCuBn5CU,MAAA,IvBq5CV,iCuBr5CU,MAAA,UvBu5CV,iCuBv5CU,MAAA,UvBy5CV,iCACE,MAAO,IH/wCH,iC0BlII,MAAA,UvBo5CV,iCuBp5CU,MAAA,UvBs5CV,iCuBt5CU,MAAA,IvBw5CV,kCuBx5CU,MAAA,UvB05CV,kCuB15CU,MAAA,UvB45CV,kCuB55CU,MAAA,MvB+5CZ,auB/5CY,4BvBg6CV,kCuBh6CU,MAAA,SvBk6CV,kCuBl6CU,MAAA,UvBo6CV,kCuBp6CU,MAAA,IvBs6CV,kCuBt6CU,MAAA,UvBw6CV,kCuBx6CU,MAAA,UvB06CV,kCACE,MAAO,IHzyCH,kC0BlII,MAAA,UvB86CV,kCuB96CU,MAAA,UvBg7CV,kCuBh7CU,MAAA,IvBk7CV,mCuBl7CU,MAAA,UvBo7CV,mCuBp7CU,MAAA,UvBs7CV,mCuBt7CU,MAAA,MvBy7CZ,auBz7CY,4BvB07CV,iCuB17CU,MAAA,SvB47CV,iCuB57CU,MAAA,UvB87CV,iCuB97CU,MAAA,IvBg8CV,iCuBh8CU,MAAA,UvBk8CV,iCuBl8CU,MAAA,UvBo8CV,iCACE,MAAO,IHn0CH,iCoBuDF,MAAA,UjB+wCJ,iCuB57CM,MAAA,UvB87CN,iCACE,MuB17CM,IvB27CR,kCACE,MAAO,UH30CH,kCoBiDF,MAAA,UjB6xCJ,kCuB3+CM,MAAA,MvB8+CR,auBz+CU,4BvB0+CR,yBACE,aAAc,EHn1CV,YAAA,E0B3II,+BHyHR,cCnBgE,EEtGxD,aAAA,GvBo+CZ,auBp+CY,4BvBq+CV,uBuBr+CU,aAAA,EHyHR,YAAA,EGzHQ,6BHyHR,aCnBgE,EEtGxD,YAAA,GvB4+CZ,auB5+CY,4BvB6+CV,gCuB7+CU,MAAA,SvB++CV,gCuB/+CU,MAAA,UvBi/CV,gCuBj/CU,MAAA,IvBm/CV,gCuBn/CU,MAAA,UvBq/CV,gCuBr/CU,MAAA,UvBu/CV,gCACE,MAAO,IH72CH,gC0B3II,MAAA,UvB2/CV,gCuB3/CU,MAAA,UvB6/CV,gCuB7/CU,MAAA,IvB+/CV,iCuB//CU,MAAA,UvBigDV,iCuBjgDU,MAAA,UvBmgDV,iCuBngDU,MAAA,MvBsgDZ,auBtgDY,4BvBugDV,iCuBvgDU,MAAA,SvBygDV,iCuBzgDU,MAAA,UvB2gDV,iCuB3gDU,MAAA,IvB6gDV,iCuB7gDU,MAAA,UvB+gDV,iCuB/gDU,MAAA,UvBihDV,iCACE,MAAO,IHv4CH,iC0BlII,MAAA,UvB4gDV,iCuB5gDU,MAAA,UvB8gDV,iCuB9gDU,MAAA,IvBghDV,kCuBhhDU,MAAA,UvBkhDV,kCuBlhDU,MAAA,UvBohDV,kCuBphDU,MAAA,MvBuhDZ,auBvhDY,4BvBwhDV,gCuBxhDU,MAAA,SvB0h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iBAAA,iBAAA,sBG7GE,iBCnBgE,EJgIlE,aAAA,EAAA,EAAA,KG7GE,SAAA,EAAA,ECnBgE,KJgIlE,KAAA,EAAA,EAAA,KjBsnDE,sBiBtnDF,OAAA,KjBwnDE,iBiBxnDF,OAAA,SjB0nDE,iBiB1nDF,OAAA,UjB4nDE,iBiB5nDF,OAAA,IjB8nDE,iBiB9nDF,OAAA,UjBgoDE,iBiBhoDF,OAAA,UjBkoDE,iBACE,OAAQ,IiBnkDV,iBCjTI,OAAA,UAAA,iBrBsJA,OAAA,UoB2JJ,iBCjTI,OAAA,IlB23DJ,kBACE,OAAQ,UiB3kDV,kBCjTI,OAAA,UAAA,kBrBsJA,OAAA,MG4uDR,gCACE,WkBn4DM,SlBo4DN,cAAe,SiB7xDf,aAAA,4BCvGM,gCAAA,WAAA,UrBsJA,cAAA,WGovDR,sBACE,YkB34DM,QDuGN,eAAA,QjBsyDA,aoBzwDE,4BF3HE,sBAAA,YAAA,SrB6IE,eAAA,UG4vDR,eACE,WkB14DI,SlB24DJ,ckB34DI,SDsEJ,aAAA,4BGqDE,eHjDF,WAAA,UGiDE,cAlFY,WHyCZ,qBGyCA,OAAA,qBHzCA,WAAA,QGyCA,cAAA,QHzCA,aAAA,4BGyCA,qBHzCA,OAAA,sBGyCA,WAAA,SHzCA,cAAA,UjBu0DF,qBiBv0DE,OAAA,KjBy0DF,uBiBz0DE,OAAA,KjB20DF,wBiB30DE,OAAA,yBjB60DF,wBiB70DE,OAAA,0BjB+0DF,wBiB/0DE,OAAA,oBjBi1DF,wBiBj1DE,OAAA,0BjBm1DF,wBiBn1DE,OAAA,0BjBq1DF,wBH1xDM,OAAA,oBG4xDN,wBACE,OoB/yDA,0BpBgzDF,wBACE,OoBjzDA,0BpBkzDF,wBACE,OoBnzDA,oBpBozDF,yBACE,OoBrzDA,0BpBszDF,yBACE,OoBvzDA,0BpBwzDF,yBACE,OoBzzDA,qBpB0zDF,aiBn2DE,4BjBo2DA,qBiBp2DA,OAAA,KjBs2DA,uBiBt2DA,OAAA,KjBw2DA,wBiBx2DA,OAAA,0BjB02DA,wBiB12DA,OAAA,2BjB42DA,wBiB52DA,OAAA,qBjB82DA,wBiB92DA,OAAA,2BjBg3DA,wBiBh3DA,OAAA,2BjBk3DA,wBiB93DF,OAAA,qBjBg4DE,wBiB53DF,OAAA,2BjB83DE,wBiBt3DA,OAAA,2BjBw3DA,wBiBx3DA,OAAA,qBjB03DA,yBiB13DA,OAAA,2BjB43DA,yBiB53DA,OAAA,2BjB83DA,yBiB93DA,OAAA,sBjBg4DA,4BiBh4DA,OAAA,KjBk4DA,8BiBl4DA,OAAA,KjBo4DA,yBiBp4DA,OAAA,0BjBs4DA,yBiBt4DA,OAAA,2BjBw4DA,yBiBx4DA,OAAA,qBjB04DA,yBiB14DA,OAAA,2BjB44DA,yBiB54DA,OAAA,2BjB84DA,yBHn1DI,OAAA,qBoBvEN,yBGqDE,OAAA,2BHjDF,yBGiDE,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,uBpBm3DF,aiB55DE,4BjB65DA,2BiB75DA,OAAA,KjB+5DA,6BiB/5DA,OAAA,KjBi6DA,wBiBj6DA,OAAA,0BjBm6DA,wBiBn6DA,OAAA,2BjBq6DA,wBiBr6DA,OAAA,qBjBu6DA,wBiBv6DA,OAAA,2BjBy6DA,wBiBz6DA,OAAA,2BjB26DA,wBACE,OAAQ,qBiBjsDZ,wBQtVE,OAAA,2BACA,wBACA,OAAA,2BzB0hEA,wBACE,OyB3hEF,qBACA,yBAAA,OAAA,2BzB6hEA,yBACE,OyB9hEF,2BA2BI,yBzBqgEF,OAAQ,uBAEd,YACE,SAAU,OiBxsDV,SAAA,SQ7SE,kBAAgB,OAChB,cAAe,OAGjB,UAAA,OACA,kBAAA,QzBs/DA,oBAAqB,QiB1sDrB,eAAA,QQrTE,YAAgB,QAChB,MAAA,MzBmgEJ,kByB3/DE,MAAA,KRiTA,YQ1SA,WAAA,KAAA,UAAA,KAAA,2BAAa,MAAb,mBAAa,yBzB6/Df,cyB5/DE,WAAA,KzB8/DA,WyB9/DA,KzB+/DA,WyB//DA,KACA,2BAAgB,MAEhB,mBAAA,yBzBggEF,sBACE,QyB//DE,YzBggEF,QAAS,aACT,QAAS,YH95DH,QAAA,KoBwMJ,mBAAA,SjBytDF,sByBvkEkB,OzBwkElB,uByBvkEoB,OAClB,mBAAA,OAAA,eAAA,OzBykEF,WyBzkEE,KzB0kEF,8ByBzkEE,WAAA,KzB2kEA,kByB3kEA,OzB4kEI,cyB5kEJ,OA2BI,UAAsC,OzBojE9C,aiB/tDM,4BAGF,mBQrUA,SAAA,OACA,SAAA,SAGF,kBAAA,OACA,cAAA,ORoUE,UAAA,OQ7TF,kBAAA,QAAA,oBAAa,QAAb,eAAa,QAAb,YAAa,QACb,MAAA,MzBgiEA,yByBhiEA,MAAA,KzBkiEA,mBACE,WyBniEF,KACA,UAAA,KAEA,2BAAA,MzBmiEE,mByBliEgB,yBzBmiElB,6BACE,QyBniEA,YzBoiEA,QAAS,aiBzuDT,QAAA,YQjVA,QAAA,KACA,mBAAgB,SAChB,sBAAgB,OAMlB,uBAAA,OACA,mBAAA,OzBwjEU,eAAgB,OHx8DpB,WAAA,KoBwMJ,qCQ9WA,WAAA,KACA,kBAAkB,OAClB,cAAA,OAAA,UAAA,OzBmnEF,qByBlnEE,WAAA,KAAA,WAAA,KzBqnEA,WyBrnEA,KzBsnEA,2ByBtnEoB,MA2BhB,mBAAsC,0BzB8lE9C,aiBzwDM,4BAGF,kBQrUA,SAAA,OACA,SAAA,SAGF,kBAAA,OACA,cAAA,ORoUE,UAAA,OQ7TF,kBAAA,QAAA,oBAAa,QAAb,eAAa,QAAb,YAAa,QACb,MAAA,MzB0kEA,wByB1kEA,MAAA,KzB4kEA,kBACE,WyB7kEF,KACA,UAAA,KAEA,2BAAA,MzB6kEE,mByB5kEgB,yBzB6kElB,4BACE,QyB7kEA,YzB8kEA,QAAS,aiBnxDT,QAAA,YQjVA,QAAA,KACA,mBAAgB,SAChB,sBAAgB,OAMlB,uBAAA,OACA,mBAAA,OzBkmEU,eAAgB,OiBpxDxB,WAAA,KAEI,oCQtYJ,WAAgB,KAChB,kBAAkB,OAClB,cAAA,OAAA,UAAA,OzB6pEF,oByB5pEE,WAAA,KAAA,WAAA,KzB+pEA,WyB/pEA,KzBgqEA,2ByBhqEoB,MAyBhB,mBAAuC,0B5B0IvC,mBoB8NJ,SAAA,OjBoyDF,SiB5xDQ,SjB6xDR,kByBzqEkB,OAChB,cAAA,OACA,UAAA,OzB0qEF,kByB1qEE,QzB2qEF,oByB3qEE,QACA,eAAA,QAAA,YAAA,QzB6qEF,OyB7qEE,MzB8qEF,MAAO,KAET,aAAc,4BH7gEN,0BoB8NJ,SAAA,OAQM,SAAA,SQ5YN,kBAAgB,OAChB,cAAkB,OAClB,UAAA,OzBwrEA,kByBxrEA,QzByrEA,oByBzrEA,QACA,eAAA,QAAA,YAAA,QzB2rEA,OyB3rEA,MzB4rEA,MAAO,MAEX,aAAc,4BiB/yDV,yBAEI,SAAY,OjBgzDhB,SAAU,SH9hEN,kBAAA,OoB4OJ,cAAA,OAMM,UACD,OjB+yDL,kBAAmB,QHliEf,oBAAA,QoB4OJ,eAAA,QAMM,YACD,QjBmzDL,OAAQ,MiBrlEV,MAAA,MjBwlEF,yBHziEQ,OAAA,KG4iER,akBlsEQ,4BlBmsEN,gCiB5lEA,OAAA,MjB+lEF,akB7rEM,4BlB8rEJ,+BHjjEM,OAAA,MGojER,eACE,WkBlsEI,SlBmsEJ,ckBnsEI,SDsEJ,aAAA,4BGqDE,eHjDF,WAAA,UGiDE,cAlFY,WHyCZ,qBGyCA,OAAA,qBHzCA,WAAA,QGyCA,cAAA,QHzCA,aAAA,4BGyCA,qBHzCA,OAAA,sBGyCA,WAAA,SHzCA,cAAA,UjB+nEF,qBiB/nEE,OAAA,KjBioEF,uBiBjoEE,OAAA,KjBmoEF,wBiBnoEE,OAAA,yBjBqoEF,wBiBroEE,OAAA,0BjBuoEF,wBiBvoEE,OAAA,oBjByoEF,wBiBzoEE,OAAA,0BjB2oEF,wBiB3oEE,OAAA,0BjB6oEF,wBHllEM,OAAA,oBGolEN,wBACE,OoBvmEA,0BpBwmEF,wBACE,OoBzmEA,0BpB0mEF,wBACE,OoB3mEA,oBpB4mEF,yBACE,OoB7mEA,0BpB8mEF,yBACE,OoB/mEA,0BpBgnEF,yBACE,OoBjnEA,qBpBknEF,aiB3pEE,4BjB4pEA,qBiB5pEA,OAAA,KjB8pEA,uBiB9pEA,OAAA,KjBgqEA,wBiBhqEA,OAAA,0BjBkqEA,wBiBlqEA,OAAA,2BjBoqEA,wBiBpqEA,OAAA,qBjBsqEA,wBiBtqEA,OAAA,2BjBwqEA,wBiBxqEA,OAAA,2BjB0qEA,wBiBtrEF,OAAA,qBjBwrEE,wBiBprEF,OAAA,2BjBsrEE,wBiB9qEA,OAAA,2BjBgrEA,wBiBhrEA,OAAA,qBjBkrEA,yBiBlrEA,OAAA,2BjBorEA,yBiBprEA,OAAA,2BjBsrEA,yBiBtrEA,OAAA,sBjBwrEA,4BiBxrEA,OAAA,KjB0rEA,8BiB1rEA,OAAA,KjB4rEA,yBiB5rEA,OAAA,0BjB8rEA,yBiB9rEA,OAAA,2BjBgsEA,yBiBhsEA,OAAA,qBjBksEA,yBiBlsEA,OAAA,2BjBosEA,yBiBpsEA,OAAA,2BjBssEA,yBH3oEI,OAAA,qBoBvEN,yBGqDE,OAAA,2BHjDF,yBGiDE,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,uBpB2qEF,aiBptEE,4BjBqtEA,2BiBrtEA,OAAA,KjButEA,6BiBvtEA,OAAA,KjBytEA,wBiBztEA,OAAA,0BjB2tEA,wBiB3tEA,OAAA,2BjB6tEA,wBiB7tEA,OAAA,qBjB+tEA,wBiB/tEA,OAAA,2BjBiuEA,wBiBjuEA,OAAA,2BjBmuEA,wBACE,OAAQ,qBiBh7DV,wBQ5YI,OAAA,2B5BmJA,wBoByPJ,OAAA,2BjBq7DA,wBH9qEI,OAAA,qBoByPJ,yBQ5YI,OAAA,2BzBq0EJ,yBHlrEI,OAAA,2BoB6PF,yBQhZE,OAAA,uB5BmJA,0BoB6PF,OAAA,sBjB47DJ,ayB50EM,4BzB60EJ,0B0BpiEF,OAAA,wBA1OA,aAAA,4BACA,0BACA,OAAA,wB1BkxEF,a0BrwEE,4BACA,iCACA,OAAA,wB1BuwEF,a0BtwEE,4BACA,gCAEA,OAAA,wB1BuwEF,Q0BpwEE,QAAA,azB2jEA,eAAA,OD4MA,OWrrEE,EAAA,EAAU,KAAA,EegIZ,QAAA,MAAA,I1BujEA,O0BjjEM,IAAA,MAAA,YANN,cAAA,E1ByjEA,mB0Bx0Ec,iBAAA,KAAA,QAAA,CAAA,MAAA,KAAA,SA+Qd,WAAA,iBAAA,KAAA,QAAA,CAAA,MAAA,KAAA,S1B2jEA,Y0BrjEM,QANN,UAAA,M1B6jEA,mB0BxwEgB,K1BywEhB,Y0BxwEa,E1BywEb,W0BxwEE,O1BywEF,O0BxwEE,QAiEF,+BAIE,QAAA,E1BssEF,a0BlsEA,UAAA,M1BosEA,c0BlsEE,UAAA,OAVF,cAIE,UAAA,Q1B4sEF,iB0BxsEA,QAAA,MACE,MAAA,KACA,axB3JW,EwBiJb,YAAA,E1BqtEA,Q0BjtEE,iBxB7KgB,uBAAA,uBAAA,kBAAA,wBAAA,wBwB8KhB,iBxBtJW,QwByJb,MAAA,QACE,c1B+sEF,c0B9sEE,iBxB3JW,QwBiJb,MAAA,Q1B2tEA,gB0BvtEE,yBxB5Kc,+BAAA,+BAAA,0BAAA,gCAAA,gCwB6Kd,iBxB1JW,QwB6Jb,MAAA,QACE,sB1BqtEF,sB0BptEE,iBxB/JW,QwBqJb,MAAA,Q1BiuEA,kB0B7tEE,2BxB3Kc,iCAAA,iCAAA,4BAAA,kCAAA,kCwB4Kd,iBxB1JW,QwB6Jb,MAAA,QACE,wB1B2tEF,wB0B1tEE,iBxB/JW,QwBqJb,MAAA,Q1BuuEA,gB0BnuEE,yBxB1KY,+BAAA,+BAAA,0BAAA,gCAAA,gCwB2KZ,iBxBtJW,QwByJb,MAAA,QACE,sB1BiuEF,sB0BhuEE,iBxB3JW,QwBmKX,MAAA,Q1B2tEF,gB0B1tEI,yBAA6B,+BAAA,+BAAA,0BAAA,gCAAA,gCAiBjC,iBAAA,QAIE,MAAA,QxBlNc,sBF05EhB,sB0BpsEA,iBAAA,QACE,MAAA,Q1BssEF,c0BrsEE,uBAb6D,6BAAA,6BAAA,wBAAA,8BAAA,8BAG/D,iBAAA,QAIE,MAAA,QxBlNc,oBFg6EhB,oB0B1sEA,iBAAA,QACE,MAAA,Q1B4sEF,e0BxtE+D,wBAAA,8BAAA,8BAAA,qBAAA,qBAAA,yBAAA,+BAAA,+BAG/D,iBAAA,Y1ButEA,e0BntEE,wBxBjNgB,8BAAA,8BAAA,yBAAA,+BAAA,+BwBkNhB,OAAA,IAAA,MxBlNgB,QwBqNlB,MAAA,QACE,qB1BitEF,qB0BhtEE,aAb6D,QAG/D,MAAA,Q1B6tEA,uB0BztEE,gCxBhNc,sCAAA,sCAAA,iCAAA,uCAAA,uCwBiNd,OAAA,IAAA,MxBjNc,QwBoNhB,MAAA,QAX+D,6B1BmuE/D,6B0BttEE,aAb6D,QAG/D,MAAA,Q1BmuEA,yB0B/tEE,kCxB/Mc,wCAAA,wCAAA,mCAAA,yCAAA,yCwBgNd,OAAA,IAAA,MxBhNc,QwBmNhB,MAAA,QAX+D,+B1ByuE/D,+B0B5tEE,aAb6D,QAG/D,MAAA,Q1ByuEA,uB0BruEE,gCxB9MY,sCAAA,sCAAA,iCAAA,uCAAA,uCwB+MZ,OAAA,IAAA,MxB/MY,QwBkNd,MAAA,QAX+D,6B1B+uE/D,6B0BluEE,aAb6D,QAqB7D,MAAA,Q1B6tEF,uB0B5tEI,gCAAyB,sCAAA,sCAAA,iCAAA,uCAAA,uCACzB,OAAA,IAAA,MAAA,QAeJ,MAAA,QxBjPgB,6BFg8EhB,6B0BxsEA,aAAA,QACE,MAAA,QARF,qBAAA,8BAAA,oCAAA,oCAAA,+BAAA,qCAAA,qCAIE,OAAA,IAAA,MxBrPc,QwBwPhB,MAAA,QAV+D,2B1BwtE/D,2B0BrtEA,aAAA,QAIE,MAAA,QAGF,cAAA,uBAAA,6BAAA,6BAAA,oBAAA,oBAAA,wBAAA,8BAAA,8BACE,aAX6D,YAG/D,iBAAA,Y1B2tEA,c0BvtEE,uBxBnPc,6BAAA,6BAAA,wBAAA,8BAAA,8BwBsPhB,MAAA,QAV+D,oB1BguE/D,oB0B7tEA,MAAA,Q1B+tEA,sBE78EgB,+BAAA,qCAAA,qCAAA,gCAAA,sCAAA,sCwBqPhB,MAAA,QAV+D,4B1BouE/D,4B0BjuEA,MAAA,Q1BmuEA,wBEh9Ec,iCAAA,uCAAA,uCAAA,kCAAA,wCAAA,wCwBoPd,MAAA,QAV+D,8B1BwuE/D,8B0BrqEA,MAAA,Q1BuqEA,sB0B36E4B,+BAAA,qCAAA,qCAAA,gCAAA,sCAAA,sCAsN5B,MAAA,QAYA,4BAAA,4Bf3PA,MAAA,QXw8EA,sBWv8EQ,+BAAA,qCAAA,qCAAA,gCAAA,sCAAA,sCACR,MAAA,QAEmB,4BXs8EnB,4BWr8EA,MAAA,QXu8EA,oBWr8EW,6BAAA,mCAAA,mCAAA,8BAAA,oCAAA,oCAGT,MAAA,QACA,0BXm8EF,0B0BjtEE,MAAA,Q1BmtEF,iB0BltEY,kBAEV,QAAA,IACA,OAAA,Y1BktEF,wB0BtrEA,QAAA,MAoEQ,MAAA,EApER,OAAA,EA0EY,aAAA,MA1EZ,aAAA,KA0EY,QAAA,GA1EZ,oBAAA,EA0EY,aAAA,QAAA,YxBzXI,YwB+ShB,SAAA,SA0EY,IAAA,KA1EZ,QAAA,aA0EY,MAAA,MA1EZ,YAAA,IAmFe,8B1BinEf,+B0BhnEI,iBAAW,QACqB,sC1BinEpC,uCACE,iBAAkB,Q0B9mEpB,wCAAA,yCAGI,iBAAA,Q1B8mEoC,sCAAxC,uC2Bh0EA,iBAAA,QA5MuB,sCA0BvB,uCAGE,iBAAa,QAAA,oCAAb,qCAAA,iBAAa,QAAb,0BACA,IAAA,M3Bs/EA,M2Bt/EA,K3Bu/EA,Y2Bv/EA,EACA,e3Bw/EJ,eACE,gB2Bz/EE,K3B2/EJ,c2B1/EI,cAAA,K3B4/EF,Q2B5/EE,Y3B6/EF,Q2B7/EE,ahBiIF,QAAA,YX83EA,QW53EE,KX63EF,kBW53Ec,KAGV,cAAA,KAAA,UAAA,KX43EJ,kBW53EI,QX63EJ,oBW53EI,QAAA,eAAQ,QAAR,YAAA,QX+3EJ,iBW/3EY,EAIZ,kBAAA,EACE,kBAAW,EAZb,UAAA,EgB7HiB,qB3BugFjB,sB2BhgFA,QAAA,MACE,QAAS,IACT,mBAzCqB,EA0CrB,wBA1CqB,EA2CrB,WDKa,ECFX,0BAAc,EAAd,cAAA,EAAA,eAAA,EAAA,MAAA,E3BmgFJ,qBACE,M2BhgFE,KAsJJ,qBAAA,sBAMM,QAAA,KANN,sBAMM,OAAA,EANN,aAAA,IAMM,cAAA,IAzGN,UAAA,MAEI,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KDgFJ,iCAIE,aAAA,E1Bq4EF,2B0Bj4EA,UAAA,M1Bm4EA,4B0Bj4EE,UAAA,OAVF,4BAIE,UAAA,Q1B24EF,+B0Bv4EA,iBAAA,EACE,aAAA,EAAA,EAAA,IACA,SxB3JW,EAAA,EAAA,IwBiJb,KAAA,EAAA,EAAA,I1Bo5EA,8BE5jFgB,uCAAA,6CAAA,6CAAA,wCAAA,8CAAA,8CwB6Kd,iBxB1JW,QwB6Jb,MAAA,QAZsF,oC1B25EtF,oC0B74EE,iBxB/JW,QwBqJb,MAAA,Q1B05EA,gCEjkFgB,yCAAA,+CAAA,+CAAA,0CAAA,gDAAA,gDwB4Kd,iBxB1JW,QwB6Jb,MAAA,QAZsF,sC1Bi6EtF,sC0Bn5EE,iBxB/JW,QwBqJb,MAAA,Q1Bg6EA,8BEtkFc,uCAAA,6CAAA,6CAAA,wCAAA,8CAAA,8CwB2KZ,iBxBtJW,QwByJb,MAAA,QAZsF,oC1Bu6EtF,oC0Bz5EE,iBxB3JW,QwBmKX,MAAA,Q1Bo5EF,8B0Bn5EiC,uCAAA,6CAAA,6CAAA,wCAAA,8CAAA,8CAiBjC,iBAAA,QAIE,MAAA,QxBlNc,oCFmlFhB,oC0B73EA,iBAAA,QACE,MAAA,Q1B+3EF,4B0B34E+D,qCAAA,2CAAA,2CAAA,sCAAA,4CAAA,4CAG/D,iBAAA,QAIE,MAAA,QxBlNc,kCFylFhB,kC0Bn4EA,iBAAA,QACE,MAAA,Q1Bq4EF,6B0Bj5E+D,sCAAA,4CAAA,4CAAA,mCAAA,mCAAA,uCAAA,6CAAA,6CAG/D,iBAAA,Y1Bg5EA,6BE7lFkB,sCAAA,4CAAA,4CAAA,uCAAA,6CAAA,6CwBkNhB,OAAA,IAAA,MxBlNgB,QwBqNlB,MAAA,QAX+D,mC1Bs5E/D,mC0Bz4EE,aAb6D,QAG/D,MAAA,QxB5MgB,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDFkmFhB,qCElmFgB,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDwBiNd,OAAA,IAAA,MxBjNc,QwBoNhB,MAAA,QAX+D,2CAAA,2CAAA,2C1B45E/D,2C0B/4EE,aAb6D,QAG/D,MAAA,QxB3MgB,uCAAA,gDAAA,sDAAA,sDAAA,iDAAA,uDAAA,uDFumFhB,uCEvmFgB,gDAAA,sDAAA,sDAAA,iDAAA,uDAAA,uDwBgNd,OAAA,IAAA,MxBhNc,QwBmNhB,MAAA,QAX+D,6CAAA,6CAAA,6C1Bk6E/D,6C0Br5EE,aAb6D,QAG/D,MAAA,QxB1Mc,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDF4mFd,qCE5mFc,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDwB+MZ,OAAA,IAAA,MxB/MY,QwBkNd,MAAA,QAX+D,2CAAA,2CAAA,2C1Bw6E/D,2C0B35EE,aAb6D,QAqB7D,MAAA,QAC2B,qCAAA,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qD1Bq5E7B,qC0Br5E6B,8CAAA,oDAAA,oDAAA,+CAAA,qDAAA,qDACzB,OAAA,IAAA,MAAA,QAeJ,MAAA,QxBjPgB,2CAAA,2CAAA,2CFynFhB,2C0Bj4EA,aAAA,QACE,MAAA,QARF,mCAAA,4CAAA,kDAAA,kDAAA,6CAAA,mDAAA,mDAAA,mCAAA,4CAAA,kDAAA,kDAAA,6CAAA,mDAAA,mDAIE,OAAA,IAAA,MxBrPc,QwBwPhB,MAAA,QAV+D,yCAAA,yCAAA,yC1Bi5E/D,yC0B94EA,aAAA,QAIE,MAAA,QAGF,4BAAA,qCAAA,2CAAA,2CAAA,kCAAA,kCAAA,sCAAA,4CAAA,4CACE,aAX6D,YAG/D,iBAAA,Y1Bo5EA,4BEnoFgB,qCAAA,2CAAA,2CAAA,sCAAA,4CAAA,4CwBsPhB,MAAA,QAV+D,kC1By5E/D,kC0Bt5EA,MAAA,QxB9OgB,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDFsoFhB,oCEtoFgB,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDwBqPhB,MAAA,QAV+D,0CAAA,0CAAA,0C1B65E/D,0C0B15EA,MAAA,QxB7Oc,sCAAA,+CAAA,qDAAA,qDAAA,gDAAA,sDAAA,sDFyoFd,sCEzoFc,+CAAA,qDAAA,qDAAA,gDAAA,sDAAA,sDwBoPd,MAAA,QAV+D,4CAAA,4CAAA,4C1Bi6E/D,4C2BjlFA,MAAA,QnBK8D,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDR8kF9D,oCQ9kF8D,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oDmBF5D,MAAA,QACwD,0CAAA,0CAAA,0C3BilF1D,0C2Bx9EA,MAAA,QA/DiB,oCAAA,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oD3ByhFjB,oC2BzhFiB,6CAAA,mDAAA,mDAAA,8CAAA,oDAAA,oD3B0hFf,M2B1hFA,QAAe,0CAAA,0CAAA,0C3B2hFjB,0C2BxhFA,MAAA,QAEkB,kCAAA,2CAAA,iDAAA,iDAAA,4CAAA,kDAAA,kD3BwhFlB,kC2BxhFkB,2CAAA,iDAAA,iDAAA,4CAAA,kDAAA,kD3ByhFhB,M2BzhFE,QAAc,wCAAA,wCAAA,wC3B0hFlB,wCACE,MAAO,QACT,8BACE,a2BthFE,UAhDJ,sCAEI,kBAAa,Y3BukFjB,sB2BvkFiB,iCAAb,gC3BwkFF,kB2BxkFE,K3BykFE,c2BzkFF,K9BiEE,UAAA,K8BKN,8BAAA,yCAAA,wCAEI,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAKF,yCAgBD,oDAAA,mD9B5BK,cAAA,E8BKN,kDAAA,iDAAA,uCAEI,iBAAA,EAAA,aAAA,EAAA,EAAA,IAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,I3B+gFJ,a2B1gFE,4B9BZI,wC8BgCN,iBAAA,EAmEM,aAAc,EAAA,EAAA,KAnEpB,SAAA,EAAA,EAAA,KAsEQ,KAAA,EAAc,EAAA,K3Bs7ElB,c2Br7EI,G9BvGF,aAAA,4B8BgCN,yCA8EM,iBAAc,EA9EpB,aAAA,EAAA,EAAA,KAiFQ,SAAA,EAAc,EAAA,KACd,KAAA,EAAA,EAAiC,K3Bi7ErC,cAAe,G4B9mFnB,aAAA,kCAZA,yCACA,QAlFsB,MAmFtB,iDACA,QAAe,M3B84Ef,aAAA,GDgPA,aWphFY,kCiBxGZ,0CAEE,QAAA,MAKF,kDAxBA,QAAA,MACA,aAnDa,G5BssFf,c4B5nFE,SAAA,S5B8nFA,Q4BtpFA,G5BupFA,M4BtpFA,Q5BupFA,O4BtpFA,Q5BupFA,qCACE,QAAS,E6B3rFX,oBAAA,oBAZA,MAAA,QACA,oBAEA,MAAA,OAEA,IAAA,MACA,UAAA,MACA,YAAA,EACA,cAAe,qBAOb,MAAA,KACA,IAAA,MAJF,UAAA,IAQM,YAAA,E7BisFR,OACE,Q6BlsFM,a7BmsFN,Q6BlsFM,U3BPO,M2BFb,cAAA,E7B6sFA,U6BrsFM,M7BssFN,Y6BrsFM,EATN,YAAA,O7BgtFA,O6BxsFM,Q7BysFN,W6BxsFM,QATN,MAAA,Q7BmtFA,e6B1sFM,WAAA,Q7B4sFJ,MAAO,Q8B9tFT,iBAnCA,WCIoB,QDHpB,MAAA,QACA,eACA,WAAA,QAgCA,MAAA,Q9BquFA,e8BruFA,WAAA,QAMQ,MAAA,QANR,aAMQ,WAAA,QANR,MAAA,Q9B4uFF,UACE,O8BvuFQ,K9BwuFR,cAAe,K8BjuFf,cAAA,EAxCA,iBAAkB,QAClB,kCACA,iBAAS,QACT,oCACA,iBAAA,Q9B4wFA,kC8BnuFA,iBAAA,QnB2MA,kCACA,iBAAQ,QACR,gCACA,iBAAA,QX4hFF,gB8BzwFE,SAAS,SACT,QAAA,MACA,MAAA,GACA,OAAA,KACA,iBAAA,QEyEA,qBApFA,SAAA,SACA,IAAA,IACA,KAAA,IACA,kBAAA,qBAEA,cAAA,qBACA,UAAe,qBACf,OAAA,EhCwxFA,UgCxxFA,OhCyxFA,YgCzxFA,IhC0xFA,MAAO,QgCzxFP,YAAA,OhC4xFF,QgC3sFE,SAAA,SA5EA,OAAA,MACA,WAAM,QACN,cAAO,QAEP,iBAAA,QACA,OAAA,QACA,oBC9BoB,KDgCpB,iBAAA,KACA,gBAAA,KAAA,YAAA,KAEA,iBAAA,KACE,aAAA,KhCyxFJ,agCptFE,SAAA,SrBmIA,IAAA,EACA,KAAA,EACA,QAAA,aXolFA,UWplFA,KXqlFA,OWrlFA,MqBlMA,iBAAO,QACP,mBAAU,IAAA,IAAA,YAEV,WAAA,IAAA,IAAqB,YACrB,yBACA,mBCrC2B,IAAA,GAAA,ODuC3B,WAAA,I9BmCe,GAAA,OFqvFjB,egCtxFE,SAAA,SACA,IAAA,IhCwxFA,kBgCxxFA,iB/B8hFA,cAAA,iBUl5EE,UAAU,iBqB1IZ,KAAA,EhC0xFA,QgCzxFE,EAGF,OAAA,ahCwxFA,OgCvxFE,KhCwxFF,QgCxxFE,ahCyxFF,MAAO,OgCxuFP,OAAA,OhC0uFA,cAAe,EgCtxFf,iBC1C4B,QD2C5B,mBAAmB,IAAA,IAAA,YhCwxFnB,WAAY,IAAI,IAAK,YgCvuFrB,iBAAA,aA7CA,aAAA,aACA,sCACA,QAAA,EACA,qBACA,iBAAA,QhCuxFA,2BACE,mBgCxxFF,IAAA,GAAA,OAEA,WAAA,IAAA,GAAA,OACE,OAAM,iBACN,OAAA,ShCyxFJ,iBACA,kBACE,QgCrxFQ,IhCsxFR,OgCrxFE,YhCuxFJ,iBACE,QgCrxFE,ahCsxFF,MgCtxFE,MhCuxFF,OAAQ,QACR,OAAQ,EAAE,QkCnqFV,kBAAA,YACE,cAvMgB,YAoDlB,UAAkB,YAClB,8BACA,IAAA,EAGA,MAAA,MACA,WAAA,KACA,gCAEA,SAAA,SlCszFE,IkCtzFF,ElCuzFE,KkCvzFF,IlCwzFE,MkCxzFF,OlCyzFE,OAAQ,OkC1qFV,kBAAA,iBA1IA,cAAkB,iBAClB,UAAgB,iBlCwzFlB,QkC1qFE,SAAA,SAnIA,cAAA,KACA,QAAA,EACA,UAPiC,QAQjC,YAjFkB,IAmFlB,MAAA,QACA,oBhC9DmB,KgC+DnB,iBAAA,KAAA,gBAAA,KAGA,YAAoB,KACpB,OAAA,KlC+yFF,cACE,SkC1yFE,SAIF,cAAA,ElCwyFA,QkCvyFE,ElCyyFJ,eACE,SkCtyFE,SlCuyFF,QkCtyFE,MlCuyFF,MkCtyFE,KlCuyFF,OkCryFE,KlCsyFF,ckCtyFE,ElCuyFF,WkCtyFE,QlCuyFF,mBkCtyFE,IhC5EW,KAAA,SFm3Fb,WkCtyFE,IAAA,KAAA,SlCuyFF,YkCvyFE,QlCwyFF,MkCvyFE,QAIF,OAAA,QlCqyFA,qBkCryFA,OAAA,ElCuyFA,sBkC9xFA,SAAA,SACE,IAAA,OACA,KAAA,OjC0hFF,QAAA,MU/9EE,MAAA,OXuuFA,OAAQ,OkC3sFV,kBAAA,mBA7EA,UAAkB,mBAClB,cAAQ,EACR,WAAA,QlC2xFE,mBkC3xFF,IAAA,KAAA,SlC4xFE,WkC5xFF,IAAA,KAAA,SlC6xFE,QAAS,GkC7sFX,6BA3EA,WAAmB,QACnB,oCAEA,KAAA,QlC0xFA,8BACE,OAAQ,YkC7sFV,QAAA,GAvEA,kDAEA,QAAA,ElCuxFF,eAAgB,iBkC5sFd,SAAA,SAvDA,IAAA,IAEA,kBAAA,iBACE,cAR+B,iBAS/B,UAhLuB,iBlCs7F3B,eACE,KkClwFE,GlCmwFF,QkClwFE,KlCmwFF,mCkCjwFE,QAAA,MlCowFJ,iBACE,MAAO,IkCttFP,qCA3DA,QAAA,KlCqxFF,aACE,OkClxFE,OlCmxFF,4BkC/wFA,MAAA,KACE,OAAA,OACA,UAAA,QlCixFF,mCkC/wFE,IAAA,OAGF,KAAA,OACE,MAAA,KlC+wFA,OAAQ,KkChuFV,iDA/DA,KAAA,QlCmyFF,cACE,OkChyFE,QlCiyFF,6BkC7xFA,MAAA,OACE,OAAA,QACA,UAAA,OlC+xFF,oCkC7xFE,IAAA,OAGF,KAAA,OACE,MAAA,QlC6xFA,OAAQ,QmC9rFV,kDA9GA,KAAA,KnCgzFF,cmC7yFE,OAAA,OAxFA,6BnCw4FE,MAAO,KACP,OAAQ,OmCt4FR,UAAA,KnCw4FF,oCmCn4FA,IAAA,OACE,KAAA,OACA,MAAA,KnBlDA,OAAA,KhBw7FF,kDmCh4FE,KAAA,QnCm4FJ,MACE,gBEl9Fa,SiCwFb,MAAA,KnC43FA,cAAe,KACf,cmCz3FI,EnC23FJ,MACA,MmCh4FA,MnCi4FE,OAAQ,IAAI,MAAM,QmCv3FhB,iBAAA,QnCy3FJ,QmCv3FI,QAAA,MAAY,QAAA,QAKhB,YAAA,InCq3FA,MmCl3FI,WAAA,QAtEA,MAAA,QnC27FJ,MmCz7FM,WAAA,QA+EF,MAAA,QnC82FJ,SADA,SAEE,WmC/6FA,ItC+EI,SGm2FN,SADA,SADA,SmC3vFE,QAAA,MAAA,QAAA,QACE,YAAa,IAIjB,WAAA,KAIA,SnCyvFA,SAEE,QAAS,MAAO,QAAS,QAC3B,yBmCzvFE,cAAc,EAGhB,iBAAA,QnCyvFA,sBACE,iBAAkB,QmC1uFpB,yBAvGA,cAAc,IAAA,MAAA,QACd,iBAAW,QnCq1Fb,aAAc,kCmC70FV,kBACE,QAAA,KnC+0FJ,kBmCz0FE,QAAA,KAOA,enCq0FF,emC30FI,eAOA,QAAA,MnCu0FJ,emCh0FI,WAAA,GnCm0FN,amCnvFE,QAAA,MACE,MAAA,KnCqvFF,WAAY,KAEd,2BoCphGE,iBAToB,QpCgiGtB,2BoClhGE,iBAVsB,QpC+hGxB,2BoC5gGI,iBlCDW,QFghGf,uDACE,iBEjhGa,QFmhGf,cACE,WoC9gGM,KpCghGR,OACE,QoCjhGM,aATN,UAAA,MpC4hGA,QoCphGM,KpCqhGN,coCphGM,IATN,UAAA,MpC+hGA,WoCvhGM,OpCwhGN,WoCvhGM,QpCwhGN,MAAO,QqCp+FP,eA7CA,WAAA,QACA,MAAA,Q1ByGA,iBAEE,WAAA,QACA,MAAA,QX26FF,eACE,WWz6FE,QX06FF,MAAO,QACT,eW16FI,WAAA,QX46FF,MW56FE,QX66FJ,aWz6FA,WAAA,QACE,MAAA,QX46FJ,aACE,OqC5hGE,EAAA,EAAA,KAAA,ErC6hGF,WqC5hGE,KACe,oBrC4hGjB,qBqCzhGI,QAAA,MAQE,QAAA,IrCohGJ,mBqCnhGwB,EAClB,wBAzDuB,EA0DvB,WAAU,ErCohGhB,0BqC7jGiC,ErC8jGjC,cqCnhGM,EAUR,eAAA,EACE,MnC1Ec,EFqlGhB,oBACE,MqCzgGE,KAMJ,gBAII,MAAA,KACA,UAAA,SrCkgGF,MAAO,QsCzhGT,OAAA,QA1CA,eAAkB,UAClB,wCACA,SAxBa,SA0Bb,OAAA,EAAA,OACA,QAAA,EAiBA,QAAA,IACA,MAAA,QAfA,eACE,MAAA,QAGF,qBACE,gBAAgB,UA6BlB,uBApBA,MAAA,QACA,OAAA,YtC6jGF,SACE,SsC9jGA,SAmBA,OAAA,EAAA,EAAA,KAAA,EtC6iGA,QsCjkGA,KtCkkGA,OsCjkGA,IAAA,MpCzBa,mBoC4Cb,cAAA,EtCgjGA,iBsCpkGA,KtCqkGA,MsCpkGA,QAmBA,sBApBA,WAAA,EtCwkGA,qBsCpjGA,cAAA,EtCsjGA,iBsCpkGA,iBAAA,QACA,MAAA,QtCskGA,mBsCzjGA,iBAAA,QAfA,MAAA,QtC2kGA,iBsCzkGA,iBAAA,QACA,MAAA,QtC2kGA,iBuC5iGA,iBAAA,QAvDE,MAAA,QAAA,eAAA,iBAAa,QAAb,MAAA,QACA,eAAA,YAAA,MAAA,cAAA,MvC2mGA,euC3mGA,MvC4mGA,auC5mGA,MACA,eAAA,YAAA,KvC8mGA,cuC9mGA,KvC+mGA,euC/mGA,KAGF,aAAA,KvC+mGF,MuC1mGE,QAAA,YACA,QAAA,avC4mGA,QuC5mGA,YAEA,QAAA,KACA,mBrCtBa,SqCwBb,sBAAA,OvC2mGA,uBuC1mGkB,OvC2mGd,mBAAoB,OuCjkGxB,eAAA,OAhCE,iBAAA,EAAA,kBAAA,EAAA,kBAAa,EAAb,UAAa,EACb,cAAA,KAAA,OAAA,IAAA,MAAA,QvCwmGF,cuCxmGE,EvCymGF,WuCzmGE,QAGF,mBrCPmB,KqCQnB,WrCpDkB,KqCsDlB,SAAA,OvCumGA,MuCtmGE,QvCumGF,kBuC3kGA,cAAA,EvC8kGF,cACE,QuClmGE,YvCmmGF,QuCnmGE,aAGF,QAAA,YAEA,QAAA,KvCimGA,iBuChmGkB,EvCimGlB,aAAc,EAAE,EAAE,KuC9kGlB,SAAA,EAAA,EAAA,KACE,KAAA,EAAe,EAAA,KvCglGjB,QAAS,KwCxoGT,WAAA,QA5BA,0BACA,cAAW,ExCwqGb,cwCnqGE,iBAtCqB,EAwCrB,aAAA,EAAA,EAAkB,KAClB,SAAA,EAAA,EAAA,KACA,KAAA,EtC4Ce,EAAA,KsC3Cf,QAAA,KAEA,0BAIA,cAAA,ExCiqGF,YACE,WwC7pGE,IxC+pGJ,ewCppGI,SAAA,SAEI,QAAA,GxCqpGN,QAAS,KwCvpGP,MAAA,MAEI,QAAA,KxCwpGN,WAAY,OwC1pGV,OAAA,IAAA,MAAA,QAEI,cAxCM,ExCmsGZ,iBAAkB,QyC/jGlB,UAAA,KAnFA,0BACA,QAAA,M9BoFA,uBAEE,QAAA,MACA,WAAY,QXkkGhB,oBACE,MAAO,MAET,qBACE,MWlkGI,MXokGN,qBACE,MWhkGE,MXkkGJ,YACE,YyC9pGE,EzC+pGF,cyC9pGE,KAMe,mBzCypGjB,oByCvpGI,QAAA,MzCypGF,QyCvpGI,I5C+EA,mBAAA,E4C5FN,wBAAA,EAuBM,WAAA,EAMN,0BAAA,EzC4oGE,cAAe,EyC1oGf,eAAc,EACd,MAAA,EzC4oGF,mByC1oGE,MAAA,KzC4oGF,eACE,aAAc,SACd,cyC3oGE,EA0CJ,UAAA,QA/BA,QAAA,KvC/GgB,2BuCgHhB,0BACA,QAAA,aACA,aAAA,4BA4BA,eApBA,QAAA,czC6nGA,cACA,mByC1nGA,QAAA,MzC4nGE,QyC3nGA,SAAA,QAeF,cAAA,EANA,MAAA,QACA,oBACA,yBzCqnGI,WAAY,QyChmGd,qBzCkmGA,QAAS,SAAU,QyChmGjB,WAAA,QACA,MAAA,QACA,OAAA,QzCkmGJ,sByC/lGE,QAAA,SAAA,QzCimGA,MAAO,QyC/lGL,OAAA,YACA,4BACA,WA5HyB,IzC6tG7B,6B0C9oGA,QAAA,SAAA,QAnGA,QAAA,QACA,MAAA,Q1CqvGF,+BACA,sCACE,QAAS,a0CjpGT,aAAA,MA9FA,QAAA,I1CmvGF,0BACA,iC0C/uGE,QAAA,aAEA,YAAA,MACA,QAAA,I1CivGF,S0C7uGE,SAAA,S1C+uGA,Q0C9uGE,aAIA,cAAA,OAAA,IAAA,Q1C4uGF,YW5wGA,IX6wGA,OW5wGA,KX8wGF,SACE,SW3wGA,SX4wGA,IW1wGA,sBX2wGA,QWpwGE,KXqwGF,UWpwGE,MXqwGF,Q0ClvGI,OAGF,cAAA,E1CivGF,iB0ChvGa,Q1CivGb,U0ChvGI,I1CivGJ,M0CjvGI,Q1CkvGJ,iB0C7uGE,SAAA,S1C+uGF,wBW1xGA,QAAQ,MACR,MAAA,EAEA,OAAA,EACA,aAAA,MAEA,aAAW,OAGT,QAAA,GACA,iBAAA,E+BmCE,aAAS,YAAA,YAAA,QACT,OAAA,KAGF,qCACE,KAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAKF,qB/BzDF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,OAEA,QAAA,GAWE,oBAAqB,EACrB,aAAA,QAAA,YAAA,Y+BwCE,IAAA,KAGF,OAAA,K1CuvGF,kC0CrvGI,KAAA,IACA,kBAAA,iBAAA,cAAA,iBAAA,UAAA,iBAKF,sB/BtEF,QAAA,MACA,MAAA,EACA,OAAA,EAEA,aAAA,MACA,aAAA,OAEA,QAAA,GAeE,mBAAoB,EACpB,aAAA,YAAA,YAAA,YAAA,Q+BiDE,KAAA,K1C4vGJ,mC0CxvGE,OAAA,KACE,IAAA,IACA,kBAAQ,iBACR,cAAA,iBAAA,UAAA,iB1C2vGJ,uB0CvvGA,QAAA,MACE,MAAA,EACA,OAAQ,EAGV,aAAA,MACE,aAAW,OACX,QAAS,GAGX,kBAAA,EACE,aAAS,YAAA,QAAA,YAAA,YACT,MAAA,KAGF,KAAA,K1CmvGA,oC0CjvGE,OAAA,K1CmvGA,IAAK,I2ClvGP,kBAAA,iBAxFA,cAAgC,iBAChC,UzCTa,iByCUb,2BAGE,OAAA,KACE,IAAA,I3C20GJ,8B2Cp0GA,OAAA,IACE,IAAA,K3Cs0GF,4B2Cn0GA,KAAA,IACE,MAAA,K3Cq0GF,6B2CvvGA,KAAA,KAlEA,MAAA,I3C6zGF,W2CzzGE,YAAA,EACA,WAAA,QAEA,gBAAA,KACA,sCACA,OAAA,Y3C2zGF,yCACE,c2CxzGE,E3C0zGJ,uC2CjzGI,cAAA,E3CozGJ,iBACE,S2ClzGI,S3CmzGJ,Q2ClzGI,M3CmzGJ,Q2ClzGI,QAnG0B,KAsG5B,OAAA,IAAA,MAAA,Q3CizGF,c2Cn5GwB,E3Co5GxB,UAAW,O2C1wGX,YAAA,EA3BA,MAAA,QACA,6CAEA,cAAA,IAAA,MzCpGkB,QyCqGlB,cAAgB,EAChB,uBAAA,uBAEA,iBzC5Fa,QyC8Fb,yBACE,SAAA,S3CqyGA,IAAK,I4C10GP,MAAA,KApFA,WAAA,OAAA,QAAA,IAAA,oCAAA,QAAA,I5Cq6GF,mBACE,Q4Cl6GE,K5Cm6GF,Q4Cn6GE,KAGF,OAAA,IAAA,MAAA,Q5Ck6GA,c4Cj6GE,E/CwJI,iBAAA,QG2wGN,M4C/5GE,Q5Cg6GF,0CACE,c4C/5GI,IAAA,MAAe,Q5Ci6GvB,c4Cv1GE,QAAA,YAhEE,QAAA,aAAA,QAAA,Y5C25GF,Q4C35GE,K5C45GF,c4C55GE,KAOF,kBAAA,OACE,cAAA,OAGF,UAAA,O5Cq5GA,kB4Cj5GA,UAAA,K5Cm5GA,a4Cl5GE,kC/CwHI,8B+CrHN,kBAAA,KAwBA,cAAU,KACV,UAAA,M5C43GF,sBACE,iB4C13GE,E5C23GF,a4C13GE,EAAA,EAAA,KA7BF,SAAA,EAAA,EAAA,KAoCE,KAAA,EAAA,EAnFkC,KAsDlC,kCACE,cAAA,K5Co5GJ,oDACE,a4Cr5GE,K5Cs5GJ,kCACE,cAAe,E6Cr0GjB,aAAA,kCArGA,uC7C66GI,QAAS,E6Cp0Gb,eAAA,KApGA,mBAAkB,KAClB,wBAAS,KACA,WAAA,KACT,UAAA,KACA,2C7C26GM,MAAO,M6Cv0Gb,mCA/FA,iBAAW,EACX,aAAA,EAAkB,EAAA,IAGhB,SAAA,EAAA,EAAA,IACQ,KAAA,EAAA,EAAA,I7Cw6GZ,O6C10GE,SAAA,S7C60GF,iB6Cz0GE,SAAA,SAtFA,OAAA,EACA,OAAA,EACA,WAAS,K7Ck6GT,SAAU,OAEZ,a6C95GE,MAAA,KACA,SAAA,SACA,mCACA,IAAA,EAEA,KAAA,E7Cg6GF,c6C/0GE,OAAA,E7Ck1GF,aW7wGE,MAAA,KX+wGA,UW/wGA,KXgxGA,OWhxGA,EXkxGF,e6C95GE,SAAA,S5CimGA,OAAA,EDgUA,MWj0GE,KkC9FF,cAAA,E7Ci6GA,Q6C95GE,K7C+5GF,iBAAkB,kB6Cz1GlB,MAAA,Q7C41Ge,YAAjB,gB6Cv1GE,SAAA,SAhEA,IAAA,IACA,kBAAmB,iB7C05Gf,cAAe,iB6Ct1GnB,UAAA,iBA9DA,QAAA,GACA,QAAA,KACA,MAAA,QACkB,mCAAlB,uC5CwlGA,QAAA,EUlhGY,mBAAA,kBAAA,kBAAA,uBAAA,sBXk1GZ,sB6Ct5GA,iBAAA,kB7Cy5GF,gBACE,K6Cv5GE,E7Cy5GJ,YACE,K6Cr5GE,K7Cs5GF,M6Cr5GI,E7Cu5GN,eACE,SAAU,S8C7/GV,WAAA,M9C+/GA,cAAe,M8ClhHf,WAAA,OACA,sCACA,QAAA,EACA,sBACA,MAAA,OAEA,OAAA,O9CmhHE,OAAQ,MACR,cAAe,IACf,iBAAkB,QAClB,4BACE,iBAAkB,QACpB,gCACE,iBAAkB,QAGxB,YADA,kBAEE,S8CthHE,S9CuhHF,O8CthHE,EAKF,cAAA,K9CmhHA,eAAgB,IAChB,S8C5gHM,OnCuHN,kBoC3GA,mBACA,mB/CugHA,kB+C1gHA,wB/CmgHA,yB+Cl7GA,yBAhFA,wBpC+GE,SAAA,SAGE,IAAA,EX05GF,KW15GE,EX25GF,MAAO,KW15GL,OAAA,KX65GJ,uBADA,6BAEE,eW95GU,OXg6Gd,MACE,OAAQ,E+C7gHR,OAAA,IAAA,MAAA,QACE,WAAA,QACA,gBAAW,KACA,aAAX,c/C+gHA,QAAS,M+C/7GX,QAAA,IAEI,mBAAU,EAFd,wBAAA,EAKM,WAAA,E/C+7GJ,0BAA2B,E+Cz7G7B,cAAA,EACE,e7C1Ic,E6CyIhB,MAAA,E/C67GA,a+C77GA,MAAA,K/Cg8GF,kB+Cn7GE,QAAA,MA3FA,MAAA,KAEA,MAAA,K/CihHF,kBACE,Q+C9gHE,E/C+gHF,wB+C7gHE,WAAA,I/CghHJ,cACE,W+C/gHE,Q/CghHF,mBACE,M+C/gHE,QAGF,yBAAA,yBAEE,WAAA,Q/C8gHN,Y+Ch8GE,MAAA,KAlEA,cACA,QAAA,MACA,QAAA,Q7CjEa,O6CkEb,UAAA,OACA,YAAA,EAAA,MAAA,Q/CsgHE,qC+Cp8GF,QAAA,EA3DA,oBACA,WAAgC,Q/CkgH5B,MAAO,Q+Cp8GX,oBAAA,kCAvDA,WAAa,QACb,MAAA,Q/C+/GF,cACE,OAAQ,IAAI,MAAM,QgD5kHlB,WAAA,EAzBA,WAAA,QACA,MAAA,QACA,mB9CwCkB,IAAA,IAAA,K8CtClB,WAAA,IAAA,IAAA,KhDwmHF,uBACE,OgDvmHA,IAAA,MAAA,QAEA,YAAA,EAqBA,YAjBA,QAAA,KAAA,QAAA,KAAA,sBAAA,QAAA,MhD0mHF,WACE,QAAS,agDpmHT,UAAA,KhDsmHA,cgDrmHE,KhDsmHF,OAAQ,IgDtmHN,MAAA,QhDumHF,cAAe,EiD1xGf,mBAAA,EAAA,EAAA,EAAA,IAAA,kBA1UA,WAAU,EAAA,EAAA,EAAA,IAAA,kBACV,YAAS,EjDwmHX,YiDnmHI,mBAAa,mBAAA,IAAA,SAAb,WAAA,mBAAa,IAAA,SAAb,WAAA,WAAa,IAAA,SAAb,WAAA,WAAa,IAAA,QAAA,CAAA,mBAAA,IAAA,SACb,kBAAA,kBjDwmHA,mBiDxmHA,EAAe,EAAA,IAAA,IAAA,oBAAf,WAAA,EAAe,EAAA,IAAA,IAAA,oBhD0xGjB,kBU9oGE,mBAAU,KsCrIZ,WAAA,KjDumHF,MACE,QiDrmHE,EjDsmHF,OiDrmHE,EjDsmHF,WiDrmHE,KAIF,SAAA,SjDmmHA,QAAS,YACT,QAAS,aACT,QAAS,YACT,QiDlmHE,KAGF,kBAAA,KACE,cAAA,KA2SF,UAAA,KjDuzGA,gCACE,QiDvgHE,EjDygHJ,cADA,QiDvgHI,YAAA,EAAA,gBAAA,KjD2gHF,QiD3gHE,MjD4gHF,QiD5gHE,MAAA,KjD+gHJ,QACA,aiDl0GA,YjDg0GA,aiDngHI,cAAA,EjDugHJ,YiDvgHI,QAAA,ajDygHJ,MiDzgHI,iBjD0gHF,kBiD1gHE,KA2EE,cAAA,KjDi8GI,UAAW,KACnB,mBAAoB,WACpB,sBAAuB,OACvB,uBAAwB,IiDh8GhB,mBAAgB,IAhLxB,eAAA,IjDmnHF,eiDlnHI,kBAAA,OAAA,cAAA,OAAA,UAAA,OA2KE,mBAAA,SjD48GJ,sBAAuB,OACvB,uBAAwB,OACpB,mBAAoB,OAChB,eAAgB,OiDxgHxB,kCAAmB,oCjD6gHnB,oCiD51GF,+BApHU,iCA7DR,iCjD8gHE,WiD9gHF,KjD+gHF,kBACE,iBiD5gHA,EAGF,aAAA,EAAA,EAAA,IACE,SAAU,EAAA,EAAA,IpDpCN,KAAA,EAAA,EAAA,IGmjHN,kCiDrjHmB,oCjDsjHnB,oCAHA,+BADA,iCAEA,iCAGE,WiDtjHE,KjDujHJ,aACE,kBiDxjHE,OjDyjHF,oBiDzjHE,OA8MJ,eAAA,OApMI,YAAA,OjDkjHF,mBACE,YiDnjHA,KjDojHF,eiDnjHE,QAAA,EjDqjHJ,aiDrjHI,4BjDsjHF,wBACE,kBiDvjHA,KAjGF,cAAA,KACE,UAAa,KAAb,mBAAA,WjD2pHA,sBiD3pHa,OjD4pHb,uBiD5pHa,IADf,mBAAA,IACE,eAAa,IjD+pHf,sBACE,kBiDhqHA,OjDiqHI,ciDjqHJ,OpDsFE,UAAA,OoD6MN,mBAAA,SA/MI,sBAAe,OjDilHf,uBiDjlHe,OjDklHX,mBiDllHW,OACf,eAAA,OjDmlHF,yBiDnlHE,iBAAA,EjDqlHA,aiDrlHA,EAAA,EAAA,IjDslHI,SiDtlHJ,EAAA,EAAA,IA8MJ,KAAA,EAAA,EAAA,IjD04GE,uBACE,iBiD/kHA,EjDglHA,aiDhlHA,EAAA,EAAA,IACA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,KjDklHJ,aiDllHI,4BjDmlHF,uBACE,kBiDplHA,KAjGF,cAAA,KACE,UAAa,KAAb,mBAAA,WjDwrHA,sBiDxrHa,OjDyrHb,uBiDzrHa,IADf,mBAAA,IACE,eAAa,IjD4rHf,qBACE,kBiD7rHA,OjD8rHI,ciD9rHJ,OAmSJ,UAAA,OAzJE,mBAAiC,SACjC,sB/CpI4B,O+C4I5B,uBAAA,OACE,mBAAa,OAAb,eAAa,OAAb,wBAAA,iBAAa,EADf,aAAA,EAAA,EAAA,IACE,SAAA,EAAA,EAAa,IAAb,KAAA,EAAA,EAAA,IAAA,sBAAA,iBAAa,EA8Cf,aAAA,EAAA,EAAA,IAEI,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,KjD2gHN,aACE,aiD5gHI,EjD6gHJ,YiD7gHI,KjD8gHN,cACE,QAAS,YACT,QAAS,aACT,QAAS,YACT,QAAS,KiDhxHc,oBAAA,kBAoQnB,mBjD6gHN,iBiDpgHE,QAAA,YAEI,QAAA,aAAA,QAAA,YAAA,QAAA,KjDugHN,qBiDvgHM,4BjDwgHJ,mBiDxgHI,WAGF,sBAAA,OjDugHF,kBAAmB,IAAI,OACnB,cAAe,IAAI,OACf,UAAW,IAAI,OAEvB,uBADA,yBiD9/GA,yBAEI,8BAFJ,gCAEI,gCAAA,aAAA,OjDkgHN,sBiDlgHM,6BjDmgHJ,mBiDngHI,WAMF,sBAAA,OjD+/GF,kBAAmB,IAAI,OACnB,cAAe,IAAI,OACf,UAAW,IAAI,OAEvB,wBADA,0BAEA,0BACA,+BiD7/GM,iCjD8/GN,iCiD5/GM,YAAA,OAMN,oBAAA,2BAEI,mBAAA,SAAA,sBAAA,OAAA,kBAAA,OAAA,OAAA,cAAA,OAAA,OAAA,UAAA,OAAA,OjD6/GJ,sBiDv/GE,wBjDw/GF,wBACA,6BADyB,+BAEzB,+BiDl/GM,mBAAA,QAAA,oBAAA,QAAA,WAAA,QACA,cAAA,OACA,WAAA,OAqBR,uBAAA,8BALA,mB/CnWgB,S+CoWhB,sB/C3Ua,O+C+Ub,kBAAA,OAAA,OALA,c/CnWgB,OAAA,O+CoWhB,U/C3Ua,OAAA,O+C8DT,yBAiRJ,2BAjRI,2BjD2vHF,gCiD3vHE,kCjD4vHF,kCiDpvHE,mBAAA,QACE,oBAAa,QAAb,WAAa,QAAb,cAAA,OAAA,WAAa,OjDyvHnB,mBiDxvHM,WAAA,QjD0vHJ,MiD1vHI,QjD2vHN,gBiDzvHM,WAAA,QjD2vHJ,MiD1vHM,QjD2vHR,iBACE,iBiD5vHM,MjD6vHN,wBiD7vHM,WAIJ,cAAA,MACE,gBAAc,WjD2vHpB,qBiDxvHM,QAAA,YjD0vHJ,QiDzvHM,aAmIF,QAAA,YjDwnHJ,QAAS,KACT,iBAAkB,IAClB,wBAAyB,SACrB,cAAe,IiDnnHX,gBAAiB,SAgH3B,iCA7JE,iB/C/H4B,M+CgI5B,wBAAgC,WA3E9B,cAAA,MACE,gBAAa,WjDgvHnB,8BiDhvHM,QAAA,MAAA,WAAA,MACA,0CAAA,WAAA,MjDuvHN,qCiDrvHM,uCjDsvHN,uCAHA,kCADA,oCAEA,oCAGE,WiDtvHM,MjDuvHR,0BiDrhHA,aAAA,KAbA,YAAA,EjDqiHA,sBiDliHA,QAAA,YACA,QAAA,ajDoiHE,QAAS,YiD55GT,QAAA,KAGM,iBAAA,OAAA,wBAAA,OAAA,cAAA,OAAA,gBAAA,OAzWJ,kCACE,iBAAa,MAAb,wBAAa,WAAb,cAAa,MAAb,gBAAa,WjD4wHnB,iBiD3wHM,QAAA,MAAA,KjD6wHJ,YiD7wHI,IjD8wHJ,YiD9wHI,EAEA,MAAA,QjD+wHR,qBACE,iBiD/wHQ,OjDgxHR,wBiDhxHQ,OjDixHJ,cAAe,OiDp6GnB,gBAAA,OACE,wBjDs6GA,QAAS,YkDp7HX,QAAA,avC0GA,QAAA,YACA,QAAA,KACA,iBAAA,OACA,wBAzBY,OA0BZ,cAzBa,OA0Bb,gBAAe,OAGf,oCACE,iBAAkB,MAClB,wBAAM,WACN,cAAO,MAEP,gBAAc,WX20HlB,iCACE,QWx0HE,KX00HJ,WACE,SWx0HE,SAWA,QAAA,aX+zHF,eW9zHI,OX+zHJ,MW9zHI,KX+zHJ,OAAQ,KACR,OAAQ,QkDv8HR,kBvCsGA,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAzBY,MA0BZ,MAAA,KACA,OAAA,IAGA,WAAA,QACE,mBAAkB,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QACZ,WAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QACN,QAAO,GXk2HT,wBW/1HE,WAAW,QACX,mBAnCU,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QAqCV,WT5EW,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QF66Hf,gBACE,SW/1HE,SAWA,QAAA,aXs1HF,eWr1HI,OXs1HJ,MWr1HI,KXs1HJ,OAAQ,KACR,OAAQ,QmDt5HR,uBAWI,SAAW,SnD84Hb,IAAK,EmDz5HP,KAAA,EAkBI,QAAA,MnD04HF,MAAO,KmD55HT,OAAA,IAsBI,WAAA,QnDy4HF,mBAAoB,EAAE,IAAI,EAAE,OAAO,CAAE,EAAE,KAAK,EAAE,QmD/5HhD,WAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QF6JE,QAAA,GACA,6BjDqwHA,WAAY,QmDn6Hd,mBAAA,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QFyJE,W/C/H4B,EAAA,IAAA,EAAA,OAAA,CAAA,EAAA,KAAA,EAAA,QF64HhC,mBmD/7HE,MAAA,KnDk8HF,kBACE,QWz8HA,MAAc,KX28HhB,wCACE,QWx8HA,MAAA,KX08HF,6CACE,aWr8HE,EXs8HF,YWr8HE,KXu8HJ,yDACE,amDt8HI,KnDu8HJ,YmDt8H0B,EAI1B,wEACE,SAAA,SACA,+EnDq8HA,QAAS,MmDl8HX,MAAA,EACE,OAAA,EACA,aAAU,MnDo8HV,aAAc,ImD/7HhB,QAAA,GAuCM,oBAAA,EnD25HJ,amD35HI,QAAA,YAAyB,YnD45H7B,SmD55HI,SACA,IAAA,InD65HJ,WmD75HI,KnD85HJ,MmD95HI,KAYN,iEACE,MAAA,KnDq5HF,KAAM,KAER,kEACE,MAAO,KmDh5HP,KAAA,KnDm5HF,0EmDh5HI,kBAAmB,eAEnB,cArGqC,eAsGrC,UAtGqC,eAwGrC,yBAAe,IAAA,IARjB,qBAAA,IAAA,IxC3FA,iBAAc,IAAA,IXs/HhB,6BACE,SWn/HA,SXq/HF,sBACE,aWh/HE,KXk/HJ,gBACE,SmD74HI,SnD84HJ,ImD74HI,EnD84HJ,MAAO,EmDz4HP,MAAA,KACE,OAAA,KnD24HF,OmD34HE,QnD44HF,uBmD34HE,QAAA,MnD64HA,MmD74HA,EnD84HA,OmD94HA,EnD+4HA,aAAc,MmD54HhB,aAAA,IxCgDA,QAAA,GACA,oBAAwB,EACxB,aAAA,QAAyB,YAAA,YACzB,IAAA,EACA,OAAA,EACA,OAAA,KXg2HF,2CACE,kBAAmB,WoDv/HnB,cAAA,WACE,UAAkB,WAClB,yBAAgB,IAAA,IAFlB,qBAAA,IAAA,IAKI,iBAAc,IAAA,IpDy/HpB,qBACE,SoDt/HI,mBpDu/HJ,MAAO,coDl/HP,OAAA,cAEI,QAAA,YACA,SAAA,iBpDm/HJ,KAAM,wBoDt/HN,YAAA,iBAQI,OAAA,YpDk/HN,coD/+HM,SAAA,SAEA,SAAA,OACA,iBACA,QAAA,MAAA,6BAAA,mBAAA,OAAA,IAAA,WAAA,OAAA,IpDo/HN,aACE,QoDj/HM,MAAc,KpDk/HpB,WoDj/HM,QpDm/HR,iCoDvgIE,SAAA,SpDygIA,IoDj/HM,EpDk/HN,KoDl/HM,KpDm/HN,QAAS,GoD3gIT,MAAA,KpD6gIA,WoDh/HM,QpDi/HN,mBAAoB,kBAAkB,KAAM,OoD9gI5C,WAAA,kBAAA,KAAA,OHmJE,WAAA,UAAiC,KAAA,OACjC,WAAA,UGrNuB,KAAA,MAAA,CAAA,kBAAA,KAAA,OpDmlIzB,2CoDlhIA,QAAA,EAsCI,QAAA,MpD++HF,kBAAmB,kBoD/jIrB,cAAA,kBACE,UAAkB,kBAElB,4CzCDF,kBAAc,iBACd,cAAQ,iBACR,UAAS,iBXkkIT,mCW/jIA,QAAA,MAAA,KXkkIF,wCACE,aWrjIE,EXsjIF,YoDtkII,EpDwkIN,6CACE,WoDtkII,KAIJ,0CzCVA,SAAA,SACA,iDACA,QAAS,MAET,MAAA,EACA,OAAA,EAEA,aAAW,MAWT,aAAA,IACA,QAAA,GyCPA,mBAAW,EACX,aAAU,YAAA,YAAA,YAAA,QpD4kIV,SAAU,SoDzkIZ,IAAA,IzChBA,WAAc,KACd,MAAQ,KX6lIV,4DWzlIE,QAAA,MAEA,MAAA,EAeE,OAAA,EACA,aAAA,MyCLA,aAAW,IACX,QAAA,GpDklIF,mBAAoB,EoD7jIpB,aAAA,YAAA,YAAA,YAAA,QzCxCA,MAAA,KACA,KAAA,KXymIF,6DWrmIE,QAAA,MAEA,MAAA,EAeE,OAAA,EACA,aAAA,MyC+DI,aAAA,IACA,QAAA,GACA,kBAAA,EpD0hIN,aAAc,YAAY,QAAQ,YAAY,YqD7kI1C,MAAA,KACE,KAAA,KrDglIR,wCACE,QAAS,MqD1kIL,MAAA,EACE,OAAA,EACA,aAAW,MACX,aAAO,IrD4kIb,QAAS,GqDvkIL,kBAAA,EACE,aAAA,YAAkB,QAAA,YAAA,YAClB,QAAA,arDykIN,eAAgB,OqDtkIZ,aAAA,OrDykIN,kDWjoIE,IAAA,KAEA,MAAA,EACA,KAAA,KXmoIF,mDW7nII,IAAA,K0CiDI,MAAA,KACA,KAAA,ErDglIR,+CCpdA,SAAA,SU5hHI,cAAU,O0C3DZ,sDAUI,QAAA,MrDuiIJ,MAAO,EqDjjIP,OAAA,EAeI,aAAA,MACA,anDtIY,IF2qIhB,QAAS,GqDliIP,oBAAA,EACE,aAAa,QAAA,YAAA,YrDoiIjB,MAAO,IqDxjIP,KAAA,KJyFE,WAAA,KjDm+HJ,wCqD1lIM,QAAA,ErD6lIN,oBqDxlIQ,QAAA,MAAA,KrD2lIR,8BqDxlIU,WAAU,IrD0lIlB,MAAO,QAET,yBqDrlIU,QAAA,KAhER,2CACE,aAAsB,ErDypIxB,YAAa,EAEf,gDW9qIE,IAAA,EXirIF,2DW7qIE,IAAA,EAEA,MAAA,KAeE,KAAA,KXiqIJ,4DqD7pII,MAAA,KrD+pIF,KAAM,KAER,oCW1rIE,MAAA,KX6rIF,+CWzrIE,QAAA,MAEA,MAAA,EAWE,OAAA,EACA,aAAA,MXgrIF,aAAc,IH5jIR,QAAA,GwDlGF,kBAAA,ErDiqIJ,aqDhqIe,YAAA,QAAA,YAAA,YrDiqIf,MqDhqIM,KrDiqIN,KqDhqIM,IrDkqIR,gDACE,QqD5pIM,MrD6pIN,MqD5pIM,EAKF,OAAA,ErDypIJ,aqDxpIM,MrDypIN,aqDxpIM,IAGF,QAAA,GrDupIJ,mBWjtIc,EXktId,aWjtIQ,YAAA,YAAA,YAAA,QXmtIV,aWhtIE,4BXitIA,oEW9sIA,IAAA,KAGE,MAAA,EACA,KAAA,KX8sIF,qEqD5pIM,IAAA,KACA,MAAA,KAMF,KAAA,ErDypIJ,iEqDppIM,SAAA,SACE,cAAM,OrDspId,wEqDppIQ,QAAA,MAKF,MAAA,EACE,OAAA,EACA,aAAU,MAhElB,aAAA,IACE,QAAA,GAGF,oBAAA,E1CvBA,aAAc,QAAA,YAAA,YACd,MAAA,IACA,KAAA,KAEA,WAAA,KXwuIA,uDWruIA,IAAA,EXuuIA,kEWvtIE,IAAA,E0CEA,MAAA,KACA,KAAA,KAGF,mE1C7BA,MAAA,KACA,KAAA,KXovIA,2CWjvIA,MAAA,KXmvIA,sDWhvIA,QAAA,MAWE,MAAA,EACA,OAAA,EXwuIA,aAAc,MHpnIV,aAAA,IwDlGF,QAAA,GACE,kBAAS,EACT,aAAQ,YAAA,QAAA,YAAA,YACR,MAAA,KAKF,KAAA,IrDqtIJ,uDqDntIM,QAAA,MACA,MAAO,EAKT,OAAA,EACE,aAAA,MACA,aAAA,IAGF,QAAA,G1C1DJ,mBAAc,EACd,aAAQ,YAAA,YAAA,YAAA,SX2wIV,aWxwIE,4BXywIA,mEWtwIA,IAAA,KAGE,MAAA,EACA,KAAA,KXswIF,oEqDptIM,IAAA,KACA,MAAA,KAMF,KAAA,ErDitIJ,gEqD5sIM,SAAA,SACE,cAAM,OrD8sId,uEqD5sIQ,QAAA,MAKF,MAAA,EACE,OAAA,EACA,aAAU,MAhElB,aAAA,IACE,QAAA,GAGF,oBAAA,E1CvBA,aAAc,QAAA,YAAA,YACd,MAAA,IACA,KAAA,KAEA,WAAA,KXgyIA,sDW7xIA,IAAA,EX+xIA,iEW/wIE,IAAA,E0CEA,MAAA,KACA,KAAA,KAGF,kE1C7BA,MAAA,KACA,KAAA,KX4yIA,0CWzyIA,MAAA,KX2yIA,qDWxyIA,QAAA,MAWE,MAAA,EACA,OAAA,EXgyIA,aAAc,MqDjtIhB,aAAA,IA+CM,QAAS,GACT,kBAAQ,EACR,aAAU,YAAA,QAAA,YAAA,YrDqqId,MAAO,KqDhqIT,KAAA,IACE,sDADF,QAAA,MAII,MAAA,ErDiqIF,OAAQ,EqD7pIV,aAAA,MACE,aAAA,IADF,QAAA,GAII,mBAAkB,EAClB,aAAQ,YAAA,YAAA,YAAA,SrD+pId,0DACE,IqD7pII,KARJ,MAAA,ErDuqIA,KqD1pII,KrD4pIN,2BACE,MqDnpII,MrDopIJ,uCqD3qIA,MAAA,MrD8qIF,4BACE,SAAU,SqD9oIV,qCACE,SAAA,SACA,IAAM,IACN,MAAA,IACA,KAAA,KAEA,WAAa,KACb,6DAEA,IAAA,KACA,KAAA,KAEA,4DACE,MAAA,KA3LJ,KAAA,KrDy0IA,6DqDr0IA,MAAA,K1CvBA,KAAA,KXg2IF,qBACE,SW71IA,SX81IA,IW71IA,EX81IA,KW51IA,KX61IA,QW90IE,EX+0IF,QW90IE,KX+0IF,UqD70IE,MrD80IF,OqD70IE,IAAS,MAAA,QAGX,WAAA,QrD40IA,iCWx2IA,QAAQ,MAAA,KX02IR,0DWv2IA,MAAA,KXy2IA,qEWt2IA,QAAA,MAWE,MAAA,EACA,OAAA,E0C8KF,aAAA,MAwBM,aAAA,IAxBN,QAAA,GA6BI,kBAAW,EA7Bf,aAAA,YAAA,QAAA,YAAA,YAmCI,MAAA,KrDmpIF,KAAM,IsD30IR,sEACE,QAAA,MtD60IA,MAAO,EsDz0IT,OAAA,EACE,aAAA,MACA,aAAM,IACN,QAAO,GACP,mBA9DyB,EAgEzB,aAAW,YAAA,YAAA,YAAA,QACX,0CAEA,WAAA,KAAA,wBAEA,MAAA,KAEA,wCACA,QAAA,MtDy0IJ,oBACE,SsDr0II,OtDu0IN,uBACE,SsDn0II,SAxBJ,IAAA,EtD61IA,KsDj0II,EA5BJ,QAAA,GtD+1IA,MsD/zII,KtDg0IJ,OAAQ,KsDlgIR,mBAAA,QAAA,IAAA,IAAA,CAAA,WAAA,IAAA,KAvTA,WAAA,QAAkB,IAAA,IAAA,CAAA,WAAA,IAAA,KAClB,WAAA,sBtD4zIA,QAAS,EsDjgIT,WAAA,OA/SE,SAAA,OAOF,kCAOA,QAAA,EAAA,WAAA,QAAA,mCAAA,OAAA,QACA,2CtD0yIE,SsD1yIF,SAEA,wCrDg1HA,SAAA,MD4dF,oBACE,SsDnzIE,SASF,SAAA,OtD6yIF,YACE,SsDxyIE,MtDyyIF,QsDvyIE,GtDwyIF,mBsDvyII,kBAAA,IAAA,KtDwyIJ,WsDxyII,kBAAA,IAAA,KAKJ,WAAA,UAAA,IAAA,KtDqyIA,WsDpyIE,UAAA,IAAA,IAAA,CAAA,kBAA0B,IAAA,KtDqyI5B,4BsDryIE,OtDsyIM,oBsDtyIN,OtDuyIF,WAAY,QsDhhIZ,mCAvTE,QAAA,EAIF,+BAOA,QAAA,GAAA,sBAAA,WAAA,OAAA,kCACA,QAAA,GtDo0IE,0CsDl0IF,mBpDjIkB,EAAA,EAAA,KAAA,kBDo+HlB,WAAA,EAAA,EAAA,KAAA,kBDkeA,oBsD50IA,kBAAA,eACE,cArHsB,eA8HxB,UAAA,etDu0IF,qBACE,SsDl0IE,StDm0IF,QsDj0IE,GtDk0IF,mBsDj0II,kBAAA,IAAA,KtDk0IJ,WsDl0II,kBAAA,IAAA,KAKJ,WAAA,UAAA,IAAA,KtD+zIA,WsD9zIE,UAAA,IAAA,IAAA,CAAA,kBAA0B,IAAA,KtD+zI5B,4BsD/zIE,OtDg0IM,oBsDh0IN,OtDi0IF,WAAY,QsDriIZ,4CAjRE,QAAM,EACN,wCACA,QAAA,GACA,+BAII,WA9LM,OA+LN,2CtDszIJ,QsDtzII,GtDuzIJ,mDsDlzIQ,mBAAA,EAAA,EAAA,KAAA,kBAIF,WAAA,EAAA,EAAA,KAAA,kBtDizIR,6BACE,kBsDlzIM,eAJE,cAAA,eAQJ,UAAA,etDkzIR,esD7yIY,IAAA,EtD+yIV,KsD3yIU,EtD4yIV,OsD5yIU,KtD6yIV,WsD7yIU,KAuHR,2BAAA,MtDwrIF,MWh/IE,MXi/IF,kBWj/IE,mBXk/IE,cAAe,mBsD7jInB,UAAA,mBA7OE,8CACA,kBAAQ,mBACR,cAAY,mBACZ,UAAgB,mBAIZ,4EACA,kBAAA,eAAA,cAAA,eAAA,UAAA,eAKI,qDAIF,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBtDuyIR,kCACE,mBsDpyII,MAAA,MAAA,EAAA,KAA0B,MAAA,mBAA1B,WAAA,MAAA,MAAA,EAAA,KAA0B,MAAA,mBtDuyIlC,gBACE,IsD/xIU,EtDgyIV,MsDhyIU,EtDiyIV,OAAQ,KsD/sIN,WAAA,KtDitIF,2BW3gJE,MX4gJF,MAAO,MACP,kBAAmB,kBsDrlInB,cAAA,kBAzMQ,UAAA,kBACN,+CACA,kBAAW,kBACX,cAAgB,kBAIZ,UAlQM,kBAmQN,6EAAA,kBAAA,eAAA,cAAA,eAKI,UAAA,etD4xIV,sDACE,kBsD1xIM,mBtD2xIF,csD3xIE,mBAHE,UAAA,mBtDgyIV,mCACE,mBsD1xII,MAAA,KAAA,EAAA,KAA0B,MAAA,mBtD2xItB,WsD3xIJ,MAAA,KAAA,EAAA,KAA0B,MAAA,mBtD6xIlC,cACE,IAAK,EACL,KAAM,EsDxuIJ,MAAA,KtD0uIF,WWhiJE,KXiiJF,2BWjiJE,MXkiJF,OAAQ,MsD7mIR,kBAAA,mBAtKE,cAAS,mBACF,UAAA,mBACP,6CACA,kBAAgB,mBAIZ,cAtSM,mBAuSN,UAAA,mBtDmxIJ,2EACE,kBsDpxIE,eAKI,cAAA,eAGF,UAAA,etD+wIR,oDACE,kBsDhxIM,kBAHE,cAAA,kBAOJ,UAAA,kBtD+wIN,iCACE,mBsDhxII,MAAA,EAAA,MAAA,KAA0B,MAAA,mBAKtB,WAAA,MAAA,EAAA,MAAA,KAAA,MAAA,mBtD8wIZ,iBACE,OAAQ,EsDjwIN,KAAA,EtDmwIF,MW/jJE,KXgkJF,WWhkJE,KXikJF,2BAA4B,MsDpoI5B,OAAA,MA7GA,kBAAA,kBAAA,cAAA,kBAAA,UAAA,kBACA,gDtDsvIE,kBsDtvIF,kBAGA,cAAA,kBAEE,UAAA,kBAAA,8EAAA,kBAAA,eAAA,cAAA,eAIF,UAAA,etDovIA,uDACE,kBsDpvIA,mBtDqvII,csDrvIJ,mBAIF,UAAA,mBtDmvIA,oCACE,mBsDnvIA,MAAA,EAAA,KAAA,KAA0B,MAAA,mBAA1B,WAAA,MAAA,EAAA,KAAA,KAA0B,MAAA,mBzDrMtB,oByD0SA,kBAAA,KA1FN,cAAA,KAAA,UAAA,KtD+uIA,4BsD/uIe,OACf,oBArV0B,OtDqkJ1B,2CsD/uIgB,wCAAhB,mBAAgB,kBAAA,IAAA,KAChB,WAAA,kBAAmB,IAAA,KAMnB,WAAA,UAAA,IAAA,KtD4uIE,WsD3uIA,UAAa,IAAA,IAAA,CAAA,kBAAA,IAAA,KtD4uIf,wCACE,kBsDxuIA,etDyuII,csDzuIJ,etD0uIQ,UsD1uIR,etD2uIF,wCACE,kBsDxuIA,eAIF,cAAA,eACE,UAAA,etDuuIJ,asD/vIE,4BtDgwIA,iCACE,kBsDjwIF,KACA,cArV0B,KAsV1B,UAAA,KAAA,QAAA,GACA,mBAAmB,KAMnB,WAAA,KtD8vIE,WsD7vIA,QAIF,+CACE,QAAA,KtD2vIA,qDACE,kBsD5vIF,KAGM,cAAA,KACN,UA9YU,KAkZZ,oCACE,YAAA,MA0EI,qDAlGN,YAAA,MtDkxIA,kCACE,kBsDnxIF,KACA,cArV0B,KAsV1B,UAAA,KAAA,QAAA,GACA,mBAAmB,KAMnB,WAAA,KtDgxIE,WsD/wIA,QAIF,gDACE,QAAA,KtD6wIA,sDACE,kBsD9wIF,KAGM,cAAA,KACN,UA9YU,KAkZZ,qCACE,aAAA,MA8EI,sDAtGN,aAAA,MtDoyIA,gCACE,kBsDryIF,KACA,cArV0B,KAsV1B,UAAA,KAAA,QAAA,GACA,mBAAmB,KAMnB,WAAA,KtDkyIE,WsDjyIA,QAIF,8CACE,QAAA,KtD+xIA,oDACE,kBsDhyIF,KAGM,cAAA,KACN,UAAA,KAIF,mCACE,WAAA,MtD4xIA,oDHpgJI,WAAA,MyD0SA,mCA1FN,kBAAA,KAAA,cAAA,KAAA,UAAA,KACA,QAAA,GACA,mBAAA,KAAA,WAAA,KACA,WAAA,QAMA,iDACE,QAAA,KAIF,uDACE,kBAAA,KAAA,cAAA,KAAA,UAAA,KAGM,sCACN,cAAA,MAIF,uDACE,cAAA,OtDizIJ,asDz0IE,4BtD00IA,gCACE,kBsD30IF,KACA,cArV0B,KAsV1B,UAAA,KAAA,QAAA,GACA,mBAAmB,KAMnB,WAAA,KtDw0IE,WsDv0IA,QAIF,8CACE,QAAA,KtDq0IA,oDACE,kBsDt0IF,KAGM,cAAA,KACN,UA9YU,KAkZZ,oCACE,YAAA,MA0EI,oDAlGN,YAAA,MtD41IA,iCACE,kBsD71IF,KACA,cArV0B,KAsV1B,UAAA,KAAA,QAAA,GACA,mBAAmB,KAMnB,WAAA,KtD01IE,WsDz1IA,QAIF,+CACE,QAAA,KtDu1IA,qDACE,kBsDx1IF,KAGM,cAAA,KACN,UA9YU,KAkZZ,qCACE,aAAA,MA8EI,qDAtGN,aAAA,MtD82IA,+BACE,kBsD/2IF,KACA,cArV0B,KAsV1B,UAAA,KAAA,QAAA,GACA,mBAAmB,KAMnB,WAAA,KtD42IE,WsD32IA,QAIF,6CACE,QAAA,KtDy2IA,mDACE,kBsD12IF,KAGM,cAAA,KACN,UAAA,KAIF,mCACE,WAAA,MtDs2IA,mDH9kJI,WAAA,MyDiUA,kCAnFN,kBAAmB,KACnB,cAAY,KACZ,UAAgB,KAChB,QAAA,GACA,mBAAW,KACX,WAAA,KACA,WAAA,QAAA,gDAGA,QAAA,KtDm2IE,sDACE,kBsDh2IF,KACA,cAAA,KAAA,UAAA,KtDk2IA,sCsD/1IF,cAAA,MtDi2IE,sDACE,cAAe,OAErB,asDlyIQ,4BtDmyIN,iCsDr3IA,WAAY,QACZ,OAAA,KACA,SAAA,OACA,WAAW,IACX,MAAA,KACA,SAAA,QAAA,mBAAgB,KAGhB,WAAA,KAIkB,iDtDk3IhB,+CsDl3IgB,gDAAA,8CtDm3Id,mBsDn3IF,KACA,WAAA,KtDo3IE,kBsDp3IF,KtDq3IM,csDr3IN,KAGF,UAAA,KtDo3IE,+CACE,QAAS,MAEf,aFvqJI,4BACA,gCACA,WAAA,QAHF,OAAA,KAMI,SAAA,OANJ,WAAA,IAUI,MAAA,KEqqJF,SAAU,QFhqJZ,mBAAA,KA3FA,WAAA,KACM,gDAAN,8CAAM,+CAAA,6CACN,mBAAQ,KACC,WAAA,KACT,kBAAO,KACP,cA3BkB,KA6BlB,UAAa,KACb,8CACA,QAAA,MAuFA,oBAjFA,SAAA,MAEA,MAAA,KEyvJA,WFzvJA,OAEA,kCACA,WIImB,OJFnB,2BItCmB,MJuCnB,yBACA,WAAA,OEyvJF,gBF5qJI,SAAA,MACA,IAAA,EACA,MAAA,EG2mIF,OAAA,EDokBA,KWloJE,EdtBI,QAAA,KG0pJN,QFxrJA,KEyrJA,iBF9vJe,mBAIf,WAAA,KE4vJA,2BF3vJc,ME6vJhB,QH/pJQ,QAAA,KGiqJN,4BF/rJA,OA7CE,oBA7FgB,OE20JlB,QF7uJE,KA4CF,QAAA,KEmsJA,OFxrJI,IAAU,MAAA,QDmBR,cAAA,EGuqJN,iBFrsJA,QEssJA,SFnvJE,SEovJF,IFnvJE,MD0EI,aAAA,KG2qJN,YFzsJA,KE0sJA,WFvvJE,KEwvJF,2BF3rJgD,MDc1C,+BC9BN,QAAA,EE8sJA,aF7rJ2C,4BE8rJzC,QF/sJF,WAAA,GEitJA,gBFtvJA,UAAQ,EEwvJR,oBFtvJA,cAAO,EEwvJP,aFtvJW,4BACX,QACA,MAAA,MACA,UAAA,OEuvJA,iBFpvJA,QAAS,EEsvJT,aFrvJA,4BDwDM,aC9BN,MAAA,IAtCA,UAAM,OEqwJN,aFpwJQ,4BEqwJN,cFnwJF,MAAO,IAEP,UAAW,OEowJX,aFnwJA,4BEowJE,cFlwJF,MAAA,IACA,UAAA,OEowJA,aACE,IFlwJF,EA0BA,MAAA,EA6BI,OAAA,EE8sJF,KAAM,EuD93JR,MAAA,KACE,UAAA,KvDg4JA,OAAQ,KuD73JV,WAAA,KACE,YAAA,EACA,OAAU,EACV,cAAA,EvD+3JF,auD/3JE,kCvDg4JA,QuD73JF,IAAA,EACE,MAAA,EACA,OAAU,EACV,KAAA,EAHF,MAAA,KAMI,UAAM,KANV,OAAA,KAUI,WAAS,KvD43JT,YAAa,EuDx3JjB,OAAA,EACE,cAAkB,GAClB,wBACA,SAAU,MvD23Jd,kBACE,SAAU,SAEZ,QwDv3JI,SAAA,SACA,QAAA,EAGE,kBAAA,mBAAA,UAAA,mBxDy3JN,iBwDx3JM,SAAA,MAAA,QAAA,ExD23JJ,MwD33JI,KxD43JJ,2BwD33JI,IAAA,EAAA,8BxD83JF,OwD93JE,ExDg4JN,oBACE,SwD13JI,SxD23JJ,MwD13JI,KxD23JJ,KAAM,KwDt3JJ,iCxDw3JA,OAAQ,EAEZ,WACE,QwDz3JI,MxD03JJ,WwD13JI,QxD23JJ,MAAO,QwDx3JL,QAAA,YACE,QAAA,axD03JJ,QAAS,YwD52JT,QAAA,KACE,iBAAA,MACA,wBAAsB,WACtB,cA3D4B,MxDy6JtB,gBAAiB,WyDt0JzB,kBAAA,OAtFE,oBAAa,OAAb,eAAA,OAAA,YAAa,OAAb,sBACA,YAAA,OzDk6JA,ayDl6JA,OzDo6JJ,gBACA,iBACE,iByDr6JE,EzDs6JF,ayDt6JE,EAAA,EAAA,IACA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IzDy6JJ,iByDn6JE,WAAA,MzDs6JF,iBACE,QyDr4JE,aAhCF,eAAA,OzDu6JA,YAAa,IAEf,SACE,QyD55JE,YzD65JF,QyD55JE,aAIF,QAAA,YzD05JA,QyDz5JE,KzD05JF,kByDz5JmC,OAGnC,cAAA,OACE,UAAW,OAUX,iBAAA,QzD+4JF,wBAAyB,cyD74JrB,cAAA,QAAA,gBAAc,czDg5JlB,kByDh5JI,OzDi5JJ,oByDj5JI,OACA,eAAe,O5DkGb,YAAA,OGizJN,QyD92JA,MzD+2JA,kByDr4JE,KzDs4JE,cyDt4JF,KzDu4JM,UyDv4JN,KzDw4JF,SACA,YACE,iByDv4JE,QzDw4JJ,eACE,UAAW,MACX,ayDz4JE,KzD04JJ,4BACE,MyDv4JE,KzDw4JF,ayDx4JE,EzDy4JJ,sBACE,MAAO,KACT,uBHh0JM,wB4D7DN,iBAAA,EzDg4JE,ayD36JA,EAAA,EAAA,KzD46JI,SyD56JJ,EAAA,EAAA,KzD66JQ,KyD76JR,EAAA,EAAA,KzD86JA,UyD36JA,KzD46JF,aAAc,4BACZ,SACE,kByD56JA,OzD66JI,cyD76JJ,OzD86JQ,UyD96JR,OzD+6JA,uBH50JE,iBAAA,E4D7DN,aAAA,EAAA,EAAA,KA3CE,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KzDy7JI,ayDz7JJ,KAGA,wBzDw7JI,iBAAkB,EyDt7JpB,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KzD07JE,YyD17JF,MzD27JJ,ayD17JI,kCzD27JF,4ByD93JA,kBAAA,KACE,cAAc,KAAd,UAAc,KAAd,0CzDk4JA,2CyDj4JA,iBAAA,EzDm4JE,aAAc,EAAE,EAAE,KyDh4JtB,SAAA,EAAA,EAAA,KzDk4JY,KAAM,EAAE,EAAE,KyDh4JpB,UAAA,MAAA,aAAA,kCzDm4JF,2BACE,kByDp4Jc,KzDq4JV,cAAe,K0DphKvB,UAAA,KACE,yC1DshKE,0C0DnhKJ,iBAAA,EACE,aAAA,EAAA,EAAuB,K1DqhKf,SAAU,EAAE,EAAE,K0DlhKxB,KAAA,EAAA,EAAA,KACE,UAAc,M1DqhKlB,eACE,iBAAkB,EW73JlB,aAAA,EAAA,EAAA,KAEE,SAAc,EAAA,EAAA,KACd,KAAY,EAAA,EAAA,KAGV,OAAA,MAAA,KAAA,MAAa,EX63JnB,cACA,eW73JM,iBAAQ,EX+3JZ,aW/3JI,EAAA,EAAA,KXg4JA,SWh4JA,EAAQ,EAAA,KXi4JJ,KAAM,EAAE,EAAE,KAEpB,YACE,MAAO,eAET,a2DjgKE,MAAA,gB3DogKF,cACE,QAAS,M4Dl/JP,aAAA,KDnBF,YAAA,KAAA,iB3DygKF,kBACE,Q2D1gKA,M3D2gKA,QAAS,I4Dx/JP,mBAAA,EDnBF,wBAnDkB,EAmDlB,WAAA,E3D+gKA,0B2DlkKkB,E3DmkKlB,c2DhhKA,E3DihKI,eAAgB,E4D9/JlB,MAAA,E5DigKJ,iBACE,M2DrhKA,K3DuhKF,Y4DpgKI,iBAAA,MDnBF,wBAAA,WAAA,cAAA,MAAA,gBAAA,WC0BE,aD1BF,iBAAA,IAAA,wBAAA,SAAA,cAAA,IAAA,gBAAA,SC0BE,cD1BF,iBAAA,OAAA,wBAAA,OAAA,cAAA,OAAA,gBAAA,OC0BE,eD1BF,iBAAA,QAAA,wBAAA,cAAA,cAAA,QAAA,gBAAA,cCqCE,cDpCF,wBA1CiB,aA0CjB,cAAA,WAAA,gBA1CiB,a3D6lKnB,+B4D3gKI,iBAAA,MDxBF,wBAAA,WAAA,cAAA,MAAA,gBAAA,WCoBE,gCDpCF,iBAAA,IAAA,wBAAA,SAAA,cAAA,IAAA,gBAAA,SCwCE,iCDxBF,iBAAA,O3DijKA,wB2DjjKA,O3DkjKI,c2DljKJ,O3DmjKQ,gBAAiB,OAE3B,W2DrkKE,kBAAA,M3DukKA,oB2DvkKA,W3DwkKI,e2DxkKJ,M3DykKQ,YAAa,WAEvB,gBACE,mB2D5jKA,W3D6jKI,oB2D7jKJ,M3D8jKQ,WAAY,WAEtB,c2DhlKE,kBAAA,I3DklKA,oB2DllKA,S3DmlKI,e2DnlKJ,I3DolKQ,YAAa,SAEvB,mBACE,mB2DvkKA,S3DwkKI,oB2DxkKJ,I3DykKQ,WAAY,SAEtB,c2D5lKE,kBAAA,O3D8lKA,oB2D9lKA,O3D+lKI,e2D/lKJ,OACA,YAAA,O3DimKF,mBACE,mB2DlmKA,OCgDE,oBAAA,OAAA,WAAA,O5DsjKJ,e4DhjKM,kBAAA,QDhCJ,oBAAA,QAAA,eC+BgB,QD/BhB,YC+BgB,Q5DujKlB,oB4DtjKM,mBAAA,QDhCJ,oBAAA,QAAA,WC+BgB,Q5D4jKlB,qBACE,iBAAkB,O4D5jKd,wBAAA,ODhCJ,cAAA,OAAA,gBC+BgB,O5DikKhB,kB2DhmKA,O3DimKA,oB4DlkKgB,O5DmkKZ,eAAgB,O4DlkKhB,YAAA,ODhCJ,sBAAA,OAAA,mBC+BgB,OD/BhB,cC+BgB,O5DykKlB,e4DxkKM,0BAAA,EDhCJ,cAAA,EAAA,eC+BgB,ED/BhB,MAAA,E3D8mKF,e4D9kKM,0BAAA,EDhCJ,cAAA,EAAA,eC+BgB,ED/BhB,MAAA,E3DonKF,eH5gKQ,0BAAA,E+DxEF,cAAA,EDhCJ,eAAA,EAAA,MAAA,E3D0nKF,e4D1lKM,0BAAA,E5D4lKJ,c2D5nKA,EAAA,eC+BgB,ED/BhB,MAAA,E3DgoKF,eACE,0B2DjoKA,E3DkoKA,c2DloKA,E3DmoKI,e2DnoKJ,E3DooKQ,M2DpoKR,E3DsoKF,eACE,0B4DxmKgB,E5DymKhB,c2DxoKA,E3DyoKI,e4D1mKY,EACZ,MAAA,E5D4mKN,a2D5oKE,4B3D6oKA,gBACE,0B4D/mKc,EACZ,cAAA,EDhCJ,eAAA,EAAA,MAAA,E3DkpKA,gBACE,0B4DjnKG,E5DknKH,cAAe,EH5iKX,eAAA,E+DxEF,MAAA,E5DunKJ,gB2DvpKA,0BC+BgB,E5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I,UAAA,eA5BF,SAAA,iBlEogLA,cAAe,SkEx+Kb,YAAA,iBlE2+KJ,akE3+KI,YAAA,iBlE8+KJ,WkE9+KI,UAAA,qBlEi/KJ,gBkEj/KI,eAAA,oBlEo/KJ,gBkEp/KI,eAAA,oBlEu/KJ,iBmE/hLE,eAAA,qBnEkiLF,eACE,gBmEviLA,mBnEyiLF,gBACE,gBAAiB,oBAEnB,mBACE,gBAAiB,uBAEnB,WACE,eAAgB,OAElB,aACE,YoEvjLA,ICKE,W1DoBF,YAAA,IXmiLF,aW/hLE,WAAA,iBXkiLF,aW5hLI,gBAAA,eX+hLJ,eqE7jLI,gBAAA,iBrEgkLJ,eW1iLE,gBAAS,iBX6iLX,gBWxiLE,gBAAW,kBX2iLb,oBACE,gBAAiB,sBAEnB,oBWpjLE,gBAAQ,sBXujLV,oBWnjLE,gBAAA,sBXsjLF,oBWxiLI,gBAAA,sB0DvCA,oB1DoBF,gBAAc,sBXikLhB,oBW7jLE,gBAAA,sBXgkLF,SW9iLI,cAAA,iBACA,wBXgjLA,cAAe,iBsErjLlB,8BApBC,cAAA,ItE6kLF,QACE,cW78Kc,SX+8KhB,UACE,OAAQ,SW78KJ,MAAa,QX+8KnB,QACE,mBW/8KI,EAAA,IAAQ,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,gBXg9KJ,WWh9KI,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,gBXk9Kd,YW98KE,QAAA,MXg9KA,MuEhmLA,EvEimLA,OsErlLE,EtEslLF,asErlLE,MtEslLF,asErlLE,StEslLF,QAAS,GsErkLT,oBAAA,EAxBA,aAAA,QAAA,YAA6B,YtEimL/B,UACE,QWj+KE,MXk+KF,MW/9KI,EXg+KJ,OWh+KI,EXi+KJ,aWj+KI,MXk+KJ,aWj+KI,SXk+KJ,QWl+KI,GXm+KJ,iBWn+KI,EXo+KJ,aWp+KI,YAAQ,YAAA,QXs+Kd,aWl+KE,QAAA,MXo+KA,MuEpnLA,EvEqnLA,OsEzmLE,EtE0mLF,asEzmLE,MtE0mLF,asEzmLE,StE0mLF,QsEvmLI,GtEwmLJ,mBAAoB,EsEtlLpB,aAAA,YAAA,YAAA,YAAA,QtEylLF,YACE,QWt/KE,MXu/KF,MWt/KE,EX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","file":"foundation-prototype.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n////\n/// Patch to fix issue #12080\n\n$-zf-size: null;\n////\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next_number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next_number == null or $v < $next_number) {\n      $next_number: $v;\n    }\n  }\n\n  @return $next_number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found_key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found_key: true;\n    }\n    @if not $found_key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: none; // 1\n    text-decoration: underline; // 2\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n}\n","@charset \"UTF-8\";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.foundation-mq{font-family:\"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>\");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:\"— \"}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:\" (\" attr(href) \")\"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:\" (\" attr(title) \")\"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + 1.25rem / 2)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + 1.25rem / 2)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + 1.25rem / 2)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + 1.25rem / 2)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + 1.875rem / 2)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + 1.875rem / 2)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + 1.875rem / 2)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + 1.875rem / 2)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:\"/\";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:\"«\"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:\"»\"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:\"+\"}.is-active>.accordion-title::before{content:\"–\"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.text-hide{font:0/0 a!important;color:transparent!important;text-shadow:none!important;background-color:transparent!important;border:0!important}.text-truncate{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important}.text-nowrap{white-space:nowrap!important}.text-wrap{word-wrap:break-word!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-overline{text-decoration:overline!important}.text-underline{text-decoration:underline!important}.text-line-through{text-decoration:line-through!important}.font-wide{letter-spacing:.25rem}.font-normal{font-weight:400}.font-bold{font-weight:700}.font-italic{font-style:italic!important}ul.list-disc{list-style-type:disc!important}ul.list-circle{list-style-type:circle!important}ul.list-square{list-style-type:square!important}ol.list-decimal{list-style-type:decimal!important}ol.list-lower-alpha{list-style-type:lower-alpha!important}ol.list-lower-latin{list-style-type:lower-latin!important}ol.list-lower-roman{list-style-type:lower-roman!important}ol.list-upper-alpha{list-style-type:upper-alpha!important}ol.list-upper-latin{list-style-type:upper-latin!important}ol.list-upper-roman{list-style-type:upper-roman!important}.rounded{border-radius:5000px!important}.rounded .switch-paddle{border-radius:5000px!important}.rounded .switch-paddle:after{border-radius:50%}.radius{border-radius:.1875rem}.bordered{border:.0625rem solid #cacaca}.shadow{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.arrow-down{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent}.arrow-up{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a}.arrow-right{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a}.arrow-left{display:block;width:0;height:0;border-style:solid;border-width:.4375rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent}.separator-center{text-align:center!important}.separator-center::after,.separator-center::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-center::after{clear:both}.separator-center::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0}.separator-left{text-align:left!important}.separator-left::after,.separator-left::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-left::after{clear:both}.separator-left::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0;margin-left:0!important}.separator-right{text-align:right!important}.separator-right::after,.separator-right::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-right::after{clear:both}.separator-right::after{position:relative!important;width:3rem;border-bottom:.125rem solid #1779ba;margin:1rem auto 0;margin-right:0!important}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-hidden{overflow:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-scroll{overflow:scroll!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.display-inline{display:inline!important}.display-inline-block{display:inline-block!important}.display-block{display:block!important}.display-table{display:table!important}.display-table-cell{display:table-cell!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-fixed-top{position:fixed!important;top:0!important;right:0!important;left:0!important;z-index:975}.position-fixed-bottom{position:fixed!important;right:0!important;bottom:0!important;left:0!important;z-index:975}.border-box{-webkit-box-sizing:border-box!important;box-sizing:border-box!important}.border-none{border:none!important}.width-25{width:25%!important}.width-50{width:50%!important}.width-75{width:75%!important}.width-100{width:100%!important}.height-25{height:25%!important}.height-50{height:50%!important}.height-75{height:75%!important}.height-100{height:100%!important}.max-width-100{max-width:100%!important}.max-height-100{max-height:100%!important}.margin-0{margin:0!important}.margin-top-0{margin-top:0!important}.margin-right-0{margin-right:0!important}.margin-bottom-0{margin-bottom:0!important}.margin-left-0{margin-left:0!important}.margin-horizontal-0{margin-right:0!important;margin-left:0!important}.margin-vertical-0{margin-top:0!important;margin-bottom:0!important}.padding-0{padding:0!important}.padding-top-0{padding-top:0!important}.padding-right-0{padding-right:0!important}.padding-bottom-0{padding-bottom:0!important}.padding-left-0{padding-left:0!important}.padding-horizontal-0{padding-right:0!important;padding-left:0!important}.padding-vertical-0{padding-top:0!important;padding-bottom:0!important}.margin-1{margin:1rem!important}.margin-top-1{margin-top:1rem!important}.margin-right-1{margin-right:1rem!important}.margin-bottom-1{margin-bottom:1rem!important}.margin-left-1{margin-left:1rem!important}.margin-horizontal-1{margin-right:1rem!important;margin-left:1rem!important}.margin-vertical-1{margin-top:1rem!important;margin-bottom:1rem!important}.padding-1{padding:1rem!important}.padding-top-1{padding-top:1rem!important}.padding-right-1{padding-right:1rem!important}.padding-bottom-1{padding-bottom:1rem!important}.padding-left-1{padding-left:1rem!important}.padding-horizontal-1{padding-right:1rem!important;padding-left:1rem!important}.padding-vertical-1{padding-top:1rem!important;padding-bottom:1rem!important}.margin-2{margin:2rem!important}.margin-top-2{margin-top:2rem!important}.margin-right-2{margin-right:2rem!important}.margin-bottom-2{margin-bottom:2rem!important}.margin-left-2{margin-left:2rem!important}.margin-horizontal-2{margin-right:2rem!important;margin-left:2rem!important}.margin-vertical-2{margin-top:2rem!important;margin-bottom:2rem!important}.padding-2{padding:2rem!important}.padding-top-2{padding-top:2rem!important}.padding-right-2{padding-right:2rem!important}.padding-bottom-2{padding-bottom:2rem!important}.padding-left-2{padding-left:2rem!important}.padding-horizontal-2{padding-right:2rem!important;padding-left:2rem!important}.padding-vertical-2{padding-top:2rem!important;padding-bottom:2rem!important}.margin-3{margin:3rem!important}.margin-top-3{margin-top:3rem!important}.margin-right-3{margin-right:3rem!important}.margin-bottom-3{margin-bottom:3rem!important}.margin-left-3{margin-left:3rem!important}.margin-horizontal-3{margin-right:3rem!important;margin-left:3rem!important}.margin-vertical-3{margin-top:3rem!important;margin-bottom:3rem!important}.padding-3{padding:3rem!important}.padding-top-3{padding-top:3rem!important}.padding-right-3{padding-right:3rem!important}.padding-bottom-3{padding-bottom:3rem!important}.padding-left-3{padding-left:3rem!important}.padding-horizontal-3{padding-right:3rem!important;padding-left:3rem!important}.padding-vertical-3{padding-top:3rem!important;padding-bottom:3rem!important}\n/*# sourceMappingURL=foundation-prototype.min.css.map */\n","@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.3\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: none;\n  text-decoration: underline;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>\");\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\n.cite-block, cite {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  .cite-block:before, cite:before {\n    content: \"— \"; }\n\n.code-inline, code {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0px;\n  min-width: 0px;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0px; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0px;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0px;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0px;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0px;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  width: auto;\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    width: auto;\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    width: auto;\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button.medium, .close-button {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  height: 2rem;\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 0;\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important; }\n\n.text-truncate {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: ellipsis;\n  white-space: nowrap !important; }\n\n.text-nowrap {\n  white-space: nowrap !important; }\n\n.text-wrap {\n  word-wrap: break-word !important; }\n\n.text-lowercase {\n  text-transform: lowercase !important; }\n\n.text-uppercase {\n  text-transform: uppercase !important; }\n\n.text-capitalize {\n  text-transform: capitalize !important; }\n\n.text-overline {\n  text-decoration: overline !important; }\n\n.text-underline {\n  text-decoration: underline !important; }\n\n.text-line-through {\n  text-decoration: line-through !important; }\n\n.font-wide {\n  letter-spacing: 0.25rem; }\n\n.font-normal {\n  font-weight: normal; }\n\n.font-bold {\n  font-weight: bold; }\n\n.font-italic {\n  font-style: italic !important; }\n\nul.list-disc {\n  list-style-type: disc !important; }\n\nul.list-circle {\n  list-style-type: circle !important; }\n\nul.list-square {\n  list-style-type: square !important; }\n\nol.list-decimal {\n  list-style-type: decimal !important; }\n\nol.list-lower-alpha {\n  list-style-type: lower-alpha !important; }\n\nol.list-lower-latin {\n  list-style-type: lower-latin !important; }\n\nol.list-lower-roman {\n  list-style-type: lower-roman !important; }\n\nol.list-upper-alpha {\n  list-style-type: upper-alpha !important; }\n\nol.list-upper-latin {\n  list-style-type: upper-latin !important; }\n\nol.list-upper-roman {\n  list-style-type: upper-roman !important; }\n\n.rounded {\n  border-radius: 5000px !important; }\n  .rounded .switch-paddle {\n    border-radius: 5000px !important; }\n    .rounded .switch-paddle:after {\n      border-radius: 50%; }\n\n.radius {\n  border-radius: 0.1875rem; }\n\n.bordered {\n  border: 0.0625rem solid #cacaca; }\n\n.shadow {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }\n\n.arrow-down {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #0a0a0a transparent transparent; }\n\n.arrow-up {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-top-width: 0;\n  border-color: transparent transparent #0a0a0a; }\n\n.arrow-right {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #0a0a0a; }\n\n.arrow-left {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #0a0a0a transparent transparent; }\n\n.separator-center {\n  text-align: center !important; }\n  .separator-center::before, .separator-center::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-center::after {\n    clear: both; }\n  .separator-center::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0; }\n\n.separator-left {\n  text-align: left !important; }\n  .separator-left::before, .separator-left::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-left::after {\n    clear: both; }\n  .separator-left::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-left: 0 !important; }\n\n.separator-right {\n  text-align: right !important; }\n  .separator-right::before, .separator-right::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-right::after {\n    clear: both; }\n  .separator-right::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-right: 0 !important; }\n\n.overflow-visible {\n  overflow: visible !important; }\n\n.overflow-x-visible {\n  overflow-x: visible !important; }\n\n.overflow-y-visible {\n  overflow-y: visible !important; }\n\n.overflow-hidden {\n  overflow: hidden !important; }\n\n.overflow-x-hidden {\n  overflow-x: hidden !important; }\n\n.overflow-y-hidden {\n  overflow-y: hidden !important; }\n\n.overflow-scroll {\n  overflow: scroll !important; }\n\n.overflow-x-scroll {\n  overflow-x: scroll !important; }\n\n.overflow-y-scroll {\n  overflow-y: scroll !important; }\n\n.display-inline {\n  display: inline !important; }\n\n.display-inline-block {\n  display: inline-block !important; }\n\n.display-block {\n  display: block !important; }\n\n.display-table {\n  display: table !important; }\n\n.display-table-cell {\n  display: table-cell !important; }\n\n.position-static {\n  position: static !important; }\n\n.position-relative {\n  position: relative !important; }\n\n.position-absolute {\n  position: absolute !important; }\n\n.position-fixed {\n  position: fixed !important; }\n\n.position-fixed-top {\n  position: fixed !important;\n  top: 0rem !important;\n  right: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.position-fixed-bottom {\n  position: fixed !important;\n  right: 0rem !important;\n  bottom: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.border-box {\n  box-sizing: border-box !important; }\n\n.border-none {\n  border: none !important; }\n\n.width-25 {\n  width: 25% !important; }\n\n.width-50 {\n  width: 50% !important; }\n\n.width-75 {\n  width: 75% !important; }\n\n.width-100 {\n  width: 100% !important; }\n\n.height-25 {\n  height: 25% !important; }\n\n.height-50 {\n  height: 50% !important; }\n\n.height-75 {\n  height: 75% !important; }\n\n.height-100 {\n  height: 100% !important; }\n\n.max-width-100 {\n  max-width: 100% !important; }\n\n.max-height-100 {\n  max-height: 100% !important; }\n\n.margin-0 {\n  margin: 0rem !important; }\n\n.margin-top-0 {\n  margin-top: 0rem !important; }\n\n.margin-right-0 {\n  margin-right: 0rem !important; }\n\n.margin-bottom-0 {\n  margin-bottom: 0rem !important; }\n\n.margin-left-0 {\n  margin-left: 0rem !important; }\n\n.margin-horizontal-0 {\n  margin-right: 0rem !important;\n  margin-left: 0rem !important; }\n\n.margin-vertical-0 {\n  margin-top: 0rem !important;\n  margin-bottom: 0rem !important; }\n\n.padding-0 {\n  padding: 0rem !important; }\n\n.padding-top-0 {\n  padding-top: 0rem !important; }\n\n.padding-right-0 {\n  padding-right: 0rem !important; }\n\n.padding-bottom-0 {\n  padding-bottom: 0rem !important; }\n\n.padding-left-0 {\n  padding-left: 0rem !important; }\n\n.padding-horizontal-0 {\n  padding-right: 0rem !important;\n  padding-left: 0rem !important; }\n\n.padding-vertical-0 {\n  padding-top: 0rem !important;\n  padding-bottom: 0rem !important; }\n\n.margin-1 {\n  margin: 1rem !important; }\n\n.margin-top-1 {\n  margin-top: 1rem !important; }\n\n.margin-right-1 {\n  margin-right: 1rem !important; }\n\n.margin-bottom-1 {\n  margin-bottom: 1rem !important; }\n\n.margin-left-1 {\n  margin-left: 1rem !important; }\n\n.margin-horizontal-1 {\n  margin-right: 1rem !important;\n  margin-left: 1rem !important; }\n\n.margin-vertical-1 {\n  margin-top: 1rem !important;\n  margin-bottom: 1rem !important; }\n\n.padding-1 {\n  padding: 1rem !important; }\n\n.padding-top-1 {\n  padding-top: 1rem !important; }\n\n.padding-right-1 {\n  padding-right: 1rem !important; }\n\n.padding-bottom-1 {\n  padding-bottom: 1rem !important; }\n\n.padding-left-1 {\n  padding-left: 1rem !important; }\n\n.padding-horizontal-1 {\n  padding-right: 1rem !important;\n  padding-left: 1rem !important; }\n\n.padding-vertical-1 {\n  padding-top: 1rem !important;\n  padding-bottom: 1rem !important; }\n\n.margin-2 {\n  margin: 2rem !important; }\n\n.margin-top-2 {\n  margin-top: 2rem !important; }\n\n.margin-right-2 {\n  margin-right: 2rem !important; }\n\n.margin-bottom-2 {\n  margin-bottom: 2rem !important; }\n\n.margin-left-2 {\n  margin-left: 2rem !important; }\n\n.margin-horizontal-2 {\n  margin-right: 2rem !important;\n  margin-left: 2rem !important; }\n\n.margin-vertical-2 {\n  margin-top: 2rem !important;\n  margin-bottom: 2rem !important; }\n\n.padding-2 {\n  padding: 2rem !important; }\n\n.padding-top-2 {\n  padding-top: 2rem !important; }\n\n.padding-right-2 {\n  padding-right: 2rem !important; }\n\n.padding-bottom-2 {\n  padding-bottom: 2rem !important; }\n\n.padding-left-2 {\n  padding-left: 2rem !important; }\n\n.padding-horizontal-2 {\n  padding-right: 2rem !important;\n  padding-left: 2rem !important; }\n\n.padding-vertical-2 {\n  padding-top: 2rem !important;\n  padding-bottom: 2rem !important; }\n\n.margin-3 {\n  margin: 3rem !important; }\n\n.margin-top-3 {\n  margin-top: 3rem !important; }\n\n.margin-right-3 {\n  margin-right: 3rem !important; }\n\n.margin-bottom-3 {\n  margin-bottom: 3rem !important; }\n\n.margin-left-3 {\n  margin-left: 3rem !important; }\n\n.margin-horizontal-3 {\n  margin-right: 3rem !important;\n  margin-left: 3rem !important; }\n\n.margin-vertical-3 {\n  margin-top: 3rem !important;\n  margin-bottom: 3rem !important; }\n\n.padding-3 {\n  padding: 3rem !important; }\n\n.padding-top-3 {\n  padding-top: 3rem !important; }\n\n.padding-right-3 {\n  padding-right: 3rem !important; }\n\n.padding-bottom-3 {\n  padding-bottom: 3rem !important; }\n\n.padding-left-3 {\n  padding-left: 3rem !important; }\n\n.padding-horizontal-3 {\n  padding-right: 3rem !important;\n  padding-left: 3rem !important; }\n\n.padding-vertical-3 {\n  padding-top: 3rem !important;\n  padding-bottom: 3rem !important; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n////\n/// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n////\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: #{$rgb}'></polygon></svg>\");\n\n  @media screen and (min-width:0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0,0,0,0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true\n      or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build_from_header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build_from_header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend .cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend .code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  .cite-block {\n    @include cite-block;\n  }\n\n  .code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\"\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  @include -zf-each-breakpoint() {\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n    }\n  }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\"\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        width: auto;\n        @include xy-grid-frame(true);\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          width: auto;\n          @include xy-grid-frame(true);\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0px;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($mg)}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($margin-gutter)}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0px;\n    min-width: 0px;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2 : pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n      and type-of(nth($fraction, 1) == 'number')\n      and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n $n,\n $gutters: $grid-margin-gutters,\n $gutter-type: margin,\n $breakpoint: null,\n $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: .5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    height: $switch-height;\n    @include switch-container;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: 0;\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios,default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle(6px, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n$position: left,\n$zindex: $offcanvas-reveal-zindex,\n$content: $maincontent-class,\n$breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    @at-root .#{$maincontent-class} & {\n      // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n      // position: absolute;\n    }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","@function -zf-flex-justify($text-direction){\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - .00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - .00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-utilities\n////\n\n/// Responsive breakpoints for text utilities\n/// @type Boolean\n$prototype-utilities-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default Value for `text-overflow` variable\n/// @type String\n$prototype-text-overflow: ellipsis !default;\n\n/// Image Replacement utility. `text-hide`\n@mixin text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important;\n}\n\n/// Truncating the text, elipsis by default.\n/// @param {String} $overflow [$prototype-text-overflow] Text Truncate\n@mixin text-truncate(\n  $overflow: $prototype-text-overflow\n) {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: $overflow; \n  white-space: nowrap !important;\n}\n\n/// No wrapping of the text. `text-nowrap`\n@mixin text-nowrap {\n  white-space: nowrap !important;\n}\n\n/// Wrapping of the text. `text-wrap`\n@mixin text-wrap {\n  word-wrap: break-word !important;\n}\n\n@mixin foundation-prototype-text-utilities {\n  .text-hide {\n    @include text-hide;\n  }\n\n  .text-truncate {\n    @include text-truncate;\n  }\n\n  .text-nowrap {\n    @include text-nowrap;\n  }\n\n  .text-wrap {\n    @include text-wrap;\n  }\n\n  @if ($prototype-utilities-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-hide {\n            @include text-hide;\n          }\n\n          .#{$size}-text-truncate {\n            @include text-truncate;\n          }\n\n          .#{$size}-text-nowrap {\n            @include text-nowrap;\n          }\n\n          .#{$size}-text-wrap {\n            @include text-wrap;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-transformation\n////\n\n/// Responsive breakpoints for text transformation classes\n/// @type Boolean\n$prototype-transformation-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-transformation` classes\n/// @type Map\n$prototype-text-transformation: (\n  lowercase,\n  uppercase,\n  capitalize\n) !default;\n\n/// Text Transformation, by default coming through a map `$prototype-text-transformation`\n/// @param {String} $transformation [] Text Transformation\n@mixin text-transform($transformation) {\n  text-transform: $transformation !important;\n}\n\n@mixin foundation-prototype-text-transformation {\n  @each $transformation in $prototype-text-transformation {\n    .text-#{$transformation} {\n      @include text-transform($transformation);\n    }\n  }\n\n  @if ($prototype-transformation-breakpoints) {\n    // Loop through Responsive Breakpoints\n  \t@each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $transformation in $prototype-text-transformation {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$transformation} {\n  \t\t\t      @include text-transform($transformation);\n  \t\t\t    }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-decoration\n////\n\n/// Responsive breakpoints for text decoration classes\n/// @type Boolean\n$prototype-decoration-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-decoration` classes\n/// @type Map\n$prototype-text-decoration: (\n  overline,\n  underline,\n  line-through,\n) !default;\n\n/// Text Decoration, by default coming through a map `$prototype-text-decoration`\n/// @param {String} $decoration [] Text Decoration\n@mixin text-decoration($decoration) {\n  text-decoration: $decoration !important;\n}\n\n@mixin foundation-prototype-text-decoration {\n  @each $decoration in $prototype-text-decoration {\n    .text-#{$decoration} {\n      @include text-decoration($decoration);\n    }\n  }\n\n  @if ($prototype-decoration-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $decoration in $prototype-text-decoration {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$decoration} {\n              @include text-decoration($decoration);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-font-styling\n////\n\n/// Responsive breakpoints for font styling types\n/// @type Boolean\n$prototype-font-breakpoints: $global-prototype-breakpoints !default;\n\n/// Letter spacing for `.font-wide`\n/// @type Number\n$prototype-wide-letter-spacing: rem-calc(4) !default;\n\n/// Default weight for `.font-normal`, defaulted to `global-weight-normal`\n/// @type Number\n$prototype-font-normal: $global-weight-normal !default;\n\n/// Default weight for `.font-bold`, defaulted to `global-weight-bold`\n/// @type Number\n$prototype-font-bold: $global-weight-bold !default;\n\n/// Font wide letter spacing!\n/// @param {Number} $letter-spacing [$prototype-wide-letter-spacing] Wide letter spacing for the font\n@mixin font-wide(\n  $letter-spacing: $prototype-wide-letter-spacing\n) {\n  letter-spacing: $letter-spacing;\n}\n\n/// Font Weight Normal, default value coming through `global-weight-normal`\n/// @param {Number} $weight [$prototype-font-normal] Weight of the font (normal)\n@mixin font-normal(\n  $weight: $prototype-font-normal\n) {\n  font-weight: $weight;\n}\n\n/// Font Weight Bold, default value coming through `global-weight-bold`\n/// @param {Number} $weight [$prototype-font-bold] Weight of the font (bold)\n@mixin font-bold(\n  $weight: $prototype-font-bold\n) {\n  font-weight: $weight;\n}\n\n/// Font Style Italic\n@mixin font-italic {\n  font-style: italic !important;\n}\n\n@mixin foundation-prototype-font-styling {\n  .font-wide{\n    @include font-wide;\n  }\n\n  .font-normal {\n    @include font-normal;\n  }\n\n  .font-bold {\n    @include font-bold;\n  }\n\n  .font-italic {\n    @include font-italic;\n  }\n\n  @if ($prototype-font-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-font-wide{\n            @include font-wide;\n          }\n\n          .#{$size}-font-normal {\n            @include font-normal;\n          }\n\n          .#{$size}-font-bold {\n            @include font-bold;\n          }\n\n          .#{$size}-font-italic {\n            @include font-italic;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-list-style-type\n////\n\n/// Responsive breakpoints for list styling types\n/// @type Boolean\n$prototype-list-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `style-type-unordered` classes\n/// @type Map\n$prototype-style-type-unordered: (\n  disc,\n  circle,\n  square\n) !default;\n\n/// Map containing all the `style-type-ordered` classes\n/// @type Map\n$prototype-style-type-ordered: (\n  decimal,\n  lower-alpha,\n  lower-latin,\n  lower-roman,\n  upper-alpha,\n  upper-latin,\n  upper-roman\n) !default;\n\n\n/// Style type for unordered Lists, by default coming through a map `$prototype-style-type-unordered`\n/// @param {String} $style-type-unordered [] Style type for unordered Lists\n@mixin style-type-unordered($style-type-unordered) {\n  list-style-type: $style-type-unordered !important;\n}\n\n/// Style type for ordered Lists, by default coming through a map `$prototype-style-type-ordered`\n/// @param {String} $style-type-ordered [] Style type for ordered Lists\n@mixin style-type-ordered($style-type-ordered) {\n  list-style-type: $style-type-ordered !important;\n}\n\n@mixin list-unordered {\n  @each $style-type-unordered in $prototype-style-type-unordered {\n    ul.list-#{$style-type-unordered} {\n      @include style-type-unordered($style-type-unordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-unordered in $prototype-style-type-unordered {\n          @if $size != $-zf-zero-breakpoint {\n            ul.#{$size}-list-#{$style-type-unordered} {\n              @include style-type-unordered($style-type-unordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin list-ordered {\n  @each $style-type-ordered in $prototype-style-type-ordered {\n    ol.list-#{$style-type-ordered} {\n      @include style-type-ordered($style-type-ordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-ordered in $prototype-style-type-ordered {\n          @if $size != $-zf-zero-breakpoint {\n            ol.#{$size}-list-#{$style-type-ordered} {\n              @include style-type-ordered($style-type-ordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-prototype-list-style-type {\n  @include list-unordered;\n  @include list-ordered;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-rounded\n////\n\n/// Responsive breakpoints for rounded utility.\n/// @type Boolean\n$prototype-rounded-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-radius`\n/// @type Number\n$prototype-border-radius: rem-calc(3) !default;\n\n/// Rounded utility (all corners): Adds radius corners (all corners) to an element by default.\n/// @param {Number} $radius [$prototype-border-radius] Border radius (all corners)\n@mixin border-radius(\n  $radius: $prototype-border-radius\n) {\n  border-radius: $radius;\n}\n\n/// Rounded square utility or rectangle utility (all corners): Rounds all corners to an element by default to make a pill shape.\n@mixin border-rounded {\n  border-radius: 5000px !important;\n}\n\n@mixin foundation-prototype-rounded {\n  .rounded {\n    @include border-rounded;\n\n    .switch-paddle {\n      @include border-rounded;\n      &:after {\n        border-radius: 50%; // For switches\n      }\n    }\n  }\n\n  .radius {\n    @include border-radius;\n  }\n\n  @if ($prototype-rounded-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-rounded {\n            @include border-rounded;\n          }\n          .#{$size}-radius {\n            @include border-radius;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-shadow\n////\n\n/// Responsive breakpoints for shadow utility.\n/// @type Boolean\n$prototype-shadow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-box-shadow`\n/// @type Number\n$prototype-box-shadow: 0 2px 5px 0 rgba(0,0,0,.16),\n                       0 2px 10px 0 rgba(0,0,0,.12) !default;\n\n/// Shadow Utility: Adds a light box shadow to an element by default.\n/// @param {Number} $shadow [$prototype-box-shadow] Box Shadow of a component\n@mixin shadow(\n  $shadow: $prototype-box-shadow\n) {\n  box-shadow: $shadow;\n}\n\n@mixin foundation-prototype-shadow {\n  .shadow {\n    @include shadow;\n  }\n\n  @if ($prototype-shadow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-shadow {\n            @include shadow;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-arrow\n////\n\n/// Map containing all the `arrow` direction\n/// @type Map\n$prototype-arrow-directions: (\n  down,\n  up,\n  right,\n  left\n) !default;\n\n/// Width of the Arrow, `0.4375rem` by default.\n/// @type Number\n$prototype-arrow-size: 0.4375rem;\n\n/// Color of the Arrow, `$black` by default.\n/// @type Color\n$prototype-arrow-color: $black;\n\n@mixin foundation-prototype-arrow {\n  @each $prototype-arrow-direction in $prototype-arrow-directions {\n    .arrow-#{$prototype-arrow-direction} {\n      @include css-triangle(\n        $prototype-arrow-size, \n        $prototype-arrow-color, \n        $prototype-arrow-direction\n      );\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-separator\n////\n\n/// Responsive breakpoints for separator.\n/// @type Boolean\n$prototype-separator-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default alignment of a separator.\n/// @type String\n$prototype-separator-align: center !default;\n\n/// Height of a separator.\n/// @type Number\n$prototype-separator-height: rem-calc(2) !default;\n\n/// Width of a separator.\n/// @type Number\n$prototype-separator-width: 3rem !default;\n\n/// Default color of a separator.\n/// @type Color\n$prototype-separator-background: $primary-color !default;\n\n/// Top Margin of a separator.\n/// @type Number\n$prototype-separator-margin-top: $global-margin !default;\n\n/// Title separator Utility, mostly used to style the main heading of a section\n/// @param {String} $align [$prototype-separator-align] - separator Alignment\n/// @param {Number} $height [$prototype-separator-height] - Width\n/// @param {Number} $width [$prototype-separator-width] - Height\n/// @param {Color} $background [$prototype-separator-background] - Background\n/// @param {Number} $top [$prototype-separator-margin-top] - Margin Top\n@mixin separator (\n  $align: $prototype-separator-align,\n  $height: $prototype-separator-height,\n  $width: $prototype-separator-width,\n  $background: $prototype-separator-background,\n  $top: $prototype-separator-margin-top\n) {\n  text-align: $align !important;\n\t@include clearfix;\n\n  &::after {\n    @include position(relative);\n    width: $width;\n    border-bottom: $height solid $background;\n    margin: $top auto 0;\n\n    @if $align == left {\n      margin-left: 0 !important;\n    }\n\n    @if $align == right {\n      margin-right: 0 !important;\n    }\n  }\n}\n\n@mixin foundation-prototype-separator {\n\t.separator-center {\n\t\t@include separator(center);\n\t}\n\n  .separator-left {\n    @include separator(left);\n  }\n\n  .separator-right {\n    @include separator(right);\n  }\n\n\t@if ($prototype-separator-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-separator-center {\n            @include separator(center);\n          }\n          .#{$size}-separator-left {\n            @include separator(left);\n          }\n          .#{$size}-separator-right {\n            @include separator(right);\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-position\n////\n\n/// Responsive breakpoints for position helpers\n/// @type Boolean\n$prototype-position-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `position` classes\n/// @type Map\n$prototype-position: (\n  static,\n  relative,\n  absolute,\n  fixed\n) !default;\n\n/// z-index for fixed positioning\n/// @type Number\n$prototype-position-z-index: 975 !default;\n\n/// Position classes, by default coming through a map `$prototype-position`, whereas all the offset values are multiplied by `$global-position` which by default is equal to `1rem`.\n/// @param {String} $position [] Position classes, Either `static`, `relative`, `absolute` or `fixed`\n/// @param {Number} $top [null] - Top offset\n/// @param {Number} $right [null] - Right offset\n/// @param {Number} $bottom [null] - Bottom offset\n/// @param {Number} $left [null] - Left offset\n@mixin position(\n  $position,\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  position: $position !important;\n  @if $top != null {\n    top: $top * $global-position !important;\n  }\n  @if $right != null {\n    right: $right * $global-position !important;\n  }\n  @if $bottom != null {\n    bottom: $bottom * $global-position !important;\n  }\n  @if $left != null {\n    left: $left * $global-position !important;\n  }\n}\n\n/// Position Fixed on top corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-top`\n@mixin position-fixed-top(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, 0, 0, null, 0);\n  z-index: $z-index;\n}\n\n/// Position Fixed on bottom corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-bottom`\n@mixin position-fixed-bottom(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, null, 0, 0, 0);\n  z-index: $z-index;\n}\n\n@mixin foundation-prototype-position {\n  // Position: Static, Relative, Fixed, Absolute\n  @each $position in $prototype-position {\n    .position-#{$position} {\n      @include position($position);\n    }\n  }\n\n  // Position: Fixed Top, Fixed Bottom\n  .position-fixed-top {\n    @include position-fixed-top;\n  }\n  .position-fixed-bottom {\n    @include position-fixed-bottom;\n  }\n\n  @if ($prototype-position-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        // Position: Static, Relative, Fixed, Absolute\n        @each $position in $prototype-position {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-position-#{$position} {\n              @include position($position);\n            }\n          }\n        }\n\n        // Position: Fixed Top, Fixed Bottom\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-position-fixed-top {\n            @include position-fixed-top;\n          }\n\n          .#{$size}-position-fixed-bottom {\n            @include position-fixed-bottom;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-overflow\n////\n\n/// Responsive breakpoints for overflow helper classes\n/// @type Boolean\n$prototype-overflow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `overflow` classes\n/// @type Map\n$prototype-overflow: (\n  visible,\n  hidden,\n  scroll\n) !default;\n\n/// Overflow classes, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes\n@mixin overflow($overflow) {\n  overflow: $overflow !important;\n}\n\n/// Overflow classes on horizontal axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (horizontal axis)\n@mixin overflow-x($overflow) {\n  overflow-x: $overflow !important;\n}\n\n/// Overflow classes on vertical axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (vertical axis)\n@mixin overflow-y($overflow) {\n  overflow-y: $overflow !important;\n}\n\n@mixin foundation-prototype-overflow {\n  @each $overflow in $prototype-overflow {\n    .overflow-#{$overflow} {\n      @include overflow($overflow);\n    }\n    .overflow-x-#{$overflow} {\n      @include overflow-x($overflow);\n    }\n    .overflow-y-#{$overflow} {\n      @include overflow-y($overflow);\n    }\n  }\n\n  @if ($prototype-overflow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $overflow in $prototype-overflow {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-overflow-#{$overflow} {\n              @include overflow($overflow);\n            }\n            .#{$size}-overflow-x-#{$overflow} {\n              @include overflow-x($overflow);\n            }\n            .#{$size}-overflow-y-#{$overflow} {\n              @include overflow-y($overflow);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-display\n////\n\n/// Responsive breakpoints for display classes\n/// @type Boolean\n$prototype-display-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `display` classes\n/// @type Map\n$prototype-display: (\n  inline,\n  inline-block,\n  block,\n  table,\n  table-cell\n) !default;\n\n/// Display classes, by default coming through a map `$prototype-display`\n/// @param {String} $display [] Display classes\n@mixin display($display) {\n  display: $display !important;\n}\n\n@mixin foundation-prototype-display {\n  @each $display in $prototype-display {\n    .display-#{$display} {\n      @include display($display);\n    }\n  }\n\n  @if ($prototype-display-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $display in $prototype-display {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-display-#{$display} {\n              @include display($display);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-box\n////\n\n/// Responsive breakpoints for border box.\n/// @type Boolean\n$prototype-border-box-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border box utility\n@mixin border-box {\n  box-sizing: border-box !important;\n}\n\n@mixin foundation-prototype-border-box {\n  .border-box {\n    @include border-box;\n  }\n\n  @if ($prototype-border-box-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-box {\n            @include border-box;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-none\n////\n\n/// Responsive breakpoints for border none.\n/// @type Boolean\n$prototype-border-none-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border none utility\n@mixin border-none {\n  border: none !important;\n}\n\n@mixin foundation-prototype-border-none {\n  .border-none {\n    @include border-none;\n  }\n\n  @if ($prototype-border-none-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-none {\n            @include border-none;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-sizing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-sizing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `sizing` classes\n/// @type Map\n$prototype-sizing: (\n  width,\n  height\n) !default;\n\n/// Map containing all the sizes.\n/// @type Map\n$prototype-sizes: (\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%\n) !default;\n\n/// Max Width 100 utility.\n@mixin max-width-100 {\n  max-width: 100% !important;\n}\n\n/// Max Height 100 utility.\n@mixin max-height-100 {\n  max-height: 100% !important;\n}\n\n@mixin foundation-prototype-sizing {\n  // Element Sizing\n  @each $sizing in $prototype-sizing {\n    @each $length, $percentage in $prototype-sizes {\n      .#{$sizing}-#{$length} {\n        #{$sizing}: $percentage !important;\n      }\n    }\n  }\n\n  // Max width & height\n  .max-width-100 {\n    @include max-width-100;\n  }\n  .max-height-100 {\n    @include max-height-100;\n  }\n\n  @if ($prototype-sizing-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          @each $sizing in $prototype-sizing {\n            @each $length, $percentage in $prototype-sizes {\n              .#{$size}-#{$sizing}-#{$length} {\n                #{$sizing}: $percentage !important;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-spacing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-spacing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default number of spacers count (margin and padding)\n/// @type Number\n$prototype-spacers-count: 3 !default;\n\n/// Margin helper mixin, all the values are multiplied by `$global-margin` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Margin Top\n/// @param {Number} $right [null] - Margin Right\n/// @param {Number} $bottom [null] - Margin Bottom\n/// @param {Number} $left [null] - Margin Left\n@mixin margin(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    margin-top: $top * $global-margin !important;\n  }\n  @if $right != null {\n    margin-right: $right * $global-margin !important;\n  }\n  @if $bottom != null {\n    margin-bottom: $bottom * $global-margin !important;\n  }\n  @if $left != null {\n    margin-left: $left * $global-margin !important;\n  }\n}\n\n/// Padding helper mixin, all the values are multiplied by `$global-padding` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Padding Top\n/// @param {Number} $right [null] - Padding Right\n/// @param {Number} $bottom [null] - Padding Bottom\n/// @param {Number} $left [null] - Padding Left\n@mixin padding(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    padding-top: $top * $global-padding !important;\n  }\n  @if $right != null {\n    padding-right: $right * $global-padding !important;\n  }\n  @if $bottom != null {\n    padding-bottom: $bottom * $global-padding !important;\n  }\n  @if $left != null {\n    padding-left: $left * $global-padding !important;\n  }\n}\n\n/// Margin classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin margin-direction($dir, $spacer) {\n  @if ($dir == top) { \n    @include margin($top: $spacer); \n  }\n  @else if ($dir == right) { \n    @include margin($right: $spacer); \n  }\n  @else if ($dir == bottom) { \n    @include margin($bottom: $spacer); \n  }\n  @else if ($dir == left) { \n    @include margin($left: $spacer); \n  }\n  @else if ($dir == horizontal) { \n    @include margin($right: $spacer, $left: $spacer); \n  }\n  @else if ($dir == vertical) { \n    @include margin($top: $spacer, $bottom: $spacer); \n  }\n}\n\n/// Padding classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin padding-direction($dir, $spacer) {\n  @if ($dir == top) { \n    @include padding($top: $spacer); \n  }\n  @else if ($dir == right) { \n    @include padding($right: $spacer); \n  }\n  @else if ($dir == bottom) { \n    @include padding($bottom: $spacer); \n  }\n  @else if ($dir == left) { \n    @include padding($left: $spacer); \n  }\n  @else if ($dir == horizontal) { \n    @include padding($right: $spacer, $left: $spacer); \n  }\n  @else if ($dir == vertical) { \n    @include padding($top: $spacer, $bottom: $spacer); \n  }\n}\n\n@mixin foundation-prototype-spacing {\n  @for $spacer from 0 through $prototype-spacers-count {\n    \n    @each $prop in (margin, padding) {\n      // All Sides\n      .#{$prop}-#{$spacer} {\n        @if ($prop == margin) { \n          margin: $spacer * $global-margin !important;\n        }\n        @else if ($prop == padding) { \n          padding: $spacer * $global-padding !important;\n        }\n      }\n\n      @each $dir in (top, right, bottom, left, horizontal, vertical) {\n        // Top Side\n        .#{$prop}-#{$dir}-#{$spacer} {\n          @if ($prop == margin) { \n            @include margin-direction($dir, $spacer);\n          }\n          @else if ($prop == padding) {\n            @include padding-direction($dir, $spacer);\n          }\n        }\n      }\n    }\n  }\n\n  @if ($prototype-spacing-breakpoints) {\n    @for $spacer from 0 through $prototype-spacers-count {\n    // Loop through Responsive Breakpoints\n      @each $size in $breakpoint-classes {\n        @include breakpoint($size) {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size} {\n              @each $prop in (margin, padding) {\n                // All Sides\n                &-#{$prop}-#{$spacer} {\n                  @if ($prop == margin) { \n                    margin: $spacer * $global-margin !important;\n                  }\n                  @else if ($prop == padding) { \n                    padding: $spacer * $global-padding !important;\n                  }\n                }\n\n                @each $dir in (top, right, bottom, left, horizontal, vertical) {\n                  // Top Side\n                  &-#{$prop}-#{$dir}-#{$spacer} {\n                    @if ($prop == margin) { \n                      @include margin-direction($dir, $spacer);\n                    }\n                    @else if ($prop == padding) { \n                      @include padding-direction($dir, $spacer);\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation-prototype.min.css","foundation-prototype.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss","../scss/prototype/_text-utilities.scss","../scss/prototype/_text-transformation.scss","../scss/prototype/_text-decoration.scss","../scss/prototype/_font-styling.scss","../scss/prototype/_list-style-type.scss","../scss/prototype/_rounded.scss","../scss/prototype/_bordered.scss","../scss/prototype/_shadow.scss","../scss/prototype/_arrow.scss","../scss/prototype/_separator.scss","../scss/prototype/_position.scss","../scss/prototype/_overflow.scss","../scss/prototype/_display.scss","../scss/prototype/_border-box.scss","../scss/prototype/_border-none.scss","../scss/prototype/_sizing.scss","../scss/prototype/_spacing.scss"],"names":[],"mappings":"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lDA,wBGkDA,MAAA,oBHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,MAAA,KH1DF,uBG0DE,MAAA,KHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,sBH9DF,4BG8DE,MAAA,KH1DF,8BG0DE,MAAA,KHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,0BGkDA,MAAA,2BHlDA,0BGkDA,MAAA,2BHlDA,0BGkDA,MAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,MAAA,KH1DF,6BG0DE,MAAA,KHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,uBHFF,gCC3IM,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBRN,gCC3IM,aAAA,UAAA,YAAA,WDoJJ,2CCpJI,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBCJ,2CCpJI,aAAA,UAAA,YAAA,WD2IN,sBC3IM,cAAA,QAAA,aAAA,QpBmJA,aAAA,4BmBRN,sBC3IM,cAAA,SAAA,aAAA,UGAN,kBD6IE,MAAA,KC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,MtBMI,aAAA,4BuBnJN,mBD6IE,MAAA,KC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,OtBMI,aAAA,4BuBnJN,kBD6IE,MAAA,KC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,OC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,sBtBMI,aAAA,4BuBnJN,gCD6IE,MAAA,sBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,uBC7IF,iCD6IE,MAAA,sBC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,wBtBMI,aAAA,4BuBnJN,gCD6IE,MAAA,sBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,wBH0DE,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,EAsBE,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,KtBMI,aAAA,4BwB/HI,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBMI,aAAA,4BwB/HI,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MHgEE,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,ExB8GF,aAAA,4BmBoDF,wBK9ME,aAAA,EAAA,YAAA,EAGF,8BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,iCFkIR,MAAA,SElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,MtBMI,aAAA,4BwB/HI,kCFyHR,MAAA,SEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,mCFyHR,MAAA,UEzHQ,mCFyHR,MAAA,UEzHQ,mCFyHR,MAAA,MtBMI,aAAA,4BwB/HI,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBMI,aAAA,4BmB0DF,yBK7KE,aAAA,EAAA,YAAA,EAGF,+BAEI,cAAA,EAAA,aAAA,GxB8GF,aAAA,4BmBoDF,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,gCFkIR,MAAA,SElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,MtBMI,aAAA,4BwBxII,iCFkIR,MAAA,SElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,MtBMI,aAAA,4BwB/HI,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MtBMI,aAAA,4BmB0DF,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,GLsLJ,gBMnMF,YAAA,ENuME,+BMvMF,YAAA,uBNmME,gBMnMF,YAAA,SNuME,+BMvMF,YAAA,6BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,wBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,wBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,wBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,8BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,8BzB2HI,aAAA,4BmBwEF,iBMnMF,YAAA,ENuME,gCMvMF,YAAA,wBNmME,iBMnMF,YAAA,SNuME,gCMvMF,YAAA,8BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,INuME,gCMvMF,YAAA,yBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,INuME,gCMvMF,YAAA,yBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,INuME,gCMvMF,YAAA,yBNmME,kBMnMF,YAAA,UNuME,iCMvMF,YAAA,+BNmME,kBMnMF,YAAA,UNuME,iCMvMF,YAAA,gCzB2HI,aAAA,4BmBwEF,gBMnMF,YAAA,ENuME,+BMvMF,YAAA,wBNmME,gBMnMF,YAAA,SNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,yBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,yBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,yBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,gCNgDY,QEtEd,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,kBAAA,OAAA,OAAA,cAAA,OAAA,OAAA,UAAA,OAAA,OF8OA,cGjIA,OAAA,KACA,WAAA,KHgIA,cGpGE,OAAA,KHoGF,gBGpGE,OAAA,KHoGF,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,sBA2BM,mBAAA,KAAA,wBAAA,KAAA,WAAA,KnBzHA,aAAA,4BmB8FN,kBAAA,mBAAA,mBAAA,mBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,qBAAA,uBA2BM,mBAAA,KAAA,wBAAA,KAAA,WAAA,MnBzHA,aAAA,4BmB8FN,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,sBA2BM,mBAAA,KAAA,wBAAA,KAAA,WAAA,MA3BN,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KH+IA,iBGpGE,OAAA,SHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,KtBMI,aAAA,4BmB8FN,qBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EA2CE,OAAA,KHoGF,kBAAA,mBAAA,mBAAA,mBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,uBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KH+IA,uBGpGE,OAAA,KHoGF,kBGpGE,OAAA,SHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,IHoGF,mBGpGE,OAAA,UHoGF,mBGpGE,OAAA,UHoGF,mBGpGE,OAAA,MtBMI,aAAA,4BmB8FN,oBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EA2CE,OAAA,KHoGF,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,sBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KH+IA,sBGpGE,OAAA,KHoGF,iBGpGE,OAAA,SHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,MHoKA,gCCjTI,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB8JJ,gCCjTI,WAAA,UAAA,cAAA,WDiTJ,sBCjTI,YAAA,QAAA,eAAA,QpBmJA,aAAA,4BmB8JJ,sBCjTI,YAAA,SAAA,eAAA,UDuGN,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBGsCE,OAAA,qBFpIE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBGsCE,OAAA,sBFpIE,WAAA,SAAA,cAAA,UDsEJ,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,yBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,sBH9DF,4BG8DE,OAAA,KH1DF,8BG0DE,OAAA,KHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,OAAA,KH1DF,6BG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,uBHyLF,YOpVE,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAmCI,MAAA,MPkTN,kBACE,MAAA,KAGF,YOnSE,WAAA,KACA,UAAA,KAGF,2BAAA,MACA,mBAAA,yBPkSA,cO3SE,WAAA,KACA,WAAA,KACA,WAAA,KAMF,2BAAA,MACA,mBAAA,yBPuSA,sBOhSA,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,uBAAA,OAAA,mBAAA,OAAA,eAAA,OACA,WAAA,KAEA,8BACE,WAAA,KACA,kBAAA,OAAA,cAAA,OAAA,UAAA,O1BsFI,aAAA,4BmB2MJ,mBO5WA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAmCI,MAAA,MP0UJ,yBACE,MAAA,KAGF,mBO3TA,WAAA,KACA,UAAA,KAGF,2BAAA,MACA,mBAAA,yBP0TE,6BOnTF,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,uBAAA,OAAA,mBAAA,OAAA,eAAA,OACA,WAAA,KAEA,qCACE,WAAA,KACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OPiTA,qBOvUA,WAAA,KACA,WAAA,KACA,WAAA,KAMF,2BAAA,MACA,mBAAA,0B1BmGM,aAAA,4BmB2MJ,kBO5WA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAmCI,MAAA,MP0UJ,wBACE,MAAA,KAGF,kBO3TA,WAAA,KACA,UAAA,KAGF,2BAAA,MACA,mBAAA,yBP0TE,4BOnTF,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,uBAAA,OAAA,mBAAA,OAAA,eAAA,OACA,WAAA,KAEA,oCACE,WAAA,KACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OPiTA,oBOvUA,WAAA,KACA,WAAA,KACA,WAAA,KAMF,2BAAA,MACA,mBAAA,0BPoUE,mBOlYA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPiWA,MAAA,KnBpOA,aAAA,4BmBiOJ,0BOlYA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPuWE,MAAA,MnB1OF,aAAA,4BmBiOJ,yBOlYA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPuWE,MAAA,MAKN,yBAEI,OAAA,KnBjPA,aAAA,4BmB+OJ,gCAMM,OAAA,MnBrPF,aAAA,4BmB+OJ,+BAMM,OAAA,MAjSR,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBGsCE,OAAA,qBFpIE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBGsCE,OAAA,sBFpIE,WAAA,SAAA,cAAA,UDsEJ,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,yBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,sBH9DF,4BG8DE,OAAA,KH1DF,8BG0DE,OAAA,KHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,OAAA,KH1DF,6BG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkD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","file":"foundation-prototype.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n",null,"@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n\n.text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important; }\n\n.text-truncate {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: ellipsis;\n  white-space: nowrap !important; }\n\n.text-nowrap {\n  white-space: nowrap !important; }\n\n.text-wrap {\n  word-wrap: break-word !important; }\n\n.text-lowercase {\n  text-transform: lowercase !important; }\n\n.text-uppercase {\n  text-transform: uppercase !important; }\n\n.text-capitalize {\n  text-transform: capitalize !important; }\n\n.text-overline {\n  text-decoration: overline !important; }\n\n.text-underline {\n  text-decoration: underline !important; }\n\n.text-line-through {\n  text-decoration: line-through !important; }\n\n.font-wide {\n  letter-spacing: 0.25rem; }\n\n.font-normal {\n  font-weight: normal; }\n\n.font-bold {\n  font-weight: bold; }\n\n.font-italic {\n  font-style: italic !important; }\n\nul.list-disc {\n  list-style-type: disc !important; }\n\nul.list-circle {\n  list-style-type: circle !important; }\n\nul.list-square {\n  list-style-type: square !important; }\n\nol.list-decimal {\n  list-style-type: decimal !important; }\n\nol.list-lower-alpha {\n  list-style-type: lower-alpha !important; }\n\nol.list-lower-latin {\n  list-style-type: lower-latin !important; }\n\nol.list-lower-roman {\n  list-style-type: lower-roman !important; }\n\nol.list-upper-alpha {\n  list-style-type: upper-alpha !important; }\n\nol.list-upper-latin {\n  list-style-type: upper-latin !important; }\n\nol.list-upper-roman {\n  list-style-type: upper-roman !important; }\n\n.rounded {\n  border-radius: 5000px !important; }\n  .rounded .switch-paddle {\n    border-radius: 5000px !important; }\n    .rounded .switch-paddle:after {\n      border-radius: 50%; }\n\n.radius {\n  border-radius: 0.1875rem; }\n\n.bordered {\n  border: 0.0625rem solid #cacaca; }\n\n.shadow {\n  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }\n\n.arrow-down {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #0a0a0a transparent transparent; }\n\n.arrow-up {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-top-width: 0;\n  border-color: transparent transparent #0a0a0a; }\n\n.arrow-right {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #0a0a0a; }\n\n.arrow-left {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 0.4375rem;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #0a0a0a transparent transparent; }\n\n.separator-center {\n  text-align: center !important; }\n  .separator-center::before, .separator-center::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-center::after {\n    clear: both; }\n  .separator-center::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0; }\n\n.separator-left {\n  text-align: left !important; }\n  .separator-left::before, .separator-left::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-left::after {\n    clear: both; }\n  .separator-left::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-left: 0 !important; }\n\n.separator-right {\n  text-align: right !important; }\n  .separator-right::before, .separator-right::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .separator-right::after {\n    clear: both; }\n  .separator-right::after {\n    position: relative !important;\n    width: 3rem;\n    border-bottom: 0.125rem solid #1779ba;\n    margin: 1rem auto 0;\n    margin-right: 0 !important; }\n\n.overflow-visible {\n  overflow: visible !important; }\n\n.overflow-x-visible {\n  overflow-x: visible !important; }\n\n.overflow-y-visible {\n  overflow-y: visible !important; }\n\n.overflow-hidden {\n  overflow: hidden !important; }\n\n.overflow-x-hidden {\n  overflow-x: hidden !important; }\n\n.overflow-y-hidden {\n  overflow-y: hidden !important; }\n\n.overflow-scroll {\n  overflow: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.overflow-x-scroll {\n  overflow-x: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.overflow-y-scroll {\n  overflow-y: scroll !important;\n  -webkit-overflow-scrolling: touch; }\n\n.display-inline {\n  display: inline !important; }\n\n.display-inline-block {\n  display: inline-block !important; }\n\n.display-block {\n  display: block !important; }\n\n.display-table {\n  display: table !important; }\n\n.display-table-cell {\n  display: table-cell !important; }\n\n.position-static {\n  position: static !important; }\n\n.position-relative {\n  position: relative !important; }\n\n.position-absolute {\n  position: absolute !important; }\n\n.position-fixed {\n  position: fixed !important; }\n\n.position-fixed-top {\n  position: fixed !important;\n  top: 0rem !important;\n  right: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.position-fixed-bottom {\n  position: fixed !important;\n  right: 0rem !important;\n  bottom: 0rem !important;\n  left: 0rem !important;\n  z-index: 975; }\n\n.border-box {\n  box-sizing: border-box !important; }\n\n.border-none {\n  border: 0 !important; }\n\n.width-25 {\n  width: 25% !important; }\n\n.width-50 {\n  width: 50% !important; }\n\n.width-75 {\n  width: 75% !important; }\n\n.width-100 {\n  width: 100% !important; }\n\n.height-25 {\n  height: 25% !important; }\n\n.height-50 {\n  height: 50% !important; }\n\n.height-75 {\n  height: 75% !important; }\n\n.height-100 {\n  height: 100% !important; }\n\n.max-width-100 {\n  max-width: 100% !important; }\n\n.max-height-100 {\n  max-height: 100% !important; }\n\n.margin-0 {\n  margin: 0rem !important; }\n\n.margin-top-0 {\n  margin-top: 0rem !important; }\n\n.margin-right-0 {\n  margin-right: 0rem !important; }\n\n.margin-bottom-0 {\n  margin-bottom: 0rem !important; }\n\n.margin-left-0 {\n  margin-left: 0rem !important; }\n\n.margin-horizontal-0 {\n  margin-right: 0rem !important;\n  margin-left: 0rem !important; }\n\n.margin-vertical-0 {\n  margin-top: 0rem !important;\n  margin-bottom: 0rem !important; }\n\n.padding-0 {\n  padding: 0rem !important; }\n\n.padding-top-0 {\n  padding-top: 0rem !important; }\n\n.padding-right-0 {\n  padding-right: 0rem !important; }\n\n.padding-bottom-0 {\n  padding-bottom: 0rem !important; }\n\n.padding-left-0 {\n  padding-left: 0rem !important; }\n\n.padding-horizontal-0 {\n  padding-right: 0rem !important;\n  padding-left: 0rem !important; }\n\n.padding-vertical-0 {\n  padding-top: 0rem !important;\n  padding-bottom: 0rem !important; }\n\n.margin-1 {\n  margin: 1rem !important; }\n\n.margin-top-1 {\n  margin-top: 1rem !important; }\n\n.margin-right-1 {\n  margin-right: 1rem !important; }\n\n.margin-bottom-1 {\n  margin-bottom: 1rem !important; }\n\n.margin-left-1 {\n  margin-left: 1rem !important; }\n\n.margin-horizontal-1 {\n  margin-right: 1rem !important;\n  margin-left: 1rem !important; }\n\n.margin-vertical-1 {\n  margin-top: 1rem !important;\n  margin-bottom: 1rem !important; }\n\n.padding-1 {\n  padding: 1rem !important; }\n\n.padding-top-1 {\n  padding-top: 1rem !important; }\n\n.padding-right-1 {\n  padding-right: 1rem !important; }\n\n.padding-bottom-1 {\n  padding-bottom: 1rem !important; }\n\n.padding-left-1 {\n  padding-left: 1rem !important; }\n\n.padding-horizontal-1 {\n  padding-right: 1rem !important;\n  padding-left: 1rem !important; }\n\n.padding-vertical-1 {\n  padding-top: 1rem !important;\n  padding-bottom: 1rem !important; }\n\n.margin-2 {\n  margin: 2rem !important; }\n\n.margin-top-2 {\n  margin-top: 2rem !important; }\n\n.margin-right-2 {\n  margin-right: 2rem !important; }\n\n.margin-bottom-2 {\n  margin-bottom: 2rem !important; }\n\n.margin-left-2 {\n  margin-left: 2rem !important; }\n\n.margin-horizontal-2 {\n  margin-right: 2rem !important;\n  margin-left: 2rem !important; }\n\n.margin-vertical-2 {\n  margin-top: 2rem !important;\n  margin-bottom: 2rem !important; }\n\n.padding-2 {\n  padding: 2rem !important; }\n\n.padding-top-2 {\n  padding-top: 2rem !important; }\n\n.padding-right-2 {\n  padding-right: 2rem !important; }\n\n.padding-bottom-2 {\n  padding-bottom: 2rem !important; }\n\n.padding-left-2 {\n  padding-left: 2rem !important; }\n\n.padding-horizontal-2 {\n  padding-right: 2rem !important;\n  padding-left: 2rem !important; }\n\n.padding-vertical-2 {\n  padding-top: 2rem !important;\n  padding-bottom: 2rem !important; }\n\n.margin-3 {\n  margin: 3rem !important; }\n\n.margin-top-3 {\n  margin-top: 3rem !important; }\n\n.margin-right-3 {\n  margin-right: 3rem !important; }\n\n.margin-bottom-3 {\n  margin-bottom: 3rem !important; }\n\n.margin-left-3 {\n  margin-left: 3rem !important; }\n\n.margin-horizontal-3 {\n  margin-right: 3rem !important;\n  margin-left: 3rem !important; }\n\n.margin-vertical-3 {\n  margin-top: 3rem !important;\n  margin-bottom: 3rem !important; }\n\n.padding-3 {\n  padding: 3rem !important; }\n\n.padding-top-3 {\n  padding-top: 3rem !important; }\n\n.padding-right-3 {\n  padding-right: 3rem !important; }\n\n.padding-bottom-3 {\n  padding-bottom: 3rem !important; }\n\n.padding-left-3 {\n  padding-left: 3rem !important; }\n\n.padding-horizontal-3 {\n  padding-right: 3rem !important;\n  padding-left: 3rem !important; }\n\n.padding-vertical-3 {\n  padding-top: 3rem !important;\n  padding-bottom: 3rem !important; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $mgc: rem-calc($mg);\n      @if $mgc == 0 {\n        $mgc: 0rem;\n      }\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{$mg}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    // Make sure that 0 is translated in 0rem for calc()\n    $mgc: rem-calc($margin-gutter);\n    @if $mgc == 0 {\n      $mgc: 0rem;\n    }\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{$mgc}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    // Make sure that 0 is translated in 0rem for calc()\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    @if $gutter == 0 {\n      $gutter: 0rem;\n    }\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-utilities\n////\n\n/// Responsive breakpoints for text utilities\n/// @type Boolean\n$prototype-utilities-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default Value for `text-overflow` variable\n/// @type String\n$prototype-text-overflow: ellipsis !default;\n\n/// Image Replacement utility. `text-hide`\n@mixin text-hide {\n  font: 0/0 a !important;\n  color: transparent !important;\n  text-shadow: none !important;\n  background-color: transparent !important;\n  border: 0 !important;\n}\n\n/// Truncating the text, elipsis by default.\n/// @param {String} $overflow [$prototype-text-overflow] Text Truncate\n@mixin text-truncate(\n  $overflow: $prototype-text-overflow\n) {\n  max-width: 100% !important;\n  overflow: hidden !important;\n  text-overflow: $overflow; \n  white-space: nowrap !important;\n}\n\n/// No wrapping of the text. `text-nowrap`\n@mixin text-nowrap {\n  white-space: nowrap !important;\n}\n\n/// Wrapping of the text. `text-wrap`\n@mixin text-wrap {\n  word-wrap: break-word !important;\n}\n\n@mixin foundation-prototype-text-utilities {\n  .text-hide {\n    @include text-hide;\n  }\n\n  .text-truncate {\n    @include text-truncate;\n  }\n\n  .text-nowrap {\n    @include text-nowrap;\n  }\n\n  .text-wrap {\n    @include text-wrap;\n  }\n\n  @if ($prototype-utilities-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-hide {\n            @include text-hide;\n          }\n\n          .#{$size}-text-truncate {\n            @include text-truncate;\n          }\n\n          .#{$size}-text-nowrap {\n            @include text-nowrap;\n          }\n\n          .#{$size}-text-wrap {\n            @include text-wrap;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-transformation\n////\n\n/// Responsive breakpoints for text transformation classes\n/// @type Boolean\n$prototype-transformation-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-transformation` classes\n/// @type Map\n$prototype-text-transformation: (\n  lowercase,\n  uppercase,\n  capitalize\n) !default;\n\n/// Text Transformation, by default coming through a map `$prototype-text-transformation`\n/// @param {String} $transformation [] Text Transformation\n@mixin text-transform($transformation) {\n  text-transform: $transformation !important;\n}\n\n@mixin foundation-prototype-text-transformation {\n  @each $transformation in $prototype-text-transformation {\n    .text-#{$transformation} {\n      @include text-transform($transformation);\n    }\n  }\n\n  @if ($prototype-transformation-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $transformation in $prototype-text-transformation {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$transformation} {\n              @include text-transform($transformation);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-text-decoration\n////\n\n/// Responsive breakpoints for text decoration classes\n/// @type Boolean\n$prototype-decoration-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `text-decoration` classes\n/// @type Map\n$prototype-text-decoration: (\n  overline,\n  underline,\n  line-through,\n) !default;\n\n/// Text Decoration, by default coming through a map `$prototype-text-decoration`\n/// @param {String} $decoration [] Text Decoration\n@mixin text-decoration($decoration) {\n  text-decoration: $decoration !important;\n}\n\n@mixin foundation-prototype-text-decoration {\n  @each $decoration in $prototype-text-decoration {\n    .text-#{$decoration} {\n      @include text-decoration($decoration);\n    }\n  }\n\n  @if ($prototype-decoration-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $decoration in $prototype-text-decoration {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-text-#{$decoration} {\n              @include text-decoration($decoration);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-font-styling\n////\n\n/// Responsive breakpoints for font styling types\n/// @type Boolean\n$prototype-font-breakpoints: $global-prototype-breakpoints !default;\n\n/// Letter spacing for `.font-wide`\n/// @type Number\n$prototype-wide-letter-spacing: rem-calc(4) !default;\n\n/// Default weight for `.font-normal`, defaulted to `global-weight-normal`\n/// @type Number\n$prototype-font-normal: $global-weight-normal !default;\n\n/// Default weight for `.font-bold`, defaulted to `global-weight-bold`\n/// @type Number\n$prototype-font-bold: $global-weight-bold !default;\n\n/// Font wide letter spacing!\n/// @param {Number} $letter-spacing [$prototype-wide-letter-spacing] Wide letter spacing for the font\n@mixin font-wide(\n  $letter-spacing: $prototype-wide-letter-spacing\n) {\n  letter-spacing: $letter-spacing;\n}\n\n/// Font Weight Normal, default value coming through `global-weight-normal`\n/// @param {Number} $weight [$prototype-font-normal] Weight of the font (normal)\n@mixin font-normal(\n  $weight: $prototype-font-normal\n) {\n  font-weight: $weight;\n}\n\n/// Font Weight Bold, default value coming through `global-weight-bold`\n/// @param {Number} $weight [$prototype-font-bold] Weight of the font (bold)\n@mixin font-bold(\n  $weight: $prototype-font-bold\n) {\n  font-weight: $weight;\n}\n\n/// Font Style Italic\n@mixin font-italic {\n  font-style: italic !important;\n}\n\n@mixin foundation-prototype-font-styling {\n  .font-wide {\n    @include font-wide;\n  }\n\n  .font-normal {\n    @include font-normal;\n  }\n\n  .font-bold {\n    @include font-bold;\n  }\n\n  .font-italic {\n    @include font-italic;\n  }\n\n  @if ($prototype-font-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-font-wide {\n            @include font-wide;\n          }\n\n          .#{$size}-font-normal {\n            @include font-normal;\n          }\n\n          .#{$size}-font-bold {\n            @include font-bold;\n          }\n\n          .#{$size}-font-italic {\n            @include font-italic;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-list-style-type\n////\n\n/// Responsive breakpoints for list styling types\n/// @type Boolean\n$prototype-list-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `style-type-unordered` classes\n/// @type Map\n$prototype-style-type-unordered: (\n  disc,\n  circle,\n  square\n) !default;\n\n/// Map containing all the `style-type-ordered` classes\n/// @type Map\n$prototype-style-type-ordered: (\n  decimal,\n  lower-alpha,\n  lower-latin,\n  lower-roman,\n  upper-alpha,\n  upper-latin,\n  upper-roman\n) !default;\n\n\n/// Style type for unordered Lists, by default coming through a map `$prototype-style-type-unordered`\n/// @param {String} $style-type-unordered [] Style type for unordered Lists\n@mixin style-type-unordered($style-type-unordered) {\n  list-style-type: $style-type-unordered !important;\n}\n\n/// Style type for ordered Lists, by default coming through a map `$prototype-style-type-ordered`\n/// @param {String} $style-type-ordered [] Style type for ordered Lists\n@mixin style-type-ordered($style-type-ordered) {\n  list-style-type: $style-type-ordered !important;\n}\n\n@mixin list-unordered {\n  @each $style-type-unordered in $prototype-style-type-unordered {\n    ul.list-#{$style-type-unordered} {\n      @include style-type-unordered($style-type-unordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-unordered in $prototype-style-type-unordered {\n          @if $size != $-zf-zero-breakpoint {\n            ul.#{$size}-list-#{$style-type-unordered} {\n              @include style-type-unordered($style-type-unordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin list-ordered {\n  @each $style-type-ordered in $prototype-style-type-ordered {\n    ol.list-#{$style-type-ordered} {\n      @include style-type-ordered($style-type-ordered);\n    }\n  }\n\n  @if ($prototype-list-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $style-type-ordered in $prototype-style-type-ordered {\n          @if $size != $-zf-zero-breakpoint {\n            ol.#{$size}-list-#{$style-type-ordered} {\n              @include style-type-ordered($style-type-ordered);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-prototype-list-style-type {\n  @include list-unordered;\n  @include list-ordered;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-rounded\n////\n\n/// Responsive breakpoints for rounded utility.\n/// @type Boolean\n$prototype-rounded-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-radius`\n/// @type Number\n$prototype-border-radius: rem-calc(3) !default;\n\n/// Rounded utility (all corners): Adds radius corners (all corners) to an element by default.\n/// @param {Number} $radius [$prototype-border-radius] Border radius (all corners)\n@mixin border-radius(\n  $radius: $prototype-border-radius\n) {\n  border-radius: $radius;\n}\n\n/// Rounded square utility or rectangle utility (all corners): Rounds all corners to an element by default to make a pill shape.\n@mixin border-rounded {\n  border-radius: 5000px !important;\n}\n\n@mixin foundation-prototype-rounded {\n  .rounded {\n    @include border-rounded;\n\n    .switch-paddle {\n      @include border-rounded;\n      &:after {\n        border-radius: 50%; // For switches\n      }\n    }\n  }\n\n  .radius {\n    @include border-radius;\n  }\n\n  @if ($prototype-rounded-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-rounded {\n            @include border-rounded;\n          }\n          .#{$size}-radius {\n            @include border-radius;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-bordered\n////\n\n/// Responsive breakpoints for bordered utility.\n/// @type Boolean\n$prototype-bordered-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-border-width`\n/// @type Number\n$prototype-border-width: rem-calc(1) !default;\n\n/// Default value for `prototype-border-type`\n/// @type String\n$prototype-border-type: solid !default;\n\n/// Default value for `prototype-border-color` defaulted to `medium-gray`\n/// @type Color\n$prototype-border-color: $medium-gray !default;\n\n/// Bordered Utility: Adds a light border to an element by default.\n/// @param {Number} $width [$prototype-border-width] Width of the border\n/// @param {String} $type [$prototype-border-type] Type of the border\n/// @param {Color} $color [$prototype-border-color] Color of the border\n@mixin bordered(\n  $width: $prototype-border-width,\n  $type: $prototype-border-type,\n  $color: $prototype-border-color\n) {\n  border: $width $type $color;\n}\n\n@mixin foundation-prototype-bordered {\n  .bordered {\n    @include bordered;\n  }\n\n  @if ($prototype-bordered-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-bordered {\n            @include bordered;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-shadow\n////\n\n/// Responsive breakpoints for shadow utility.\n/// @type Boolean\n$prototype-shadow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default value for `prototype-box-shadow`\n/// @type Number\n$prototype-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12) !default;\n\n/// Shadow Utility: Adds a light box shadow to an element by default.\n/// @param {Number} $shadow [$prototype-box-shadow] Box Shadow of a component\n@mixin shadow(\n  $shadow: $prototype-box-shadow\n) {\n  box-shadow: $shadow;\n}\n\n@mixin foundation-prototype-shadow {\n  .shadow {\n    @include shadow;\n  }\n\n  @if ($prototype-shadow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-shadow {\n            @include shadow;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-arrow\n////\n\n/// Map containing all the `arrow` direction\n/// @type Map\n$prototype-arrow-directions: (\n  down,\n  up,\n  right,\n  left\n) !default;\n\n/// Width of the Arrow, `0.4375rem` by default.\n/// @type Number\n$prototype-arrow-size: 0.4375rem;\n\n/// Color of the Arrow, `$black` by default.\n/// @type Color\n$prototype-arrow-color: $black;\n\n@mixin foundation-prototype-arrow {\n  @each $prototype-arrow-direction in $prototype-arrow-directions {\n    .arrow-#{$prototype-arrow-direction} {\n      @include css-triangle(\n        $prototype-arrow-size, \n        $prototype-arrow-color, \n        $prototype-arrow-direction\n      );\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-separator\n////\n\n/// Responsive breakpoints for separator.\n/// @type Boolean\n$prototype-separator-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default alignment of a separator.\n/// @type String\n$prototype-separator-align: center !default;\n\n/// Height of a separator.\n/// @type Number\n$prototype-separator-height: rem-calc(2) !default;\n\n/// Width of a separator.\n/// @type Number\n$prototype-separator-width: 3rem !default;\n\n/// Default color of a separator.\n/// @type Color\n$prototype-separator-background: $primary-color !default;\n\n/// Top Margin of a separator.\n/// @type Number\n$prototype-separator-margin-top: $global-margin !default;\n\n/// Title separator Utility, mostly used to style the main heading of a section\n/// @param {String} $align [$prototype-separator-align] - separator Alignment\n/// @param {Number} $height [$prototype-separator-height] - Width\n/// @param {Number} $width [$prototype-separator-width] - Height\n/// @param {Color} $background [$prototype-separator-background] - Background\n/// @param {Number} $top [$prototype-separator-margin-top] - Margin Top\n@mixin separator (\n  $align: $prototype-separator-align,\n  $height: $prototype-separator-height,\n  $width: $prototype-separator-width,\n  $background: $prototype-separator-background,\n  $top: $prototype-separator-margin-top\n) {\n  @include clearfix;\n  text-align: $align !important;\n\n  &::after {\n    @include position(relative);\n    width: $width;\n    border-bottom: $height solid $background;\n    margin: $top auto 0;\n\n    @if $align == left {\n      margin-left: 0 !important;\n    }\n\n    @if $align == right {\n      margin-right: 0 !important;\n    }\n  }\n}\n\n@mixin foundation-prototype-separator {\n  .separator-center {\n    @include separator(center);\n  }\n\n  .separator-left {\n    @include separator(left);\n  }\n\n  .separator-right {\n    @include separator(right);\n  }\n\n  @if ($prototype-separator-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-separator-center {\n            @include separator(center);\n          }\n          .#{$size}-separator-left {\n            @include separator(left);\n          }\n          .#{$size}-separator-right {\n            @include separator(right);\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-position\n////\n\n/// Responsive breakpoints for position helpers\n/// @type Boolean\n$prototype-position-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `position` classes\n/// @type Map\n$prototype-position: (\n  static,\n  relative,\n  absolute,\n  fixed\n) !default;\n\n/// z-index for fixed positioning\n/// @type Number\n$prototype-position-z-index: 975 !default;\n\n/// Position classes, by default coming through a map `$prototype-position`, whereas all the offset values are multiplied by `$global-position` which by default is equal to `1rem`.\n/// @param {String} $position [] Position classes, Either `static`, `relative`, `absolute` or `fixed`\n/// @param {Number} $top [null] - Top offset\n/// @param {Number} $right [null] - Right offset\n/// @param {Number} $bottom [null] - Bottom offset\n/// @param {Number} $left [null] - Left offset\n@mixin position(\n  $position,\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  position: $position !important;\n  @if $top != null {\n    top: $top * $global-position !important;\n  }\n  @if $right != null {\n    right: $right * $global-position !important;\n  }\n  @if $bottom != null {\n    bottom: $bottom * $global-position !important;\n  }\n  @if $left != null {\n    left: $left * $global-position !important;\n  }\n}\n\n/// Position Fixed on top corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-top`\n@mixin position-fixed-top(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, 0, 0, null, 0);\n  z-index: $z-index;\n}\n\n/// Position Fixed on bottom corners\n/// @param {Number} $z-index [$prototype-position-z-index] z-index for `position-fixed-bottom`\n@mixin position-fixed-bottom(\n  $z-index: $prototype-position-z-index\n) {\n  @include position(fixed, null, 0, 0, 0);\n  z-index: $z-index;\n}\n\n@mixin foundation-prototype-position {\n  // Position: Static, Relative, Fixed, Absolute\n  @each $position in $prototype-position {\n    .position-#{$position} {\n      @include position($position);\n    }\n  }\n\n  // Position: Fixed Top, Fixed Bottom\n  .position-fixed-top {\n    @include position-fixed-top;\n  }\n  .position-fixed-bottom {\n    @include position-fixed-bottom;\n  }\n\n  @if ($prototype-position-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        // Position: Static, Relative, Fixed, Absolute\n        @each $position in $prototype-position {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-position-#{$position} {\n              @include position($position);\n            }\n          }\n        }\n\n        // Position: Fixed Top, Fixed Bottom\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-position-fixed-top {\n            @include position-fixed-top;\n          }\n\n          .#{$size}-position-fixed-bottom {\n            @include position-fixed-bottom;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-overflow\n////\n\n/// Responsive breakpoints for overflow helper classes\n/// @type Boolean\n$prototype-overflow-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `overflow` classes\n/// @type Map\n$prototype-overflow: (\n  visible,\n  hidden,\n  scroll\n) !default;\n\n/// Overflow classes, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes\n@mixin overflow($overflow) {\n  overflow: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n/// Overflow classes on horizontal axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (horizontal axis)\n@mixin overflow-x($overflow) {\n  overflow-x: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n/// Overflow classes on vertical axis, by default coming through a map `$prototype-overflow`\n/// @param {String} $overflow [] Overflow classes (vertical axis)\n@mixin overflow-y($overflow) {\n  overflow-y: $overflow !important;\n  @if $overflow == 'scroll' {\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n@mixin foundation-prototype-overflow {\n  @each $overflow in $prototype-overflow {\n    .overflow-#{$overflow} {\n      @include overflow($overflow);\n    }\n    .overflow-x-#{$overflow} {\n      @include overflow-x($overflow);\n    }\n    .overflow-y-#{$overflow} {\n      @include overflow-y($overflow);\n    }\n  }\n\n  @if ($prototype-overflow-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $overflow in $prototype-overflow {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-overflow-#{$overflow} {\n              @include overflow($overflow);\n            }\n            .#{$size}-overflow-x-#{$overflow} {\n              @include overflow-x($overflow);\n            }\n            .#{$size}-overflow-y-#{$overflow} {\n              @include overflow-y($overflow);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-display\n////\n\n/// Responsive breakpoints for display classes\n/// @type Boolean\n$prototype-display-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `display` classes\n/// @type Map\n$prototype-display: (\n  inline,\n  inline-block,\n  block,\n  table,\n  table-cell\n) !default;\n\n/// Display classes, by default coming through a map `$prototype-display`\n/// @param {String} $display [] Display classes\n@mixin display($display) {\n  display: $display !important;\n}\n\n@mixin foundation-prototype-display {\n  @each $display in $prototype-display {\n    .display-#{$display} {\n      @include display($display);\n    }\n  }\n\n  @if ($prototype-display-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @each $display in $prototype-display {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size}-display-#{$display} {\n              @include display($display);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-box\n////\n\n/// Responsive breakpoints for border box.\n/// @type Boolean\n$prototype-border-box-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border box utility\n@mixin border-box {\n  box-sizing: border-box !important;\n}\n\n@mixin foundation-prototype-border-box {\n  .border-box {\n    @include border-box;\n  }\n\n  @if ($prototype-border-box-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-box {\n            @include border-box;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-border-none\n////\n\n/// Responsive breakpoints for border none.\n/// @type Boolean\n$prototype-border-none-breakpoints: $global-prototype-breakpoints !default;\n\n/// Border none utility\n@mixin border-none {\n  border: 0 !important;\n}\n\n@mixin foundation-prototype-border-none {\n  .border-none {\n    @include border-none;\n  }\n\n  @if ($prototype-border-none-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-border-none {\n            @include border-none;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-sizing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-sizing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Map containing all the `sizing` classes\n/// @type Map\n$prototype-sizing: (\n  width,\n  height\n) !default;\n\n/// Map containing all the sizes.\n/// @type Map\n$prototype-sizes: (\n  25: 25%,\n  50: 50%,\n  75: 75%,\n  100: 100%\n) !default;\n\n/// Max Width 100 utility.\n@mixin max-width-100 {\n  max-width: 100% !important;\n}\n\n/// Max Height 100 utility.\n@mixin max-height-100 {\n  max-height: 100% !important;\n}\n\n@mixin foundation-prototype-sizing {\n  // Element Sizing\n  @each $sizing in $prototype-sizing {\n    @each $length, $percentage in $prototype-sizes {\n      .#{$sizing}-#{$length} {\n        #{$sizing}: $percentage !important;\n      }\n    }\n  }\n\n  // Max width & height\n  .max-width-100 {\n    @include max-width-100;\n  }\n  .max-height-100 {\n    @include max-height-100;\n  }\n\n  @if ($prototype-sizing-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          @each $sizing in $prototype-sizing {\n            @each $length, $percentage in $prototype-sizes {\n              .#{$size}-#{$sizing}-#{$length} {\n                #{$sizing}: $percentage !important;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group prototype-spacing\n////\n\n/// Responsive breakpoints for spacing classes (margin and padding)\n/// @type Boolean\n$prototype-spacing-breakpoints: $global-prototype-breakpoints !default;\n\n/// Default number of spacers count (margin and padding)\n/// @type Number\n$prototype-spacers-count: 3 !default;\n\n/// Margin helper mixin, all the values are multiplied by `$global-margin` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Margin Top\n/// @param {Number} $right [null] - Margin Right\n/// @param {Number} $bottom [null] - Margin Bottom\n/// @param {Number} $left [null] - Margin Left\n@mixin margin(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    margin-top: $top * $global-margin !important;\n  }\n  @if $right != null {\n    margin-right: $right * $global-margin !important;\n  }\n  @if $bottom != null {\n    margin-bottom: $bottom * $global-margin !important;\n  }\n  @if $left != null {\n    margin-left: $left * $global-margin !important;\n  }\n}\n\n/// Padding helper mixin, all the values are multiplied by `$global-padding` which by default is equal to `1rem`\n/// @param {Number} $top [null] - Padding Top\n/// @param {Number} $right [null] - Padding Right\n/// @param {Number} $bottom [null] - Padding Bottom\n/// @param {Number} $left [null] - Padding Left\n@mixin padding(\n  $top: null,\n  $right: null,\n  $bottom: null,\n  $left: null\n) {\n  @if $top != null {\n    padding-top: $top * $global-padding !important;\n  }\n  @if $right != null {\n    padding-right: $right * $global-padding !important;\n  }\n  @if $bottom != null {\n    padding-bottom: $bottom * $global-padding !important;\n  }\n  @if $left != null {\n    padding-left: $left * $global-padding !important;\n  }\n}\n\n/// Margin classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin margin-direction($dir, $spacer) {\n  @if ($dir == top) {\n    @include margin($top: $spacer);\n  }\n  @else if ($dir == right) {\n    @include margin($right: $spacer);\n  }\n  @else if ($dir == bottom) {\n    @include margin($bottom: $spacer);\n  }\n  @else if ($dir == left) {\n    @include margin($left: $spacer);\n  }\n  @else if ($dir == horizontal) {\n    @include margin($right: $spacer, $left: $spacer);\n  }\n  @else if ($dir == vertical) {\n    @include margin($top: $spacer, $bottom: $spacer);\n  }\n}\n\n/// Padding classes for specific direction properties\n/// @param {String} $dir [] Direction\n/// @param {Number} $spacer [] Spacer\n@mixin padding-direction($dir, $spacer) {\n  @if ($dir == top) {\n    @include padding($top: $spacer);\n  }\n  @else if ($dir == right) {\n    @include padding($right: $spacer);\n  }\n  @else if ($dir == bottom) {\n    @include padding($bottom: $spacer);\n  }\n  @else if ($dir == left) {\n    @include padding($left: $spacer);\n  }\n  @else if ($dir == horizontal) {\n    @include padding($right: $spacer, $left: $spacer);\n  }\n  @else if ($dir == vertical) {\n    @include padding($top: $spacer, $bottom: $spacer);\n  }\n}\n\n@mixin foundation-prototype-spacing {\n  @for $spacer from 0 through $prototype-spacers-count {\n\n    @each $prop in (margin, padding) {\n      // All Sides\n      .#{$prop}-#{$spacer} {\n        @if ($prop == margin) {\n          margin: $spacer * $global-margin !important;\n        }\n        @else if ($prop == padding) {\n          padding: $spacer * $global-padding !important;\n        }\n      }\n\n      @each $dir in (top, right, bottom, left, horizontal, vertical) {\n        // Top Side\n        .#{$prop}-#{$dir}-#{$spacer} {\n          @if ($prop == margin) {\n            @include margin-direction($dir, $spacer);\n          }\n          @else if ($prop == padding) {\n            @include padding-direction($dir, $spacer);\n          }\n        }\n      }\n    }\n  }\n\n  @if ($prototype-spacing-breakpoints) {\n    @for $spacer from 0 through $prototype-spacers-count {\n      // Loop through Responsive Breakpoints\n      @each $size in $breakpoint-classes {\n        @include breakpoint($size) {\n          @if $size != $-zf-zero-breakpoint {\n            .#{$size} {\n              @each $prop in (margin, padding) {\n                // All Sides\n                &-#{$prop}-#{$spacer} {\n                  @if ($prop == margin) {\n                    margin: $spacer * $global-margin !important;\n                  }\n                  @else if ($prop == padding) {\n                    padding: $spacer * $global-padding !important;\n                  }\n                }\n\n                @each $dir in (top, right, bottom, left, horizontal, vertical) {\n                  // Top Side\n                  &-#{$prop}-#{$dir}-#{$spacer} {\n                    @if ($prop == margin) {\n                      @include margin-direction($dir, $spacer);\n                    }\n                    @else if ($prop == padding) {\n                      @include padding-direction($dir, $spacer);\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"]}
\ No newline at end of file
index f0e75ea57922ae31bb387b5a062a1453d81982e7..b589d749f129e17ecbe00eb7b733ed78bb6c64ea 100644 (file)
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /**
  * Foundation for Sites
- * Version 6.7.4
+ * Version 6.7.5
  * https://get.foundation
  * Licensed under MIT Open Source
  */
@@ -814,8 +814,7 @@ code, .code-inline {
   * {
     background: transparent !important;
     color: black !important;
-    -webkit-print-color-adjust: economy;
-            color-adjust: economy;
+    print-color-adjust: economy;
     -webkit-box-shadow: none !important;
             box-shadow: none !important;
     text-shadow: none !important; }
index a0b0b1d732551503c071ad0e40436b9e0e60324c..9ecc2419edb376a79e3409930864e8c9c48b2e8d 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["foundation-rtl.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,WCnBgE,EAAA,EJnD7D;;AlBqFC;EkB5GF;IGkDJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WAlFY,EAAA;EHNZ;IG6CF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHvCF;IGkFF,WAlFY,EAAA;EHSV;IGyEF,eCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,WCnBgE,EAAA,EJnD7D;;AAKL;EACE,WAAW,EAAA;;AAIb;EACE,YAAY,EAAA;;AA8Bd;ECvGM,sBAA6D;EAA7D,uBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,uBAA6D;MAA7D,wBAA6D,EAAA,EDsIlE;EA/BD;IG6BE,2BAtD8F;IFrE5F,qBAA6D;IAA7D,sBAA6D,EAAA;EnB0I3D;IkB5CN;MG6BE,4BAtD8F;MFrE5F,sBAA6D;MAA7D,uBAA6D,EAAA,ED2G1D;EArCP;IGqDE,WAlFY,EAAA;EHiCd;IGiDE,WAlFY,EAAA;EHyCZ;IGyCA,+BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;ErBqE1F;IkBpEN;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHChG;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA,EHe7F;ElBsDG;IkBpEN;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA,EHe7F;;AA8CH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,EDgJhE;;AAID;ECpJI,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBCJ;MCpJI,wBAA6D;MAA7D,uBAA6D,EAAA,EDsJhE;;AAXH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,ED2JhE;;AK3JH;EFoIE,WCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,YCnBgE,EAAA;;AtBkC5D;EuBnJN;IFoIE,WCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,YCnBgE,EAAA,EC/GjE;;AvBiJK;EuBnJN;IFoIE,WCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,YCnBgE,EAAA,EC/GjE;;AAFD;EFoIE,2BAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,4BAtD8F,EAAA;;ArBqE1F;EuBnJN;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA;EE9EhG;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA,EE5E/F;;AvBiJK;EuBnJN;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA,EE5E/F;;ALqMG;EM9ME,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,eAA0B;IAA1B,cAA0B,EAAA;EAsBxB;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA;EtBkC5D;IwB/HI;MHgHR,eCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,WCnBgE,EAAA,EE3FvD;ExB6HL;IwB/HI;MHgHR,eCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,WCnBgE,EAAA,EE3FvD;;ANuLP;EM7KE,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,gBAA4B;IAA5B,eAA4B,EAAA;;AxB8G9B;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;AxB4GC;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;ANoLD;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;APuM3B;EOvMF,iBAA6B,EAAA;;AP2M3B;EO3MF,qCAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;APuM3B;EOvMF,iBAA6B,EAAA;;AP2M3B;EO3MF,qCAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;APuM3B;EOvMF,iBAA6B,EAAA;;AP2M3B;EO3MF,qCAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;APuM3B;EOvMF,uBAA6B,EAAA;;AP2M3B;EO3MF,2CAA6B,EAAA;;AzB+HzB;EkBwEF;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,uBAA6B,EAAA;EP2M3B;IO3MF,4CAA6B,EAAA;EPuM3B;IOvMF,iBAA6B,EAAA;EP2M3B;IO3MF,sCAA6B,EAAA;EPuM3B;IOvMF,uB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gIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,YCnBgE,EAAA,EJyL3D;;AAOL;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,EDqT9D;;AAJH;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,ED0T9D;;AAnNL;ECvGM,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,sBAA6D;MAA7D,yBAA6D,EAAA,EDsIlE;EA/BD;IG6BE,4BAtD8F;IFrE5F,oBAA6D;IAA7D,uBAA6D,EAAA;EnB0I3D;IkB5CN;MG6BE,6BAtD8F;MFrE5F,qBAA6D;MAA7D,wBAA6D,EAAA,ED2G1D;EArCP;IGqDE,YAlFY,EAAA;EHiCd;IGiDE,YAlFY,EAAA;EHyCZ;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,4BAtD8F,EAAA;ErBqE1F;IkBpEN;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,E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AA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA;IHChG;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA,EHe7F;ElBsDG;IkBpEN;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA,EHe7F;;AAkTD;EQ1YI,6BAAmC,EAAA;E1B8InC;IkB4PJ;MQ1YI,8BAAmC,EAAA,ER4YtC;ElB9PG;IkB4PJ;MQ1YI,8BAAmC,EAAA,ER4YtC;;AlB9PG;EkBgQF;IQ9YE,8BAAmC,EAAA,ERgZpC;;AlBlQC;EkBgQF;IQ9YE,8BAAmC,EAAA,ERgZpC;;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;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;A7DsEV;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;A7DmEC;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;AA/FL;ECYA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa,EAAA;;ADRb;EACE,mBAAc;EAAd,sBAAc;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","file":"foundation-rtl.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-right: 0.5rem;\n  margin-left: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-left: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-left: 0; }\n  .input-group-label:last-child {\n    border-right: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-right: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: left -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-left: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-right: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-right: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-right: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-right: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-right: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-right: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-right: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-right: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-right: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-right: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-right: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-right: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-right: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-right: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-right: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-right: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-right: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-right: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-right: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-right: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-right: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-right: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-right: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-right: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-right: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-right: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-right: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-right: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-right: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: left;\n    margin-right: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-right: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-left: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-left: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-left: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-right-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-left: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-left: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.slider:not(.vertical) {\n  transform: scale(-1, 1); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    right: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      right: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  right: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  left: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    right: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    right: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    right: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: right; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: right;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"\\\\\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-right: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-left: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-right: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    left: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-left: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-right: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  right: 0; }\n\n.orbit-next {\n  right: auto;\n  left: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: right; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-right: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-right: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-left: 0;\n    margin-right: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-right {\n    justify-content: flex-start; }\n  .menu.align-left li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-left li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-left.vertical li {\n    display: block;\n    text-align: left; }\n    .menu.align-left.vertical li .submenu li {\n      text-align: left; }\n  .menu.align-left.icon-top li a img,\n  .menu.align-left.icon-top li a i,\n  .menu.align-left.icon-top li a svg, .menu.align-left.icon-bottom li a img,\n  .menu.align-left.icon-bottom li a i,\n  .menu.align-left.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-left .nested {\n    margin-left: 1rem;\n    margin-right: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-left: 0;\n  margin-right: 1rem; }\n\n.accordion-menu.align-left .nested.is-accordion-submenu {\n  margin-left: 1rem;\n  margin-right: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    left: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-left: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    left: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  display: inline-block;\n  vertical-align: middle;\n  margin-left: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-left: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  left: 5px;\n  right: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  left: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    left: 5px;\n    right: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    right: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    left: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-right: 0.25rem;\n    margin-left: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-left: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-left: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-end; }\n\n.align-right {\n  justify-content: flex-start; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($mg)}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($margin-gutter)}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["foundation-rtl.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,WC5BgE,EAAA,EJnD7D;;AlBqFC;EkB5GF;IG2DJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WA3FY,EAAA;EHNZ;IGsDF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHhDF;IG2FF,WA3FY,EAAA;EHSV;IGkFF,eC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,WC5BgE,EAAA,EJnD7D;;AAKL;EACE,WAAW,EAAA;;AAIb;EACE,YAAY,EAAA;;AA8Bd;ECvGM,sBAA6D;EAA7D,uBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,uBAA6D;MAA7D,wBAA6D,EAAA,EDsIlE;EA/BD;IGsCE,2BAtD0E;IF9ExE,qBAA6D;IAA7D,sBAA6D,EAAA;EnB0I3D;IkB5CN;MGsCE,4BAtD0E;MF9ExE,sBAA6D;MAA7D,uBAA6D,EAAA,ED2G1D;EArCP;IG8DE,WA3FY,EAAA;EHiCd;IG0DE,WA3FY,EAAA;EHyCZ;IGkDA,+BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;ErB4DtE;IkBpEN;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHR5E;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA,EHMzE;ElBsDG;IkBpEN;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA,EHMzE;;AA8CH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,EDgJhE;;AAID;ECpJI,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBCJ;MCpJI,wBAA6D;MAA7D,uBAA6D,EAAA,EDsJhE;;AAXH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,ED2JhE;;AK3JH;EF6IE,WC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,YC5BgE,EAAA;;AtBkC5D;EuBnJN;IF6IE,WC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,YC5BgE,EAAA,EC/GjE;;AvBiJK;EuBnJN;IF6IE,WC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,YC5BgE,EAAA,EC/GjE;;AAFD;EF6IE,2BAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,4BAtD0E,EAAA;;ArB4DtE;EuBnJN;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA;EEvF5E;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA,EErF3E;;AvBiJK;EuBnJN;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA,EErF3E;;ALqMG;EM9ME,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,eAA0B;IAA1B,cAA0B,EAAA;EAsBxB;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA;EtBkC5D;IwB/HI;MHyHR,eC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,WC5BgE,EAAA,EE3FvD;ExB6HL;IwB/HI;MHyHR,eC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,WC5BgE,EAAA,EE3FvD;;ANuLP;EM7KE,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,gBAA4B;IAA5B,eAA4B,EAAA;;AxB8G9B;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;AxB4GC;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;ANoLD;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;APmM3B;EOnMF,iBAA6B,EAAA;;APuM3B;EOvMF,qCAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;APmM3B;EOnMF,iBAA6B,EAAA;;APuM3B;EOvMF,qCAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;APmM3B;EOnMF,iBAA6B,EAAA;;APuM3B;EOvMF,qCAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;APmM3B;EOnMF,uBAA6B,EAAA;;APuM3B;EOvMF,2CAA6B,EAAA;;AzB2HzB;EkBwEF;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,iBAA6B,EAAA;EPuM3B;IOvMF,sCAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,iBAA6B,EAAA;EPuM3B;IOvMF,sCAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,iBAA6B,EAAA;EPuM3B;IOvMF,sCAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA,EPyM1B;;AlB9EC;EkBwEF;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,iBAA6B,EAAA;EPuM3B;IOvMF,sCAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,iBAA6B,EAAA;EPuM3B;IOvMF,sCAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,iBAA6B,EAAA;EPuM3B;IOvMF,sCAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA;EPmM3B;IOnMF,uBAA6B,EAAA;EPuM3B;IOvMF,4CAA6B,EAAA,EPyM1B;;AAzJS;EEtEd,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAH6B;EAG7B,6BAH6B;EAG7B,gCAH6B;MAG7B,4BAH6B;UAG7B,wBAH6B,EAAA;EFiP7B;IGjIA,YAAmB;IACnB,gBAA2B,EAAA;EHgI3B;IGpGE,YA3FY,EAAA;EH+Ld;IGpGE,YA3FY,EAAA;EH+Ld;IA2BM,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA;ElBzHhB;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;ElB1HC;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;EA5BL;IG/IA,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EH+IN;IGpGE,gBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,YC5BgE,EAAA;EtBkC5D;IkB8FN;MG/IA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YA3FY,EAAA;IH+Ld;MG/IA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IH+IN;MGpGE,YA3FY,EAAA;IH+Ld;MGpGE,gBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,YC5BgE,EAAA,EJyL3D;ElBvJD;IkB8FN;MG/IA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YA3FY,EAAA;IH+Ld;MG/IA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IH+IN;MGpGE,YA3FY,EAAA;IH+Ld;MGpGE,gBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,YC5BgE,EAAA,EJyL3D;;AAOL;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,EDqT9D;;AAJH;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,ED0T9D;;AAnNL;ECvGM,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,sBAA6D;MAA7D,yBAA6D,EAAA,EDsIlE;EA/BD;IGsCE,4BAtD0E;IF9ExE,oBAA6D;IAA7D,uBAA6D,EAAA;EnB0I3D;IkB5CN;MGsCE,6BAtD0E;MF9ExE,qBAA6D;MAA7D,wBAA6D,EAAA,ED2G1D;EArCP;IG8DE,YA3FY,EAAA;EHiCd;IG0DE,YA3FY,EAAA;EHyCZ;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,4BAtD0E,EAAA;ErB4DtE;IkBpEN;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1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;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA;IHR5E;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA,EHMzE;ElBsDG;IkBpEN;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA,EHMzE;;AAkTD;EQtYI,6BAAmC,EAAA;E1B0InC;IkB4PJ;MQtYI,8BAAmC,EAAA,ERwYtC;ElB9PG;IkB4PJ;MQtYI,8BAAmC,EAAA,ERwYtC;;AlB9PG;EkBgQF;IQ1YE,8BAAmC,EAAA,ER4YpC;;AlBlQC;EkBgQF;IQ1YE,8BAAmC,EAAA,ER4YpC;;ASzGL;EA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ChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;A7DsEV;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;A7DmEC;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;AA/FL;ECYA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa,EAAA;;ADRb;EACE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;;AAGhB;EACE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;;AAGhB;EACE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;;AAId;ECsDF,8BAnEU;EAmEV,6BAnEU;EAmEV,2BAnEU;MAmEV,uBAnEU;UAmEV,mBAnEU,EAAA;;ADaR;ECsDF,8BAlE0B;EAkE1B,8BAlE0B;EAkE1B,mCAlE0B;MAkE1B,+BAlE0B;UAkE1B,2BAlE0B,EAAA;;ADYxB;ECsDF,4BAjEgB;EAiEhB,6BAjEgB;EAiEhB,8BAjEgB;MAiEhB,0BAjEgB;UAiEhB,sBAjEgB,EAAA;;ADWd;ECsDF,4BAhEgC;EAgEhC,8BAhEgC;EAgEhC,sCAhEgC;MAgEhC,kCAhEgC;UAgEhC,8BAhEgC,EAAA;;A9D2J1B;E6DvIE;ICfR,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa,EAAA;EDmBL;IACE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;EAGhB;IACE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;EAGhB;IACE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;EAId;IC2BV,8BAnEU;IAmEV,6BAnEU;IAmEV,2BAnEU;QAmEV,uBAnEU;YAmEV,mBAnEU,EAAA;EDwCA;IC2BV,8BAlE0B;IAkE1B,8BAlE0B;IAkE1B,mCAlE0B;QAkE1B,+BAlE0B;YAkE1B,2BAlE0B,EAAA;EDuChB;IC2BV,4BAjEgB;IAiEhB,6BAjEgB;IAiEhB,8BAjEgB;QAiEhB,0BAjEgB;YAiEhB,sBAjEgB,EAAA;EDsCN;IC2BV,4BAhEgC;IAgEhC,8BAhEgC;IAgEhC,sCAhEgC;QAgEhC,kCAhEgC;YAgEhC,8BAhEgC,EAAA,EDuCrB;;A7DoHL;E6DvIE;ICfR,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa,EAAA;EDmBL;IACE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;EAGhB;IACE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;EAGhB;IACE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;EAId;IC2BV,8BAnEU;IAmEV,6BAnEU;IAmEV,2BAnEU;QAmEV,uBAnEU;YAmEV,mBAnEU,EAAA;EDwCA;IC2BV,8BAlE0B;IAkE1B,8BAlE0B;IAkE1B,mCAlE0B;QAkE1B,+BAlE0B;YAkE1B,2BAlE0B,EAAA;EDuChB;IC2BV,4BAjEgB;IAiEhB,6BAjEgB;IAiEhB,8BAjEgB;QAiEhB,0BAjEgB;YAiEhB,sBAjEgB,EAAA;EDsCN;IC2BV,4BAhEgC;IAgEhC,8BAhEgC;IAgEhC,sCAhEgC;QAgEhC,kCAhEgC;YAgEhC,8BAhEgC,EAAA,EDuCrB;;AECX;EACE,wBAAwB,EAAA;;AAG1B;EACE,kBAAkB,EAAA;;AAEpB;EACE,mBAAmB,EAAA;;A/D2Gf;E+D5FJ;IA7BA,wBAAwB,EAAA,EA+BvB;;AAlDD;EAoDA;IAnDE,wBAAwB,EAAA,EAqDzB;;A/DsFG;E+DrGF;IA5BF,wBAAwB,EAAA,EA8BrB;;A/DwGC;E+DtGF;IApEF,wBAAwB,EAAA,EAsErB;;A/D+FC;E+D5FJ;IA7BA,wBAAwB,EAAA,EA+BvB;;AAlDD;EAoDA;IAnDE,wBAAwB,EAAA,EAqDzB;;A/DsFG;E+DrGF;IA5BF,wBAAwB,EAAA,EA8BrB;;A/DwGC;E+DtGF;IApEF,wBAAwB,EAAA,EAsErB;;A/D+FC;E+D5FJ;IA7BA,wBAAwB,EAAA,EA+BvB;;AAlDD;EAoDA;IAnDE,wBAAwB,EAAA,EAqDzB;;AAKH;;E1DsHA,6BAAgC;EAChC,qBAAwB;EACxB,sBAAyB;EACzB,qBAAwB;EACxB,2BAA8B;EAC9B,iCAAoC;EACpC,8BAAiC;EACjC,oBAAuB,EAAA;;A0DvHvB;E1DiIA,2BAA8B;EAC9B,sBAAyB;EACzB,uBAA0B;EAC1B,4BAA+B;EAC/B,qBAAwB;EACxB,8BAAiC,EAAA;;A0D9HjC;;EAEE,yBAAyB,EAAA;E/DsErB;I+DxEN;;MAKI,yBAAyB,EAAA,EAM5B;E/D6DK;I+DxEN;;MASI,wBAAwB,EAAA,EAE3B;;AAED;;EAEE,wBAAwB,EAAA;E/DyDpB;I+D3DN;;MAKI,wBAAwB,EAAA,EAM3B;E/DgDK;I+D3DN;;MASI,yBAAyB,EAAA,EAE5B;;AAGD;EACE,aAAa,EAAA;;AAEf;EACE,cAAc,EAAA;;AAEhB;EANA;IAQI,yBAAyB,EAAA;EAL7B;IAQI,wBAAwB,EAAA,EACzB;;AAIH;EACE,aAAa,EAAA;;AAEf;EAHA;IAKI,yBAAyB,EAAA;EAE3B;IACE,wBAAwB,EAAA,EACzB;;AAIH;EACE,aAAa,EAAA;;AAEf;EACE,cAAc,EAAA;;AAEhB;EACE,aAAa,EAAA","file":"foundation-rtl.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-right: 0.5rem;\n  margin-left: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-left: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-left: 0; }\n  .input-group-label:last-child {\n    border-right: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-right: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: left -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-left: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-right: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-right: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-right: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-right: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-right: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-right: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-right: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-right: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-right: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-right: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-right: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-right: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-right: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-right: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-right: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-right: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-right: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-right: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-right: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-right: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-right: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-right: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-right: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-right: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-right: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-right: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-right: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-right: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-right: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: left;\n    margin-right: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-right: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-left: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-left: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-left: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-right-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-left: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-left: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.slider:not(.vertical) {\n  transform: scale(-1, 1); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    right: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      right: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  right: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  left: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    right: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    right: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    right: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: right; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: right;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"\\\\\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-right: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-left: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-right: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    left: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-left: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-right: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  right: 0; }\n\n.orbit-next {\n  right: auto;\n  left: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: right; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-right: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-right: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-left: 0;\n    margin-right: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-right {\n    justify-content: flex-start; }\n  .menu.align-left li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-left li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-left.vertical li {\n    display: block;\n    text-align: left; }\n    .menu.align-left.vertical li .submenu li {\n      text-align: left; }\n  .menu.align-left.icon-top li a img,\n  .menu.align-left.icon-top li a i,\n  .menu.align-left.icon-top li a svg, .menu.align-left.icon-bottom li a img,\n  .menu.align-left.icon-bottom li a i,\n  .menu.align-left.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-left .nested {\n    margin-left: 1rem;\n    margin-right: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-left: 0;\n  margin-right: 1rem; }\n\n.accordion-menu.align-left .nested.is-accordion-submenu {\n  margin-left: 1rem;\n  margin-right: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    left: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-left: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    left: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  display: inline-block;\n  vertical-align: middle;\n  margin-left: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-left: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  left: 5px;\n  right: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  left: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    left: 5px;\n    right: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    right: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    left: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-right: 0.25rem;\n    margin-left: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-left: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-left: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-end; }\n\n.align-right {\n  justify-content: flex-start; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $mgc: rem-calc($mg);\n      @if $mgc == 0 {\n        $mgc: 0rem;\n      }\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{$mg}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    // Make sure that 0 is translated in 0rem for calc()\n    $mgc: rem-calc($margin-gutter);\n    @if $mgc == 0 {\n      $mgc: 0rem;\n    }\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{$mgc}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    // Make sure that 0 is translated in 0rem for calc()\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    @if $gutter == 0 {\n      $gutter: 0rem;\n    }\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
index aaa98e51e7c6c0b8f46dd4056036528cb47da84a..732def8f6a3ef8c8b373ffef4a19e1456cc46439 100644 (file)
@@ -1,2 +1,2 @@
-@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-right:.5rem;margin-left:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-left:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-left:0}.input-group-label:last-child{border-right:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-right:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:left -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-left:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-right:1.25rem;list-style-type:disc}ol{margin-right:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-right:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-right:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-right:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-right:0}.grid-margin-x>.small-offset-0{margin-right:calc(0% + 1.25rem / 2)}.small-offset-1{margin-right:8.33333%}.grid-margin-x>.small-offset-1{margin-right:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-right:16.66667%}.grid-margin-x>.small-offset-2{margin-right:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-right:25%}.grid-margin-x>.small-offset-3{margin-right:calc(25% + 1.25rem / 2)}.small-offset-4{margin-right:33.33333%}.grid-margin-x>.small-offset-4{margin-right:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-right:41.66667%}.grid-margin-x>.small-offset-5{margin-right:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-right:50%}.grid-margin-x>.small-offset-6{margin-right:calc(50% + 1.25rem / 2)}.small-offset-7{margin-right:58.33333%}.grid-margin-x>.small-offset-7{margin-right:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-right:66.66667%}.grid-margin-x>.small-offset-8{margin-right:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-right:75%}.grid-margin-x>.small-offset-9{margin-right:calc(75% + 1.25rem / 2)}.small-offset-10{margin-right:83.33333%}.grid-margin-x>.small-offset-10{margin-right:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-right:91.66667%}.grid-margin-x>.small-offset-11{margin-right:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-right:0}.grid-margin-x>.medium-offset-0{margin-right:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-right:8.33333%}.grid-margin-x>.medium-offset-1{margin-right:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-right:16.66667%}.grid-margin-x>.medium-offset-2{margin-right:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-right:25%}.grid-margin-x>.medium-offset-3{margin-right:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-right:33.33333%}.grid-margin-x>.medium-offset-4{margin-right:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-right:41.66667%}.grid-margin-x>.medium-offset-5{margin-right:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-right:50%}.grid-margin-x>.medium-offset-6{margin-right:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-right:58.33333%}.grid-margin-x>.medium-offset-7{margin-right:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-right:66.66667%}.grid-margin-x>.medium-offset-8{margin-right:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-right:75%}.grid-margin-x>.medium-offset-9{margin-right:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-right:83.33333%}.grid-margin-x>.medium-offset-10{margin-right:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-right:91.66667%}.grid-margin-x>.medium-offset-11{margin-right:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-right:0}.grid-margin-x>.large-offset-0{margin-right:calc(0% + 1.875rem / 2)}.large-offset-1{margin-right:8.33333%}.grid-margin-x>.large-offset-1{margin-right:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-right:16.66667%}.grid-margin-x>.large-offset-2{margin-right:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-right:25%}.grid-margin-x>.large-offset-3{margin-right:calc(25% + 1.875rem / 2)}.large-offset-4{margin-right:33.33333%}.grid-margin-x>.large-offset-4{margin-right:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-right:41.66667%}.grid-margin-x>.large-offset-5{margin-right:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-right:50%}.grid-margin-x>.large-offset-6{margin-right:calc(50% + 1.875rem / 2)}.large-offset-7{margin-right:58.33333%}.grid-margin-x>.large-offset-7{margin-right:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-right:66.66667%}.grid-margin-x>.large-offset-8{margin-right:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-right:75%}.grid-margin-x>.large-offset-9{margin-right:calc(75% + 1.875rem / 2)}.large-offset-10{margin-right:83.33333%}.grid-margin-x>.large-offset-10{margin-right:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-right:91.66667%}.grid-margin-x>.large-offset-11{margin-right:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:left;margin-right:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-right:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-left:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-left:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-left:-.0625rem}.button-group.no-gaps .button+.button{border-right-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-left:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-left:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.slider:not(.vertical){-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;right:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{right:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{right:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{left:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;right:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{right:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;right:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{right:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;right:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{right:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:right}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:right;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"\\";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-right:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-left:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-left:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-right:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-right:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;left:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-left:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-right:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{right:0}.orbit-next{right:auto;left:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;right:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:right}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-right:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-right:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-left:0;margin-right:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-left:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-right:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-left li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-left li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-left.vertical li{display:block;text-align:left}.menu.align-left.vertical li .submenu li{text-align:left}.menu.align-left.icon-bottom li a i,.menu.align-left.icon-bottom li a img,.menu.align-left.icon-bottom li a svg,.menu.align-left.icon-top li a i,.menu.align-left.icon-top li a img,.menu.align-left.icon-top li a svg{text-align:right}.menu.align-left .nested{margin-left:1rem;margin-right:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-left:0;margin-right:1rem}.accordion-menu.align-left .nested.is-accordion-submenu{margin-left:1rem;margin-right:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;left:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-left:40px}.submenu-toggle{position:absolute;top:0;left:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;right:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-left:0;margin-right:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;position:absolute;top:50%;margin-top:-6px;left:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;display:inline-block;vertical-align:middle;margin-left:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-left:0;margin-right:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{left:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{left:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{left:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;left:5px;right:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;right:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;right:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{left:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-right:.25rem;margin-left:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-left:1rem}.top-bar .input-group-field{width:100%;margin-left:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-right.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}
+@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-right:.5rem;margin-left:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-left:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-left:0}.input-group-label:last-child{border-right:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-right:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:left -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-left:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-right:1.25rem;list-style-type:disc}ol{margin-right:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-right:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-right:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-right:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-right:0}.grid-margin-x>.small-offset-0{margin-right:calc(0% + 1.25rem / 2)}.small-offset-1{margin-right:8.33333%}.grid-margin-x>.small-offset-1{margin-right:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-right:16.66667%}.grid-margin-x>.small-offset-2{margin-right:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-right:25%}.grid-margin-x>.small-offset-3{margin-right:calc(25% + 1.25rem / 2)}.small-offset-4{margin-right:33.33333%}.grid-margin-x>.small-offset-4{margin-right:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-right:41.66667%}.grid-margin-x>.small-offset-5{margin-right:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-right:50%}.grid-margin-x>.small-offset-6{margin-right:calc(50% + 1.25rem / 2)}.small-offset-7{margin-right:58.33333%}.grid-margin-x>.small-offset-7{margin-right:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-right:66.66667%}.grid-margin-x>.small-offset-8{margin-right:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-right:75%}.grid-margin-x>.small-offset-9{margin-right:calc(75% + 1.25rem / 2)}.small-offset-10{margin-right:83.33333%}.grid-margin-x>.small-offset-10{margin-right:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-right:91.66667%}.grid-margin-x>.small-offset-11{margin-right:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-right:0}.grid-margin-x>.medium-offset-0{margin-right:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-right:8.33333%}.grid-margin-x>.medium-offset-1{margin-right:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-right:16.66667%}.grid-margin-x>.medium-offset-2{margin-right:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-right:25%}.grid-margin-x>.medium-offset-3{margin-right:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-right:33.33333%}.grid-margin-x>.medium-offset-4{margin-right:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-right:41.66667%}.grid-margin-x>.medium-offset-5{margin-right:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-right:50%}.grid-margin-x>.medium-offset-6{margin-right:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-right:58.33333%}.grid-margin-x>.medium-offset-7{margin-right:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-right:66.66667%}.grid-margin-x>.medium-offset-8{margin-right:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-right:75%}.grid-margin-x>.medium-offset-9{margin-right:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-right:83.33333%}.grid-margin-x>.medium-offset-10{margin-right:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-right:91.66667%}.grid-margin-x>.medium-offset-11{margin-right:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-right:0}.grid-margin-x>.large-offset-0{margin-right:calc(0% + 1.875rem / 2)}.large-offset-1{margin-right:8.33333%}.grid-margin-x>.large-offset-1{margin-right:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-right:16.66667%}.grid-margin-x>.large-offset-2{margin-right:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-right:25%}.grid-margin-x>.large-offset-3{margin-right:calc(25% + 1.875rem / 2)}.large-offset-4{margin-right:33.33333%}.grid-margin-x>.large-offset-4{margin-right:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-right:41.66667%}.grid-margin-x>.large-offset-5{margin-right:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-right:50%}.grid-margin-x>.large-offset-6{margin-right:calc(50% + 1.875rem / 2)}.large-offset-7{margin-right:58.33333%}.grid-margin-x>.large-offset-7{margin-right:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-right:66.66667%}.grid-margin-x>.large-offset-8{margin-right:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-right:75%}.grid-margin-x>.large-offset-9{margin-right:calc(75% + 1.875rem / 2)}.large-offset-10{margin-right:83.33333%}.grid-margin-x>.large-offset-10{margin-right:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-right:91.66667%}.grid-margin-x>.large-offset-11{margin-right:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:left;margin-right:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-right:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-left:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-left:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-left:-.0625rem}.button-group.no-gaps .button+.button{border-right-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-left:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-left:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.slider:not(.vertical){-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;right:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{right:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{right:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{left:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;right:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{right:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;right:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{right:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;right:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{right:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:right}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:right;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"\\";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-right:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-left:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-left:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-right:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-right:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;left:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-left:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-right:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{right:0}.orbit-next{right:auto;left:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;right:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:right}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-right:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-right:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-left:0;margin-right:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-left:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-right:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-left li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-left li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-left.vertical li{display:block;text-align:left}.menu.align-left.vertical li .submenu li{text-align:left}.menu.align-left.icon-bottom li a i,.menu.align-left.icon-bottom li a img,.menu.align-left.icon-bottom li a svg,.menu.align-left.icon-top li a i,.menu.align-left.icon-top li a img,.menu.align-left.icon-top li a svg{text-align:right}.menu.align-left .nested{margin-left:1rem;margin-right:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-left:0;margin-right:1rem}.accordion-menu.align-left .nested.is-accordion-submenu{margin-left:1rem;margin-right:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;left:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-left:40px}.submenu-toggle{position:absolute;top:0;left:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;right:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-left:0;margin-right:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;position:absolute;top:50%;margin-top:-6px;left:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;display:inline-block;vertical-align:middle;margin-left:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-left:0;margin-right:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{left:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{left:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{left:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;left:5px;right:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;right:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;right:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{left:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-right:.25rem;margin-left:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-left:1rem}.top-bar .input-group-field{width:100%;margin-left:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-right.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}
 /*# sourceMappingURL=foundation-rtl.min.css.map */
index 1de5e4f74abdb0c1950b24b94ac1a9f847b73c40..b4861545605bd496d7298ebc57a3c301509deec7 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation-rtl.min.css","foundation-rtl.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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A,MAAA,0BHzCA,wBGyCA,MAAA,oBHzCA,yBGyCA,MAAA,0BHzCA,yBGyCA,MAAA,0BHzCA,yBGyCA,MAAA,qBtBeI,aAAA,4BmBpEN,qBGqDE,MAAA,KHjDF,uBGiDE,MAAA,KHzCA,wBGyCA,MAAA,0BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,sBHrDF,4BGqDE,MAAA,KHjDF,8BGiDE,MAAA,KHzCA,yBGyCA,MAAA,0BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,0BGyCA,MAAA,2BHzCA,0BGyCA,MAAA,2BHzCA,0BGyCA,MAAA,uBtBeI,aAAA,4BmBpEN,2BGqDE,MAAA,KHjDF,6BGiDE,MAAA,KHzCA,wBGyCA,MAAA,0BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,uBHOF,gCC3IM,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBRN,gCC3IM,aAAA,UAAA,YAAA,WDoJJ,2CCpJI,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBCJ,2CCpJI,aAAA,UAAA,YAAA,WD2IN,sBC3IM,cAAA,QAAA,aAAA,QpBmJA,aAAA,4BmBRN,sBC3IM,cAAA,SAAA,aAAA,UGAN,kBDoIE,MAAA,KCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,MtBeI,aAAA,4BuBnJN,mBDoIE,MAAA,KCpIF,mBDoIE,MAAA,ICpIF,mBDoIE,MAAA,UCpIF,mBDoIE,MAAA,ICpIF,mBDoIE,MAAA,ICpIF,mBDoIE,MAAA,UCpIF,mBDoIE,MAAA,UCpIF,mBDoIE,MAAA,OtBeI,aAAA,4BuBnJN,kBDoIE,MAAA,KCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,OCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,oBCpIF,gCDoIE,MAAA,0BCpIF,gCDoIE,MAAA,oBCpIF,gCDoIE,MAAA,oBCpIF,gCDoIE,MAAA,0BCpIF,gCDoIE,MAAA,0BCpIF,gCDoIE,MAAA,sBtBeI,aAAA,4BuBnJN,gCDoIE,MAAA,sBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,uBCpIF,iCDoIE,MAAA,sBCpIF,iCDoIE,MAAA,qBCpIF,iCDoIE,MAAA,2BCpIF,iCDoIE,MAAA,qBCpIF,iCDoIE,MAAA,qBCpIF,iCDoIE,MAAA,2BCpIF,iCDoIE,MAAA,2BCpIF,iCDoIE,MAAA,wBtBeI,aAAA,4BuBnJN,gCDoIE,MAAA,sBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,wBHmEE,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,EAsBE,gCFgHR,MAAA,SEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,KtBeI,aAAA,4BwB/HI,iCFgHR,MAAA,SEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,MtBeI,aAAA,4BwB/HI,gCFgHR,MAAA,SEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,MHyEE,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,ExB8GF,aAAA,4BmBoDF,wBK9ME,aAAA,EAAA,YAAA,EAGF,8BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBeI,aAAA,4BwB/HI,kCFgHR,MAAA,SEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,IEhHQ,mCFgHR,MAAA,UEhHQ,mCFgHR,MAAA,UEhHQ,mCFgHR,MAAA,MtBeI,aAAA,4BwB/HI,iCFgHR,MAAA,SEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,MtBeI,aAAA,4BmB0DF,yBK7KE,aAAA,EAAA,YAAA,EAGF,+BAEI,cAAA,EAAA,aAAA,GxB8GF,aAAA,4BmBoDF,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MtBeI,aAAA,4BwBxII,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBeI,aAAA,4BwB/HI,gCFgHR,MAAA,SEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,MtBeI,aAAA,4BmB0DF,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,GLsLJ,gBMvMF,aAAA,EN2ME,+BM3MF,aAAA,uBNuME,gBMvMF,aAAA,SN2ME,+BM3MF,aAAA,6BNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,8BNuME,gBMvMF,aAAA,IN2ME,+BM3MF,aAAA,wBNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,8BNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,8BNuME,gBMvMF,aAAA,IN2ME,+BM3MF,aAAA,wBNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,8BNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,8BNuME,gBMvMF,aAAA,IN2ME,+BM3MF,aAAA,wBNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,8BNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,8BzB+HI,aAAA,4BmBwEF,iBMvMF,aAAA,EN2ME,gCM3MF,aAAA,wBNuME,iBMvMF,aAAA,SN2ME,gCM3MF,aAAA,8BNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,+BNuME,iBMvMF,aAAA,IN2ME,gCM3MF,aAAA,yBNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,+BNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,+BNuME,iBMvMF,aAAA,IN2ME,gCM3MF,aAAA,yBNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,+BNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,+BNuME,iBMvMF,aAAA,IN2ME,gCM3MF,aAAA,yBNuME,kBMvMF,aAAA,UN2ME,iCM3MF,aAAA,+BNuME,kBMvMF,aAAA,UN2ME,iCM3MF,aAAA,gCzB+HI,aAAA,4BmBwEF,gBMvMF,aAAA,EN2ME,+BM3MF,aAAA,wBNuME,gBMvMF,aAAA,SN2ME,+BM3MF,aAAA,8BNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,+BNuME,gBMvMF,aAAA,IN2ME,+BM3MF,aAAA,yBNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,+BNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,+BNuME,gBMvMF,aAAA,IN2ME,+BM3MF,aAAA,yBNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,+BNuME,gBMvMF,aAAA,UN2ME,+BM3MF,aAAA,+BNuME,gBMvMF,aAAA,IN2ME,+BM3MF,aAAA,yBNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,+BNuME,iBMvMF,aAAA,UN2ME,gCM3MF,aAAA,gCNoDY,QEtEd,Q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A,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAyBI,OAAA,MP+WE,MAAA,MAKN,yBAEI,OAAA,KnBjPA,aAAA,4BmB+OJ,gCAMM,OAAA,MnBrPF,aAAA,4BmB+OJ,+BAMM,OAAA,MAjSR,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBG6BE,OAAA,qBF3HE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBG6BE,OAAA,sBF3HE,WAAA,SAAA,cAAA,UDsEJ,qBGqDE,OAAA,KHjDF,uBGiDE,OAAA,KHzCA,wBGyCA,OAAA,yBHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,oBHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,oBHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,oBHzCA,yBGyCA,OAAA,0BHzCA,yBGyCA,OAAA,0BHzCA,yBGyCA,OAAA,qBtBeI,aAAA,4BmBpEN,qBGqDE,OAAA,KHjDF,uBGiDE,OAAA,KHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,qBHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,qBHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,qBHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,sBHrDF,4BGqDE,OAAA,KHjDF,8BGiDE,OAAA,KHzCA,yBGyCA,OAAA,0BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,uBtBeI,aAAA,4BmBpEN,2BGqDE,OAAA,KHjDF,6BGiDE,OAAA,KHzCA,wBGyCA,OAAA,0B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","file":"foundation-rtl.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","@charset \"UTF-8\";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.foundation-mq{font-family:\"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-right:.5rem;margin-left:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-left:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-left:0}.input-group-label:last-child{border-right:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-right:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>\");background-origin:content-box;background-position:left -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-left:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-right:1.25rem;list-style-type:disc}ol{margin-right:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-right:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-right:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-right:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:\"— \"}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:\" (\" attr(href) \")\"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:\" (\" attr(title) \")\"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-right:0}.grid-margin-x>.small-offset-0{margin-right:calc(0% + 1.25rem / 2)}.small-offset-1{margin-right:8.33333%}.grid-margin-x>.small-offset-1{margin-right:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-right:16.66667%}.grid-margin-x>.small-offset-2{margin-right:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-right:25%}.grid-margin-x>.small-offset-3{margin-right:calc(25% + 1.25rem / 2)}.small-offset-4{margin-right:33.33333%}.grid-margin-x>.small-offset-4{margin-right:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-right:41.66667%}.grid-margin-x>.small-offset-5{margin-right:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-right:50%}.grid-margin-x>.small-offset-6{margin-right:calc(50% + 1.25rem / 2)}.small-offset-7{margin-right:58.33333%}.grid-margin-x>.small-offset-7{margin-right:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-right:66.66667%}.grid-margin-x>.small-offset-8{margin-right:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-right:75%}.grid-margin-x>.small-offset-9{margin-right:calc(75% + 1.25rem / 2)}.small-offset-10{margin-right:83.33333%}.grid-margin-x>.small-offset-10{margin-right:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-right:91.66667%}.grid-margin-x>.small-offset-11{margin-right:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-right:0}.grid-margin-x>.medium-offset-0{margin-right:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-right:8.33333%}.grid-margin-x>.medium-offset-1{margin-right:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-right:16.66667%}.grid-margin-x>.medium-offset-2{margin-right:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-right:25%}.grid-margin-x>.medium-offset-3{margin-right:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-right:33.33333%}.grid-margin-x>.medium-offset-4{margin-right:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-right:41.66667%}.grid-margin-x>.medium-offset-5{margin-right:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-right:50%}.grid-margin-x>.medium-offset-6{margin-right:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-right:58.33333%}.grid-margin-x>.medium-offset-7{margin-right:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-right:66.66667%}.grid-margin-x>.medium-offset-8{margin-right:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-right:75%}.grid-margin-x>.medium-offset-9{margin-right:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-right:83.33333%}.grid-margin-x>.medium-offset-10{margin-right:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-right:91.66667%}.grid-margin-x>.medium-offset-11{margin-right:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-right:0}.grid-margin-x>.large-offset-0{margin-right:calc(0% + 1.875rem / 2)}.large-offset-1{margin-right:8.33333%}.grid-margin-x>.large-offset-1{margin-right:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-right:16.66667%}.grid-margin-x>.large-offset-2{margin-right:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-right:25%}.grid-margin-x>.large-offset-3{margin-right:calc(25% + 1.875rem / 2)}.large-offset-4{margin-right:33.33333%}.grid-margin-x>.large-offset-4{margin-right:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-right:41.66667%}.grid-margin-x>.large-offset-5{margin-right:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-right:50%}.grid-margin-x>.large-offset-6{margin-right:calc(50% + 1.875rem / 2)}.large-offset-7{margin-right:58.33333%}.grid-margin-x>.large-offset-7{margin-right:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-right:66.66667%}.grid-margin-x>.large-offset-8{margin-right:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-right:75%}.grid-margin-x>.large-offset-9{margin-right:calc(75% + 1.875rem / 2)}.large-offset-10{margin-right:83.33333%}.grid-margin-x>.large-offset-10{margin-right:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-right:91.66667%}.grid-margin-x>.large-offset-11{margin-right:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:left;margin-right:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-right:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-left:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-left:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-left:-.0625rem}.button-group.no-gaps .button+.button{border-right-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-left:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-left:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.slider:not(.vertical){-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;right:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{right:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{right:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{left:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;right:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{right:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;right:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{right:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;right:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{right:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:right}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:right;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:\"\\\\\";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-right:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-left:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-left:.5rem;content:\"«\"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-right:.5rem;content:\"»\"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-right:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;left:1rem;margin-top:-.5rem;content:\"+\"}.is-active>.accordion-title::before{content:\"–\"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-left:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-right:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{right:0}.orbit-next{right:auto;left:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;right:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:right}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-right:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-right:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-left:0;margin-right:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-left:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-right:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-left li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-left li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-left.vertical li{display:block;text-align:left}.menu.align-left.vertical li .submenu li{text-align:left}.menu.align-left.icon-bottom li a i,.menu.align-left.icon-bottom li a img,.menu.align-left.icon-bottom li a svg,.menu.align-left.icon-top li a i,.menu.align-left.icon-top li a img,.menu.align-left.icon-top li a svg{text-align:right}.menu.align-left .nested{margin-left:1rem;margin-right:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-left:0;margin-right:1rem}.accordion-menu.align-left .nested.is-accordion-submenu{margin-left:1rem;margin-right:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;left:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-left:40px}.submenu-toggle{position:absolute;top:0;left:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;right:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-left:0;margin-right:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;position:absolute;top:50%;margin-top:-6px;left:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;display:inline-block;vertical-align:middle;margin-left:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-left:0;margin-right:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{left:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{left:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-left:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;left:5px;right:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{left:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;left:5px;right:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;right:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;right:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{left:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-right:.25rem;margin-left:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-left:1rem}.top-bar .input-group-field{width:100%;margin-left:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-right{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-right.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}\n/*# sourceMappingURL=foundation-rtl.min.css.map */\n","@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-right: 0.5rem;\n  margin-left: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-left: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-left: 0; }\n  .input-group-label:last-child {\n    border-right: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-right: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: left -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-left: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-right: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-right: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-right: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-right: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-right: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-right: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-right: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-right: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-right: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-right: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-right: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-right: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-right: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-right: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-right: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-right: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-right: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-right: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-right: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-right: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-right: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-right: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-right: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-right: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-right: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-right: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-right: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-right: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-right: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: left;\n    margin-right: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-right: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-left: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-left: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-left: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-right-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-left: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-left: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.slider:not(.vertical) {\n  transform: scale(-1, 1); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    right: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      right: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  right: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  left: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    right: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    right: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    right: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: right; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: right;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"\\\\\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-right: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-left: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-right: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    left: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-left: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-right: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  right: 0; }\n\n.orbit-next {\n  right: auto;\n  left: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: right; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-right: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-right: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-left: 0;\n    margin-right: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-right {\n    justify-content: flex-start; }\n  .menu.align-left li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-left li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-left.vertical li {\n    display: block;\n    text-align: left; }\n    .menu.align-left.vertical li .submenu li {\n      text-align: left; }\n  .menu.align-left.icon-top li a img,\n  .menu.align-left.icon-top li a i,\n  .menu.align-left.icon-top li a svg, .menu.align-left.icon-bottom li a img,\n  .menu.align-left.icon-bottom li a i,\n  .menu.align-left.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-left .nested {\n    margin-left: 1rem;\n    margin-right: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-left: 0;\n  margin-right: 1rem; }\n\n.accordion-menu.align-left .nested.is-accordion-submenu {\n  margin-left: 1rem;\n  margin-right: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    left: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-left: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    left: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  display: inline-block;\n  vertical-align: middle;\n  margin-left: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-left: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  left: 5px;\n  right: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  left: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    left: 5px;\n    right: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    right: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    left: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-right: 0.25rem;\n    margin-left: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-left: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-left: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-end; }\n\n.align-right {\n  justify-content: flex-start; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($mg)}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($margin-gutter)}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation-rtl.min.css","foundation-rtl.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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lDA,wBGkDA,MAAA,oBHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,MAAA,KH1DF,uBG0DE,MAAA,KHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,sBH9DF,4BG8DE,MAAA,KH1DF,8BG0DE,MAAA,KHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,0BGkDA,MAAA,2BHlDA,0BGkDA,MAAA,2BHlDA,0BGkDA,MAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,MAAA,KH1DF,6BG0DE,MAAA,KHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,uBHFF,gCC3IM,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBRN,gCC3IM,aAAA,UAAA,YAAA,WDoJJ,2CCpJI,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBCJ,2CCpJI,aAAA,UAAA,YAAA,WD2IN,sBC3IM,cAAA,QAAA,aAAA,QpBmJA,aAAA,4BmBRN,sBC3IM,cAAA,SAAA,aAAA,UGAN,kBD6IE,MAAA,KC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,MtBMI,aAAA,4BuBnJN,mBD6IE,MAAA,KC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,OtBMI,aAAA,4BuBnJN,kBD6IE,MAAA,KC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,OC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,sBtBMI,aAAA,4BuBnJN,gCD6IE,MAAA,sBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,uBC7IF,iCD6IE,MAAA,sBC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,wBtBMI,aAAA,4BuBnJN,gCD6IE,MAAA,sBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,wBH0DE,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,EAsBE,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,KtBMI,aAAA,4BwB/HI,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBMI,aAAA,4BwB/HI,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MHgEE,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,ExB8GF,aAAA,4BmBoDF,wBK9ME,aAAA,EAAA,YAAA,EAGF,8BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,iCFkIR,MAAA,SElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,MtBMI,aAAA,4BwB/HI,kCFyHR,MAAA,SEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,mCFyHR,MAAA,UEzHQ,mCFyHR,MAAA,UEzHQ,mCFyHR,MAAA,MtBMI,aAAA,4BwB/HI,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBMI,aAAA,4BmB0DF,yBK7KE,aAAA,EAAA,YAAA,EAGF,+BAEI,cAAA,EAAA,aAAA,GxB8GF,aAAA,4BmBoDF,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,gCFkIR,MAAA,SElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,MtBMI,aAAA,4BwBxII,iCFkIR,MAAA,SElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,MtBMI,aAAA,4BwB/HI,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MtBMI,aAAA,4BmB0DF,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,GLsLJ,gBMnMF,aAAA,ENuME,+BMvMF,aAAA,uBNmME,gBMnMF,aAAA,SNuME,+BMvMF,aAAA,6BNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,8BNmME,gBMnMF,aAAA,INuME,+BMvMF,aAAA,wBNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,8BNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,8BNmME,gBMnMF,aAAA,INuME,+BMvMF,aAAA,wBNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,8BNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,8BNmME,gBMnMF,aAAA,INuME,+BMvMF,aAAA,wBNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,8BNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,8BzB2HI,aAAA,4BmBwEF,iBMnMF,aAAA,ENuME,gCMvMF,aAAA,wBNmME,iBMnMF,aAAA,SNuME,gCMvMF,aAAA,8BNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,+BNmME,iBMnMF,aAAA,INuME,gCMvMF,aAAA,yBNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,+BNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,+BNmME,iBMnMF,aAAA,INuME,gCMvMF,aAAA,yBNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,+BNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,+BNmME,iBMnMF,aAAA,INuME,gCMvMF,aAAA,yBNmME,kBMnMF,aAAA,UNuME,iCMvMF,aAAA,+BNmME,kBMnMF,aAAA,UNuME,iCMvMF,aAAA,gCzB2HI,aAAA,4BmBwEF,gBMnMF,aAAA,ENuME,+BMvMF,aAAA,wBNmME,gBMnMF,aAAA,SNuME,+BMvMF,aAAA,8BNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,+BNmME,gBMnMF,aAAA,INuME,+BMvMF,aAAA,yBNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,+BNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,+BNmME,gBMnMF,aAAA,INuME,+BMvMF,aAAA,yBNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,+BNmME,gBMnMF,aAAA,UNuME,+BMvMF,aAAA,+BNmME,gBMnMF,aAAA,INuME,+BMvMF,aAAA,yBNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,+BNmME,iBMnMF,aAAA,UNuME,gCMvMF,aAAA,gCNgDY,QEtEd,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,kBAAA,OAAA,OAAA,cAAA,OAAA,OAAA,UAAA,OAAA,OF8OA,cGjIA,OAAA,KACA,WAAA,KHgIA,cGpGE,OAAA,KHoGF,gBGpGE,OAAA,KHoGF,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,sBA2BM,mBAAA,KAAA,wBAAA,KAAA,WAAA,KnBzHA,aAAA,4BmB8FN,kBAAA,mBAAA,mBAAA,mBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,qBAAA,uBA2BM,mBAAA,KAAA,wBAAA,KAAA,WAAA,MnBzHA,aAAA,4BmB8FN,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,sBA2BM,mBAAA,KAAA,wBAAA,KAAA,WAAA,MA3BN,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KH+IA,iBGpGE,OAAA,SHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,KtBMI,aAAA,4BmB8FN,qBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EA2CE,OAAA,KHoGF,kBAAA,mBAAA,mBAAA,mBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,uBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KH+IA,uBGpGE,OAAA,KHoGF,kBGpGE,OAAA,SHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,IHoGF,mBGpGE,OAAA,UHoGF,mBGpGE,OAAA,UHoGF,mBGpGE,OAAA,MtBMI,aAAA,4BmB8FN,oBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EA2CE,OAAA,KHoGF,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,sBG/IA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KH+IA,sBGpGE,OAAA,KHoGF,iBGpGE,OAAA,SHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,UHoGF,iBGpGE,OAAA,IHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,UHoGF,kBGpGE,OAAA,MHoKA,gCCjTI,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB8JJ,gCCjTI,WAAA,UAAA,cAAA,WDiTJ,sBCjTI,YAAA,QAAA,eAAA,QpBmJA,aAAA,4BmB8JJ,sBCjTI,YAAA,SAAA,eAAA,UDuGN,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBGsCE,OAAA,qBFpIE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBGsCE,OAAA,sBFpIE,WAAA,SAAA,cAAA,UDsEJ,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,yBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,sBH9DF,4BG8DE,OAAA,KH1DF,8BG0DE,OAAA,KHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,OAAA,KH1DF,6BG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,uBHyLF,YOpVE,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAmCI,MAAA,MPkTN,kBACE,MAAA,KAGF,YOnSE,WAAA,KACA,UAAA,KAGF,2BAAA,MACA,mBAAA,yBPkSA,cO3SE,WAAA,KACA,WAAA,KACA,WAAA,KAMF,2BAAA,MACA,mBAAA,yBPuSA,sBOhSA,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,uBAAA,OAAA,mBAAA,OAAA,eAAA,OACA,WAAA,KAEA,8BACE,WAAA,KACA,kBAAA,OAAA,cAAA,OAAA,UAAA,O1BsFI,aAAA,4BmB2MJ,mBO5WA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAmCI,MAAA,MP0UJ,yBACE,MAAA,KAGF,mBO3TA,WAAA,KACA,UAAA,KAGF,2BAAA,MACA,mBAAA,yBP0TE,6BOnTF,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,uBAAA,OAAA,mBAAA,OAAA,eAAA,OACA,WAAA,KAEA,qCACE,WAAA,KACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OPiTA,qBOvUA,WAAA,KACA,WAAA,KACA,WAAA,KAMF,2BAAA,MACA,mBAAA,0B1BmGM,aAAA,4BmB2MJ,kBO5WA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAmCI,MAAA,MP0UJ,wBACE,MAAA,KAGF,kBO3TA,WAAA,KACA,UAAA,KAGF,2BAAA,MACA,mBAAA,yBP0TE,4BOnTF,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,SAAA,sBAAA,OAAA,uBAAA,OAAA,mBAAA,OAAA,eAAA,OACA,WAAA,KAEA,oCACE,WAAA,KACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OPiTA,oBOvUA,WAAA,KACA,WAAA,KACA,WAAA,KAMF,2BAAA,MACA,mBAAA,0BPoUE,mBOlYA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPiWA,MAAA,KnBpOA,aAAA,4BmBiOJ,0BOlYA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPuWE,MAAA,MnB1OF,aAAA,4BmBiOJ,yBOlYA,SAAA,OACA,SAAA,SACA,kBAAA,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPuWE,MAAA,MAKN,yBAEI,OAAA,KnBjPA,aAAA,4BmB+OJ,gCAMM,OAAA,MnBrPF,aAAA,4BmB+OJ,+BAMM,OAAA,MAjSR,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBGsCE,OAAA,qBFpIE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBGsCE,OAAA,sBFpIE,WAAA,SAAA,cAAA,UDsEJ,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,yBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,sBH9DF,4BG8DE,OAAA,KH1DF,8BG0DE,OAAA,KHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,OAAA,KH1DF,6BG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkD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","file":"foundation-rtl.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n",null,"@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-right: 0.5rem;\n  margin-left: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-left: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-left: 0; }\n  .input-group-label:last-child {\n    border-right: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-right: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: left -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-left: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-right: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-right: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-right: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-right: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-right: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-right: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-right: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-right: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-right: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-right: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-right: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-right: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-right: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-right: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-right: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-right: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-right: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-right: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-right: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-right: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-right: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-right: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-right: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-right: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-right: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-right: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-right: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-right: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-right: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-right: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-right: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-right: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-right: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-right: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-right: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-right: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-right: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-right: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-right: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-right: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-right: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-right: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-right: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-right: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-right: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-right: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-right: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-right: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-right: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-right: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-right: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-right: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-right: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: left;\n    margin-right: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-right: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-left: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-left: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-left: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-right-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-left: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-left: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.slider:not(.vertical) {\n  transform: scale(-1, 1); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    right: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      right: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  right: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  left: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    right: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    right: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    right: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    right: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: right; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: right;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"\\\\\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-right: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-left: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-right: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    left: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-left: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-right: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  right: 0; }\n\n.orbit-next {\n  right: auto;\n  left: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    right: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: right; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-right: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-right: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-left: 0;\n    margin-right: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-right {\n    justify-content: flex-start; }\n  .menu.align-left li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-left li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-left.vertical li {\n    display: block;\n    text-align: left; }\n    .menu.align-left.vertical li .submenu li {\n      text-align: left; }\n  .menu.align-left.icon-top li a img,\n  .menu.align-left.icon-top li a i,\n  .menu.align-left.icon-top li a svg, .menu.align-left.icon-bottom li a img,\n  .menu.align-left.icon-bottom li a i,\n  .menu.align-left.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-left .nested {\n    margin-left: 1rem;\n    margin-right: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-left: 0;\n  margin-right: 1rem; }\n\n.accordion-menu.align-left .nested.is-accordion-submenu {\n  margin-left: 1rem;\n  margin-right: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    left: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-left: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    left: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  display: inline-block;\n  vertical-align: middle;\n  margin-left: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-left: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  left: 5px;\n  right: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-left: 0;\n  margin-right: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  left: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-left: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    left: 5px;\n    right: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    left: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    left: 5px;\n    right: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    right: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  right: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    left: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-right: 0.25rem;\n    margin-left: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-left: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-left: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-end; }\n\n.align-right {\n  justify-content: flex-start; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $mgc: rem-calc($mg);\n      @if $mgc == 0 {\n        $mgc: 0rem;\n      }\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{$mg}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    // Make sure that 0 is translated in 0rem for calc()\n    $mgc: rem-calc($margin-gutter);\n    @if $mgc == 0 {\n      $mgc: 0rem;\n    }\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{$mgc}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    // Make sure that 0 is translated in 0rem for calc()\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    @if $gutter == 0 {\n      $gutter: 0rem;\n    }\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
index 15deb20694ad7b2f64f224929bf609a0c5b207fd..a63e5ef02bdf23fa674b6ab1081d4fd749f23602 100644 (file)
@@ -1,7 +1,7 @@
 @charset "UTF-8";
 /**
  * Foundation for Sites
- * Version 6.7.4
+ * Version 6.7.5
  * https://get.foundation
  * Licensed under MIT Open Source
  */
@@ -814,8 +814,7 @@ code, .code-inline {
   * {
     background: transparent !important;
     color: black !important;
-    -webkit-print-color-adjust: economy;
-            color-adjust: economy;
+    print-color-adjust: economy;
     -webkit-box-shadow: none !important;
             box-shadow: none !important;
     text-shadow: none !important; }
index 086a713406985978ddd43fc4168c98e172a8ec6b..047e7d0531d5ffee6a6612f3ff179f1fa1a1ee5c 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["foundation.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,WCnBgE,EAAA,EJnD7D;;AlBqFC;EkB5GF;IGkDJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WAlFY,EAAA;EHNZ;IG6CF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHvCF;IGkFF,WAlFY,EAAA;EHSV;IGyEF,eCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,UCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,gBCnBgE,EAAA;EJtD9D;IGyEF,WCnBgE,EAAA,EJnD7D;;AAKL;EACE,WAAW,EAAA;;AAIb;EACE,YAAY,EAAA;;AA8Bd;ECvGM,sBAA6D;EAA7D,uBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,uBAA6D;MAA7D,wBAA6D,EAAA,EDsIlE;EA/BD;IG6BE,2BAtD8F;IFrE5F,qBAA6D;IAA7D,sBAA6D,EAAA;EnB0I3D;IkB5CN;MG6BE,4BAtD8F;MFrE5F,sBAA6D;MAA7D,uBAA6D,EAAA,ED2G1D;EArCP;IGqDE,WAlFY,EAAA;EHiCd;IGiDE,WAlFY,EAAA;EHyCZ;IGyCA,+BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,0BAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;ErBqE1F;IkBpEN;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHChG;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA,EHe7F;ElBsDG;IkBpEN;MGqDE,WAlFY,EAAA;IHiCd;MGiDE,WAlFY,EAAA;IHyCZ;MGyCA,gCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,2BAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA,EHe7F;;AA8CH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,EDgJhE;;AAID;ECpJI,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBCJ;MCpJI,wBAA6D;MAA7D,uBAA6D,EAAA,EDsJhE;;AAXH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,ED2JhE;;AK3JH;EFoIE,WCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,UCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,gBCnBgE,EAAA;;ACjHlE;EFoIE,YCnBgE,EAAA;;AtBkC5D;EuBnJN;IFoIE,WCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,YCnBgE,EAAA,EC/GjE;;AvBiJK;EuBnJN;IFoIE,WCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,UCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,gBCnBgE,EAAA;ECjHlE;IFoIE,YCnBgE,EAAA,EC/GjE;;AAFD;EFoIE,2BAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,0BAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,gCAtD8F,EAAA;;AE9EhG;EFoIE,4BAtD8F,EAAA;;ArBqE1F;EuBnJN;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA;EE9EhG;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA,EE5E/F;;AvBiJK;EuBnJN;IFoIE,4BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,2BAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,iCAtD8F,EAAA;EE9EhG;IFoIE,6BAtD8F,EAAA,EE5E/F;;ALqMG;EM9ME,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,eAA0B;IAA1B,cAA0B,EAAA;EAsBxB;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA;EtBkC5D;IwB/HI;MHgHR,eCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,WCnBgE,EAAA,EE3FvD;ExB6HL;IwB/HI;MHgHR,eCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,UCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,gBCnBgE,EAAA;IE7FxD;MHgHR,WCnBgE,EAAA,EE3FvD;;ANuLP;EM7KE,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,gBAA4B;IAA5B,eAA4B,EAAA;;AxB8G9B;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;AxB4GC;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwBxII;IHyHR,eCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,UCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,gBCnBgE,EAAA;EEtGxD;IHyHR,WCnBgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHgHR,eCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,UCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,gBCnBgE,EAAA;EE7FxD;IHgHR,WCnBgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;ANoLD;EOvMF,eAA6B,EAAA;;AP2M3B;EO3MF,mCAA6B,EAAA;;APuM3B;EOvMF,qBAA6B,EAAA;;AP2M3B;EO3MF,yCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,gBAA6B,EAAA;;AP2M3B;EO3MF,oCAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;APuM3B;EOvMF,sBAA6B,EAAA;;AP2M3B;EO3MF,0CAA6B,EAAA;;AzB+HzB;EkBwEF;IOvMF,eAA6B,EAAA;EP2M3B;IO3MF,oCAA6B,EAAA;EPuM3B;IOvMF,qBAA6B,EAAA;EP2M3B;IO3MF,0CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA,EP6M1B;;AlB9EC;EkBwEF;IOvMF,eAA6B,EAAA;EP2M3B;IO3MF,oCAA6B,EAAA;EPuM3B;IOvMF,qBAA6B,EAAA;EP2M3B;IO3MF,0CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,gBAA6B,EAAA;EP2M3B;IO3MF,qCAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA;EPuM3B;IOvMF,sBAA6B,EAAA;EP2M3B;IO3MF,2CAA6B,EAAA,EP6M1B;;AAzJS;EEtEd,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAH6B;EAG7B,6BAH6B;EAG7B,gCAH6B;MAG7B,4BAH6B;UAG7B,wBAH6B,EAAA;EFiP7B;IG1IA,YAAmB;IACnB,gBAA2B,EAAA;EHyI3B;IG7GE,YAlFY,EAAA;EH+Ld;IG7GE,YAlFY,EAAA;EH+Ld;IA2BM,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA;ElBzHhB;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;ElB1HC;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;EA5BL;IGxJA,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHwJN;IG7GE,gBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,WCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,WCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,WCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,iBCnBgE,EAAA;EJgIlE;IG7GE,YCnBgE,EAAA;EtBkC5D;IkB8FN;MGxJA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YAlFY,EAAA;IH+Ld;MGxJA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IHwJN;MG7GE,YAlFY,EAAA;IH+Ld;MG7GE,gBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,YCnBgE,EAAA,EJyL3D;ElBvJD;IkB8FN;MGxJA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YAlFY,EAAA;IH+Ld;MGxJA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IHwJN;MG7GE,YAlFY,EAAA;IH+Ld;MG7GE,gBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,WCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,iBCnBgE,EAAA;IJgIlE;MG7GE,YCnBgE,EAAA,EJyL3D;;AAOL;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,EDqT9D;;AAJH;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,ED0T9D;;AAnNL;ECvGM,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,sBAA6D;MAA7D,yBAA6D,EAAA,EDsIlE;EA/BD;IG6BE,4BAtD8F;IFrE5F,oBAA6D;IAA7D,uBAA6D,EAAA;EnB0I3D;IkB5CN;MG6BE,6BAtD8F;MFrE5F,qBAA6D;MAA7D,wBAA6D,EAAA,ED2G1D;EArCP;IGqDE,YAlFY,EAAA;EHiCd;IGiDE,YAlFY,EAAA;EHyCZ;IGyCA,gCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,2BAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,iCAtD8F,EAAA;EHa9F;IGyCA,4BAtD8F,EAAA;ErBqE1F;IkBpEN;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA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IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA;IHChG;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA,EHe7F;ElBsDG;IkBpEN;MGqDE,YAlFY,EAAA;IHiCd;MGiDE,YAlFY,EAAA;IHyCZ;MGyCA,iCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,4BAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,kCAtD8F,EAAA;IHa9F;MGyCA,6BAtD8F,EAAA,EHe7F;;AAkTD;EQ1YI,6BAAmC,EAAA;E1B8InC;IkB4PJ;MQ1YI,8BAAmC,EAAA,ER4YtC;ElB9PG;IkB4PJ;MQ1YI,8BAAmC,EAAA,ER4YtC;;AlB9PG;EkBgQF;IQ9YE,8BAAmC,EAAA,ERgZpC;;AlBlQC;EkBgQF;IQ9YE,8BAAmC,EAAA,ERgZpC;;ASz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D+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;A7DsEV;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;A7DmEC;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;AA/FL;ECYA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa,EAAA;;ADRb;EACE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;;AAGhB;EACE,mBAAc;EAAd,sBAA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","file":"foundation.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($mg)}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($margin-gutter)}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["foundation.css","../scss/foundation.scss","../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","../scss/_global.scss","../scss/util/_unit.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/util/_math.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/forms/_progress.scss","../scss/components/_slider.scss","../scss/forms/_range.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/util/_color.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,WC5BgE,EAAA,EJnD7D;;AlBqFC;EkB5GF;IG2DJ,mBAAM;IAAN,mBAAM;QAAN,iBAAM;YAAN,WAAM;IA2CJ,WA3FY,EAAA;EHNZ;IGsDF,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EHhDF;IG2FF,WA3FY,EAAA;EHSV;IGkFF,eC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,UC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,gBC5BgE,EAAA;EJtD9D;IGkFF,WC5BgE,EAAA,EJnD7D;;AAKL;EACE,WAAW,EAAA;;AAIb;EACE,YAAY,EAAA;;AA8Bd;ECvGM,sBAA6D;EAA7D,uBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,uBAA6D;MAA7D,wBAA6D,EAAA,EDsIlE;EA/BD;IGsCE,2BAtD0E;IF9ExE,qBAA6D;IAA7D,sBAA6D,EAAA;EnB0I3D;IkB5CN;MGsCE,4BAtD0E;MF9ExE,sBAA6D;MAA7D,uBAA6D,EAAA,ED2G1D;EArCP;IG8DE,WA3FY,EAAA;EHiCd;IG0DE,WA3FY,EAAA;EHyCZ;IGkDA,+BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,0BAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;ErB4DtE;IkBpEN;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHR5E;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA,EHMzE;ElBsDG;IkBpEN;MG8DE,WA3FY,EAAA;IHiCd;MG0DE,WA3FY,EAAA;IHyCZ;MGkDA,gCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,2BAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA,EHMzE;;AA8CH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,EDgJhE;;AAID;ECpJI,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBCJ;MCpJI,wBAA6D;MAA7D,uBAA6D,EAAA,EDsJhE;;AAXH;EC3IM,uBAA6D;EAA7D,sBAA6D,EAAA;EnBmJ7D;IkBRN;MC3IM,wBAA6D;MAA7D,uBAA6D,EAAA,ED2JhE;;AK3JH;EF6IE,WC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,UC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,gBC5BgE,EAAA;;ACjHlE;EF6IE,YC5BgE,EAAA;;AtBkC5D;EuBnJN;IF6IE,WC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,YC5BgE,EAAA,EC/GjE;;AvBiJK;EuBnJN;IF6IE,WC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,UC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,gBC5BgE,EAAA;ECjHlE;IF6IE,YC5BgE,EAAA,EC/GjE;;AAFD;EF6IE,2BAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,0BAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,gCAtD0E,EAAA;;AEvF5E;EF6IE,4BAtD0E,EAAA;;ArB4DtE;EuBnJN;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA;EEvF5E;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA,EErF3E;;AvBiJK;EuBnJN;IF6IE,4BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,2BAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,iCAtD0E,EAAA;EEvF5E;IF6IE,6BAtD0E,EAAA,EErF3E;;ALqMG;EM9ME,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,eAA0B;IAA1B,cAA0B,EAAA;EAsBxB;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA;EtBkC5D;IwB/HI;MHyHR,eC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,WC5BgE,EAAA,EE3FvD;ExB6HL;IwB/HI;MHyHR,eC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,UC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,gBC5BgE,EAAA;IE7FxD;MHyHR,WC5BgE,EAAA,EE3FvD;;ANuLP;EM7KE,eAA0B;EAA1B,cAA0B,EAAA;EAG5B;IAEI,gBAA4B;IAA5B,eAA4B,EAAA;;AxB8G9B;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;AxB4GC;EkBoDF;IM9ME,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,eAA0B;MAA1B,cAA0B,EAAA,EAE7B;;AxBmJC;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwBxII;IHkIR,eC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,UC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,gBC5BgE,EAAA;EEtGxD;IHkIR,WC5BgE,EAAA,EEpGvD;;AxBsIL;EwB/HI;IHyHR,eC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,UC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,gBC5BgE,EAAA;EE7FxD;IHyHR,WC5BgE,EAAA,EE3FvD;;AxB6HL;EkB0DF;IM7KE,eAA0B;IAA1B,cAA0B,EAAA;IAG5B;MAEI,gBAA4B;MAA5B,eAA4B,EAAA,EAE/B;;ANoLD;EOnMF,eAA6B,EAAA;;APuM3B;EOvMF,mCAA6B,EAAA;;APmM3B;EOnMF,qBAA6B,EAAA;;APuM3B;EOvMF,yCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,gBAA6B,EAAA;;APuM3B;EOvMF,oCAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;APmM3B;EOnMF,sBAA6B,EAAA;;APuM3B;EOvMF,0CAA6B,EAAA;;AzB2HzB;EkBwEF;IOnMF,eAA6B,EAAA;EPuM3B;IOvMF,oCAA6B,EAAA;EPmM3B;IOnMF,qBAA6B,EAAA;EPuM3B;IOvMF,0CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA,EPyM1B;;AlB9EC;EkBwEF;IOnMF,eAA6B,EAAA;EPuM3B;IOvMF,oCAA6B,EAAA;EPmM3B;IOnMF,qBAA6B,EAAA;EPuM3B;IOvMF,0CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,gBAA6B,EAAA;EPuM3B;IOvMF,qCAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA;EPmM3B;IOnMF,sBAA6B,EAAA;EPuM3B;IOvMF,2CAA6B,EAAA,EPyM1B;;AAzJS;EEtEd,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAH6B;EAG7B,6BAH6B;EAG7B,gCAH6B;MAG7B,4BAH6B;UAG7B,wBAH6B,EAAA;EFiP7B;IGjIA,YAAmB;IACnB,gBAA2B,EAAA;EHgI3B;IGpGE,YA3FY,EAAA;EH+Ld;IGpGE,YA3FY,EAAA;EH+Ld;IA2BM,wBAAgB;QAAhB,6BAAgB;YAAhB,gBAAgB,EAAA;ElBzHhB;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;ElB1HC;IkB8FN;MA2BM,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB,EAAA,EACjB;EA5BL;IG/IA,mBAAM;IAAN,sBAAM;QAAN,kBAAM;YAAN,cAAM,EAAA;EH+IN;IGpGE,gBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,WC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,iBC5BgE,EAAA;EJgIlE;IGpGE,YC5BgE,EAAA;EtBkC5D;IkB8FN;MG/IA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YA3FY,EAAA;IH+Ld;MG/IA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IH+IN;MGpGE,YA3FY,EAAA;IH+Ld;MGpGE,gBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,YC5BgE,EAAA,EJyL3D;ElBvJD;IkB8FN;MG/IA,mBAAM;MAAN,mBAAM;UAAN,iBAAM;cAAN,WAAM;MA2CJ,YA3FY,EAAA;IH+Ld;MG/IA,mBAAM;MAAN,sBAAM;UAAN,kBAAM;cAAN,cAAM,EAAA;IH+IN;MGpGE,YA3FY,EAAA;IH+Ld;MGpGE,gBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,WC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,iBC5BgE,EAAA;IJgIlE;MGpGE,YC5BgE,EAAA,EJyL3D;;AAOL;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,EDqT9D;;AAJH;ECjTI,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB8JJ;MCjTI,sBAA6D;MAA7D,yBAA6D,EAAA,ED0T9D;;AAnNL;ECvGM,qBAA6D;EAA7D,wBAA6D,EAAA;EnBmJ7D;IkB5CN;MCvGM,sBAA6D;MAA7D,yBAA6D,EAAA,EDsIlE;EA/BD;IGsCE,4BAtD0E;IF9ExE,oBAA6D;IAA7D,uBAA6D,EAAA;EnB0I3D;IkB5CN;MGsCE,6BAtD0E;MF9ExE,qBAA6D;MAA7D,wBAA6D,EAAA,ED2G1D;EArCP;IG8DE,YA3FY,EAAA;EHiCd;IG0DE,YA3FY,EAAA;EHyCZ;IGkDA,gCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,2BAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,iCAtD0E,EAAA;EHI1E;IGkDA,4BAtD0E,EAAA;ErB4DtE;IkBpEN;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;M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kDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA;IHR5E;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA,EHMzE;ElBsDG;IkBpEN;MG8DE,YA3FY,EAAA;IHiCd;MG0DE,YA3FY,EAAA;IHyCZ;MGkDA,iCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,4BAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,kCAtD0E,EAAA;IHI1E;MGkDA,6BAtD0E,EAAA,EHMzE;;AAkTD;EQtYI,6BAAmC,EAAA;E1B0InC;IkB4PJ;MQtYI,8BAAmC,EAAA,ERwYtC;ElB9PG;IkB4PJ;MQtYI,8BAAmC,EAAA,ERwYtC;;AlB9PG;EkBgQF;IQ1YE,8BAAmC,EAAA,ER4YpC;;AlBlQC;EkBgQF;IQ1YE,8BAAmC,EAAA,ER4YpC;;ASzGL;EA1OA,qBAAqB;EACrB,sBAAsB;EACtB,kBA7EkC;EAuFhC,mBA3FuB;EA8FzB,6BA9DmC;EA+DnC,gBxBlBe;EwBmBf,yEA1BuE;EA0BvE,iEA1BuE;EA2BvE,oBA1G0B;EA2G1B,iBAvDe;EAyDf,wBAAwB;EACxB,cAAc;EACd,kBAAkB;EAClB,eAAe,EAAA;E7BwkEf;IOx/DE,UAAU,EAAA;EsBkIZ;IAMM,iBAtRM,EAAA;EAgRZ;IAMM,kBArRQ,EAAA;EA+Qd;IAMM,kBAnRQ,EAAA;EA6Qd;IA3ME,cAAc;IACd,WAAW;IACX,eAAe;IACf,cAAc,EAAA;EAiEhB;IAIE,yBxB9KgB;IwB+KhB,cxBtJW,EAAA;EwByJb;IACE,yBA3KuE;IA4KvE,cxB3JW,EAAA;EwBiJb;IAIE,yBxB9KgB;IwB+KhB,cxBtJW,EAAA;EwByJb;IACE,yBAboF;IAcpF,cxB3JW,EAAA;EwBiJb;IAIE,yBxB7KkB;IwB8KlB,cxBtJW,EAAA;EwByJb;IACE,yBAboF;IAcpF,cxB3JW,EAAA;EwBiJb;IAIE,yBxB5KgB;IwB6KhB,cxB1JW,EAAA;EwB6Jb;IACE,yBAboF;IAcpF,cxB/JW,EAAA;EwBqJb;IAIE,yBxB3KgB;IwB4KhB,cxB1JW,EAAA;EwB6Jb;IACE,yBAboF;IAcpF,cxB/JW,EAAA;EwBqJb;IAIE,yBxB1Kc;IwB2Kd,cxBtJW,EAAA;EwByJb;IACE,yBAboF;IAcpF,cxB3JW,EAAA;EwBmKX;IACE,6BAA6B,EAAA;EAiBjC;IAIE,yBxBlNgB;IwBmNhB,cxBnNgB,EAAA;EwBsNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxBlNgB;IwBmNhB,cxBnNgB,EAAA;EwBsNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxBjNkB;IwBkNlB,cxBlNkB,EAAA;EwBqNpB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxBhNgB;IwBiNhB,cxBjNgB,EAAA;EwBoNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxB/MgB;IwBgNhB,cxBhNgB,EAAA;EwBmNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxB9Mc;IwB+Md,cxB/Mc,EAAA;EwBkNhB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAqB7D;IACE,yBAAyB;IACzB,6BAA6B,EAAA;EAejC;IAIE,cxBrPgB,EAAA;EwBwPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBrPgB,EAAA;EwBwPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBpPkB,EAAA;EwBuPpB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBnPgB,EAAA;EwBsPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBlPgB,EAAA;EwBqPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBjPc,EAAA;EwBoPhB;IACE,cAX6D,EAAA;EAmE/D;IA/CA,aArN4B;IAsN5B,mBAAmB,EAAA;EAYnB;ItB7PA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,mBsBoPY;ItBlPZ,WAAW;IAGT,sBAAsB;IACtB,6CAAqD;IsBoPrD,kBAAkB;IAClB,UAAU;IAEV,qBAAqB;IACrB,YAAO;IACP,gBA9RuB,EAAA;EAyTzB;IAoEQ,yBxBrXU,EAAA;EwBiTlB;IA0EY,yBxB3XM,EAAA;EwBiTlB;IA0EY,yBxB1XQ,EAAA;EwBgTpB;IA0EY,yBxBzXM,EAAA;EwB+SlB;IA0EY,yBxBxXM,EAAA;EwB8SlB;IA0EY,yBxBvXI,EAAA;EwB6ShB;IAmFI,WAAW;IACX,WAAW;IACX,cAAgC,EAAA;;AAIpC;EAGI,qBAAqB,EAAA;;AClNzB;EAlLA,mBA1BuB;EA6BrB,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,uBAAe;MAAf,mBAAe;UAAf,eAAe;EACf,0BAAoB;EAApB,4BAAoB;MAApB,uBAAoB;UAApB,oBAAoB;EACpB,mBAAY;EAAZ,oBAAY;MAAZ,oBAAY;UAAZ,YAAY,EAAA;EvB+Hd;IAEE,cAAc;IACd,YAAY;IAGV,qBAAa;QAAb,0BAAa;YAAb,aAAa;IACb,4BAAQ;IAAR,gBAAQ;QAAR,iBAAQ;YAAR,QAAQ,EAAA;EAIZ;IACE,WAAW,EAAA;EAZb;IuB3HI,aAAa,EAAA;EAOjB;IACE,SAAS;IACT,iBAzCqB;IA0CrB,kBA1CqB;IA2CrB,iBDKa;ICFX,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc,EAAA;IAGhB;MACE,eAAiC,EAAA;EAsJrC;IAMM,iBDhKM,EAAA;EC0JZ;IAMM,kBD/JQ,EAAA;ECyJd;IAMM,kBD7JQ,EAAA;ECoDd;IAEI,mBAAa;IAAb,qBAAa;QAAb,iBAAa;YAAb,aAAa,EAAA;EDgFjB;IAIE,yBxB9KgB;IwB+KhB,cxBtJW,EAAA;EwByJb;IACE,yBAboF;IAcpF,cxB3JW,EAAA;EwBiJb;IAIE,yBxB7KkB;IwB8KlB,cxBtJW,EAAA;EwByJb;IACE,yBAboF;IAcpF,cxB3JW,EAAA;EwBiJb;IAIE,yBxB5KgB;IwB6KhB,cxB1JW,EAAA;EwB6Jb;IACE,yBAboF;IAcpF,cxB/JW,EAAA;EwBqJb;IAIE,yBxB3KgB;IwB4KhB,cxB1JW,EAAA;EwB6Jb;IACE,yBAboF;IAcpF,cxB/JW,EAAA;EwBqJb;IAIE,yBxB1Kc;IwB2Kd,cxBtJW,EAAA;EwByJb;IACE,yBAboF;IAcpF,cxB3JW,EAAA;EwBmKX;IACE,6BAA6B,EAAA;EAiBjC;IAIE,yBxBlNgB;IwBmNhB,cxBnNgB,EAAA;EwBsNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxBlNgB;IwBmNhB,cxBnNgB,EAAA;EwBsNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxBjNkB;IwBkNlB,cxBlNkB,EAAA;EwBqNpB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxBhNgB;IwBiNhB,cxBjNgB,EAAA;EwBoNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxB/MgB;IwBgNhB,cxBhNgB,EAAA;EwBmNlB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAG/D;IAIE,yBxB9Mc;IwB+Md,cxB/Mc,EAAA;EwBkNhB;IACE,qBAZ6D;IAa7D,cAb6D,EAAA;EAqB7D;IACE,yBAAyB;IACzB,6BAA6B,EAAA;EAejC;IAIE,cxBrPgB,EAAA;EwBwPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBrPgB,EAAA;EwBwPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBpPkB,EAAA;EwBuPpB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBnPgB,EAAA;EwBsPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBlPgB,EAAA;EwBqPlB;IACE,cAX6D,EAAA;EAG/D;IAIE,cxBjPc,EAAA;EwBoPhB;IACE,cAX6D,EAAA;EChL/D;IACE,wBxBI4D,EAAA;IwBF5D;MACE,8BAAsD,EAAA;EAyH1D;IA/DE,uBAAe;QAAf,mBAAe;YAAf,eAAe,EAAA;IAGjB;MAEI,mBAAc;MAAd,sBAAc;UAAd,kBAAc;cAAd,cAAc,EAAA;MAMhB;QACE,gBAAgB,EAAA;IAhDpB;MAEI,mBAAa;MAAb,qBAAa;UAAb,iBAAa;cAAb,aAAa,EAAA;E5B8DX;I4BQN;MAEI,mBAAc;MAAd,sBAAc;UAAd,kBAAc;cAAd,cAAc;MAKhB,gBAAgB,EAAA,EAgBjB;E5B/BK;I4BQN;MAEI,mBAAc;MAAd,sBAAc;UAAd,kBAAc;cAAd,cAAc;MAKhB,gBAAgB,EAAA,EAgBjB;E5B/BK;I4BmCN;MAyEM,cAAc,EAAA;MAzEpB;QA4EQ,cAAc;QACd,eAAiC,EAAA,EAClC;E5BjHD;I4BmCN;MAoFM,cAAc,EAAA;MApFpB;QAuFQ,cAAc;QACd,eAAiC,EAAA,EAClC;;ACpMP;EAZA,kBAAkB;EAClB,WAlFsB;EAmFtB,c1BrDiB;E0BsDjB,eAAe,EAAA;E/B25Ef;IOnzEE,UAAU,EAAA;EwBtGZ;IAEE,c1BtDW,EAAA;E0B2Db;IAxBA,cAzDc;IA0Dd,WAnDa;IAoDb,gBA7CY;IA8CZ,cAxCwB,EAAA;EA6DxB;IAxBA,WAxDY;IAyDZ,WAlDc;IAmDd,cA5CW;IA6CX,cAxCwB,EAAA;;ACIxB;EAZA,qBAAqB;EACrB,0BAT+B;EAW/B,gB3BuDe;E2BrDf,iBAjBsB;EAkBtB,cAAc;EACd,mBAAmB;EACnB,eAAe;EAOb,mB3B1BgB;E2B2BhB,c3BFW,EAAA;E2BFb;IAQM,mB3B/BY;I2BgCZ,c3BPO,EAAA;E2BFb;IAQM,mB3B9Bc;I2B+Bd,c3BPO,EAAA;E2BFb;IAQM,mB3B7BY;I2B8BZ,c3BXO,EAAA;E2BEb;IAQM,mB3B5BY;I2B6BZ,c3BXO,EAAA;E2BEb;IAQM,mB3B3BU;I2B4BV,c3BPO,EAAA;;A4BXb;EAnCA,YCIoB;EDHpB,mB5BqEkB;E4BpElB,gB5BwFe;E4BvFf,yB5B+BmB,EAAA;E4BCnB;IAMQ,yB5BpBU,EAAA;E4BclB;IAMQ,yB5BnBY,EAAA;E4BapB;IAMQ,yB5BlBU,EAAA;E4BYlB;IAMQ,yB5BjBU,EAAA;E4BWlB;IAMQ,yB5BhBQ,EAAA;;A4BuBhB;EAxCA,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,YAAY;EACZ,yB5BSkB,EAAA;;A4BgClB;E1ByMA,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,wCAAgC;MAAhC,oCAAgC;UAAhC,gCAAgC;E0B3OhC,SAAS;EACT,kBAAkB;EAClB,iBAAiB;EACjB,c5BqBa;E4BpBb,mBAAmB,EAAA;;AE2EnB;EAtFA,kBAAkB;EAClB,cCZoB;EDapB,mBAAmB;EACnB,sBAAsB;EAEtB,yB9BUkB;E8BTlB,eAAe;EACf,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;EACjB,sBAAkB;MAAlB,kBAAkB,EAAA;;AAmFlB;EA9EA,kBAAkB;EAClB,MAAM;EACN,OAAO;EAEP,qBAAqB;EACrB,eAAe;EACf,cC9BoB;EDgCpB,yB9BFmB;E8BGnB,wCA1BsC;EA0BtC,gCA1BsC,EAAA;EA4BtC;IACE,iCAAyB;IAAzB,yBAAyB,EAAA;;AAuE3B;E5B+HA,kBAAkB;EAClB,QAAQ;EACR,mCAA2B;MAA3B,+BAA2B;UAA3B,2BAA2B;E4BhM3B,OAAO;EACP,UAAU;EACV,oBAAY;EAAZ,YAAY;EAEZ,qBAAqB;EACrB,aCjC0B;EDkC1B,cCtC2B;EDwC3B,gB9BkCe;E8BjCf,yB9BpCkB;E8BqClB,wCA/CsC;EA+CtC,gCA/CsC;EAgDtC,8BAA0B;MAA1B,0BAA0B,EAAA;EnC2iF1B;IOl6EE,UAAU,EAAA;E4BvIZ;IACE,yBAA0E,EAAA;EAG5E;IACE,iCAAyB;IAAzB,yBAAyB;IACzB,wBAAgB;IAAhB,gBAAgB,EAAA;;AAiDlB;;EA5CA,aC5C4B;ED6C5B,mBAAmB,EAAA;;AAiDnB;EA7CA,qBAAqB;EACrB,aAvE4B;EAwE5B,eAAe;EACf,iBAAiB;EACjB,+BAAuB;MAAvB,2BAAuB;UAAvB,uBAAuB,EAAA;EAEvB;IACE,MAAM;IACN,aA9E0B;IA+E1B,gBAAgB,EAAA;EAGlB;IACE,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,aC7EyB;ID8EzB,cC1EwB;ID2ExB,mCAA2B;QAA3B,+BAA2B;YAA3B,2BAA2B,EAAA;;AEmH7B;EAlJA,kBAAkB;EAClB,mBhCKkB;EgCJlB,UAAU;EAGV,mB/BmB8D;E+BlB9D,iBAAiB;EACjB,chCzBa;EgC2Bb,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;EA2If,YAxMgB,EAAA;;AA4MlB;EA1IA,kBAAkB;EAClB,gBAAgB;EAChB,UAAU,EAAA;;AA6IV;EAnIA,kBAAkB;EAClB,cAAc;EACd,WAPiC;EAQjC,YAjFkB;EAmFlB,gBhCLe;EgCMf,mBhC9DmB;EgC+DnB,sCAjD2C;EAiD3C,8BAjD2C;EAoD3C,oBAAoB;EACpB,cAAc;EAEd,eAAe,EAAA;EAGf;IACE,SAAS,EAAA;EAIX;IACE,kBAAkB;IAClB,YAzE0B;IA0E1B,aA1E0B;IA4E1B,cAAc;IACd,aA9ByD;IA+BzD,cAhC0D;IAkC1D,uCAA+B;YAA/B,+BAA+B;IAC/B,gBhC/Ba;IgCgCb,mBhC5EW;IgC6EX,sCA3EyC;IA2EzC,8BA3EyC;IA4EzC,WAAW,EAAA;EAIb;IACE,mBhC5GgB,EAAA;IgC2GlB;MAII,aA5CwE,EAAA;EAiD5E;IACE,mBAlFgC;IAmFhC,YAvFyB,EAAA;ErCgoF3B;IOh/EE,UAAU,EAAA;;A8B8BZ;EA7EA,kBAAkB;EAClB,QAAQ;EACR,mCAA2B;MAA3B,+BAA2B;UAA3B,2BAA2B,EAAA;;AAgF3B;EA3EA,QAAmB;EACnB,aAAa,EAAA;EAEb;IACE,cAAc,EAAA;;AA6EhB;EAvEA,UAAqB,EAAA;EAErB;IACE,aAAa,EAAA;;AA0Ef;EAvDA,cA5KyB,EAAA;EA8KzB;IACE,WAR+B;IAS/B,cAhLuB;IAiLvB,mB/BzG4D,EAAA;E+B4G9D;IACE,YA7J0B;IA8J1B,aA9J0B;IA+J1B,WAfkD;IAgBlD,YAfmD,EAAA;EAkBrD;IACE,aAlBmE,EAAA;;AA6DrE;EA3DA,eAxK2B,EAAA;EA0K3B;IACE,aAR+B;IAS/B,eA5KyB;IA6KzB,kB/BzG4D,EAAA;E+B4G9D;IACE,YA7J0B;IA8J1B,aA9J0B;IA+J1B,cAfkD;IAgBlD,eAfmD,EAAA;EAkBrD;IACE,UAlBmE,EAAA;;AAiErE;EA/DA,cApK0B,EAAA;EAsK1B;IACE,WAR+B;IAS/B,cAxKwB;IAyKxB,e/BzG4D,EAAA;E+B4G9D;IACE,YA7J0B;IA8J1B,aA9J0B;IA+J1B,WAfkD;IAgBlD,YAfmD,EAAA;EAkBrD;IACE,aAlBmE,EAAA;;ACgHrE;EA9GA,yBAAyB;EACzB,WAAW;EACX,mBjCxHkB;EiCyHlB,gBjCrGe,EAAA;EiCaf;;;IAGE,yBCX6C;IDY7C,yBjC7DW,EAAA;EiCiEb;IACE,iChCxB4D;IgCyB5D,iBjC3BqB,EAAA;EctBrB;ImBsDA,mBCvB6C;IDwB7C,cjC7EW,EAAA;EiCiFb;IACE,mBC7B6C;ID8B7C,cjCnFW,EAAA;EiCuFb;;IAII,uBAAuB,EAAA;EAJ3B;;;;IAUI,iChCnD0D;IgCoD1D,iBjCtDmB;IiCuDnB,gBAAY,EAAA;EAKhB;;IAGI,iChC7D0D,EAAA;EgCR1D;IACE,gBAAgB;IAChB,yBCayC,EAAA;EDiE3C;IAEE,yBjCpHO,EAAA;IiCkDb;MACE,gCCF6C;MDG7C,yBjCpDW,EAAA;;AH+HP;EoCwGJ;IACE,aAAa,EAAA;EAIjB;IACE,aAAa,EAAA;EAGf;;;IAGE,cAAc,EAAA;EAGhB;IACE,aAAa,EAAA,EACd;;AAcD;EAvGA,cAAc;EACd,WAAW;EACX,gBAAgB,EAAA;;AAOd;EACE,yBArKmE,EAAA;;AA2KrE;EACE,yBApKmE,EAAA;;AA0KrE;EACE,yBA3MyD,EAAA;;AAkNzD;EACE,yBA/MmF,EAAA;;AA8RzF;EACE,gBAAgB,EAAA;;AElRlB;EAXA,qBAAqB;EACrB,gBAToB;EAUpB,cAdmB;EAgBnB,kBAAkB;EAElB,iBAVsB;EAWtB,kBAAkB;EAOhB,mBnCzBgB;EmC0BhB,cnCDW,EAAA;EmCHb;IAQM,mBnC9BY;ImC+BZ,cnCNO,EAAA;EmCHb;IAQM,mBnC7Bc;ImC8Bd,cnCNO,EAAA;EmCHb;IAQM,mBnC5BY;ImC6BZ,cnCVO,EAAA;EmCCb;IAQM,mBnC3BY;ImC4BZ,cnCVO,EAAA;EmCCb;IAQM,mBnC1BU;ImC2BV,cnCNO,EAAA;;AoC0Db;EA7CA,kBAvDuC;EAwDvC,gBAAgB,EAAA;ElCuGhB;IAEE,cAAc;IACd,YAAY;IAGV,qBAAa;QAAb,0BAAa;YAAb,aAAa;IACb,4BAAQ;IAAR,gBAAQ;QAAR,iBAAQ;YAAR,QAAQ,EAAA;EAIZ;IACE,WAAW,EAAA;EkChHb;IACE,WAAO;IAEP,oBnCsB4D;ImCrB5D,cpCzBW;IoC0BX,eAAe;IAGb,yBAAyB,EAAA;IAQvB;MACE,kBAAkB;MAClB,iBAzDuB;MA0DvB,UAAU;MACV,YA1C2B;MA2C3B,cpClDW,EAAA;EoC4DnB;IACE,cpC1EgB,EAAA;IoC4EhB;MACE,0BAA0B,EAAA;EAM9B;IAII,cpC1Ee;IoC2Ef,mBAAmB,EAAA;;ACvBvB;EA1CA,kBAAkB;EAClB,kBA7ByB;EA8BzB,aAxBa;EA0Bb,wCrCNa;EqCOb,gBrCyCe;EqCxBf,uBAFsE;EAGtE,crCzBa,EAAA;EqCUb;IACE,aAAa,EAAA;EAGf;IACE,gBAAgB,EAAA;EA6BlB;IApBA,yBAFsE;IAGtE,crCzBa,EAAA;EqC4Cb;IApBA,yBAFsE;IAGtE,crCzBa,EAAA;EqC4Cb;IApBA,yBAFsE;IAGtE,crCzBa,EAAA;EqC4Cb;IApBA,yBAFsE;IAGtE,crCzBa,EAAA;EqC4Cb;IApBA,yBAFsE;IAGtE,crCzBa,EAAA;EqC4Cb;IAfA,mBAlDa;IAmDb,qBAnDa;IAoDb,sBApDa;IAqDb,oBArDa,EAAA;EAiEb;IAfA,iBAhDW;IAiDX,mBAjDW;IAkDX,oBAlDW;IAmDX,kBAnDW,EAAA;;ACkFX;EAvDE,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAAsB;EAAtB,6BAAsB;EAAtB,8BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;EACtB,mBAAY;EAAZ,oBAAY;MAAZ,oBAAY;UAAZ,YAAY;EAGd,mBtCekB;EsCblB,yBtC3BkB;EsC4BlB,gBtCgCe;EsC9Bf,mBtCda;EsCeb,wBAzCgB;UAyChB,gBAzCgB;EA2ChB,gBAAgB;EAChB,ctCtBa,EAAA;EsCwBb;IACE,gBAAgB,EAAA;;AA0ClB;EAhCE,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc;EAGhB,atCPmB;EsCQnB,mBtCpDkB,EAAA;EsCsDlB;IACE,gBAAgB,EAAA;;AA4BlB;EAnBE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc;EAGhB,atCvBmB,EAAA;EsCyBnB;IACE,gBAAgB,EAAA;;AAmBlB;EACE,eAAe,EAAA;;ACxDjB;EA5BA,kBAAkB;EAClB,WAAW;EAEX,aAAa;EAEb,YArBoB;EAsBpB,aAtCqB;EAwCrB,kBAAkB;EAClB,yBvCXmB;EuCYnB,gBvC4Ce;EuC3Cf,yBvCDa;EuCGb,eAjCuB,EAAA;EAqCvB;IACE,cAAc,EAAA;EAGhB;IACE,cAAc;IACd,mBAAmB,EAAA;;AAUnB;EAEI,YA1CK,EAAA;;AAwCT;EAEI,YAzCM,EAAA;;AAuCV;EAEI,YAxCM,EAAA;;ACoIZ;EAnFA,cAAgC;EAChC,mBxCXkB,EAAA;EE6FlB;IAEE,cAAc;IACd,YAAY;IAGV,qBAAa;QAAb,0BAAa;YAAb,aAAa;IACb,4BAAQ;IAAR,gBAAQ;QAAR,iBAAQ;YAAR,QAAQ,EAAA;EAIZ;IACE,WAAW,EAAA;EsC3Fb;IACE,uBvCG4D;IuCF5D,gBxCIa;IwCHb,mBvCC4D;IuCK1D,aAAa,EAAA;IAEb;MAEE,qBAAqB,EAAA;I3C4ErB;M2CzFN;QAuBM,qBAAqB,EAAA,EAG1B;EAGD;;IAEE,cAAc;IACd,2BvC5B4D;IuC6B5D,gBxC3Ba;IwC4Bb,cxC5EW,EAAA;IwC8EX;;MACE,mBxC3Fc,EAAA;EwCqIlB;IA/BA,2BvC5C8D;IuC6C9D,mBxChHkB;IwCiHlB,cxCxFa;IwCyFb,eAAe,EAAA;EA4Bf;IApBA,2BvCvD8D;IuCwD9D,cxC9GmB;IwC+GnB,mBAAmB,EAAA;IAEnB;MACE,uBAAuB,EAAA;EAezB;IANA,2BvCrE8D;IuCsE9D,gBAAgB;IAChB,cxCrHa,EAAA;;AwC0IX;;EAEE,qBAAqB;EACrB,oBAAsC;EACtC,YAzH6B,EAAA;;AA4H/B;;EAEE,qBAAqB;EACrB,mBAAqC;EACrC,YA5HyB,EAAA;;AC+E7B;EAnGA,kBAAkB;EAClB,qBAAqB;EAErB,iCzCZiB;EyCajB,iBzCmCuB;EyClCvB,YAhDmB,EAAA;;AAkJnB;EA9FA,kBAAkB;EAClB,2BAAwC;EACxC,aAAa;EAEb,gBAhCuB;EAiCvB,gBArCuB;EAuCvB,gBzC2Be;EyC1Bf,yBzCtBa;EyCuBb,c9B4BmB;E8B3BnB,czCpBa,EAAA;EyCsBb;IACE,kBAAkB,EAAA;EAIlB;IvClCF,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,qBuCRyB;IvCUzB,WAAW;IAOT,mBAAmB;IACnB,6CFZW;IyCiCT,YAAY,EAAA;EAGd;IACE,SAAS;IACT,mCAA2B;QAA3B,+BAA2B;YAA3B,2BAA2B,EAAA;EAK7B;IvC9CF,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,qBuCRyB;IvCUzB,WAAW;IAGT,sBAAsB;IACtB,6CAAqD;IuCqCnD,SAAS;IACT,YAAY,EAAA;EAGd;IACE,SAAS;IACT,mCAA2B;QAA3B,+BAA2B;YAA3B,2BAA2B,EAAA;EAK7B;IvC3DF,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,qBuCRyB;IvCUzB,WAAW;IAWT,qBAAqB;IACrB,yDFhBW;IyC0DT,UAAU,EAAA;EAGZ;IACE,YAAY;IACZ,QAAQ;IACR,mCAA2B;QAA3B,+BAA2B;YAA3B,2BAA2B,EAAA;EAK7B;IvCxEF,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,qBuCRyB;IvCUzB,WAAW;IAeT,oBAAoB;IACpB,yDAAiE;IuCmD/D,WAAW;IACX,UAAU,EAAA;EAGZ;IACE,YAAY;IACZ,QAAQ;IACR,mCAA2B;QAA3B,+BAA2B;YAA3B,2BAA2B,EAAA;EAI/B;IACE,YAAY;IACZ,QAAQ,EAAA;EAGV;IACE,WAAW;IACX,SAAS,EAAA;EAGX;IACE,SAAS;IACT,WAAW,EAAA;EAGb;IACE,UAAU;IACV,UAAU,EAAA;;ACCZ;EAxFA,cAAgC;EAChC,mB1CTa;E0CUb,qBAAqB,EAAA;EAGnB;IACE,mBAAmB,EAAA;;AAOvB;EACE,sBAAgD,EAAA;;AAGlD;EACE,sB1CkBa,EAAA;;A0C4Df;EAlEA,kBAAkB;EAClB,cAAc;EACd,qBAtDmC;EAwDnC,yB1C1DkB;E0C2DlB,gBAAgB;EAEhB,kBzCH8D;EyCI9D,cAAc;EACd,c1CxEkB,EAAA;E0C0ElB;IACE,gC1ClEgB;I0CmEhB,sB1CPa,EAAA;E0CUf;IAEE,yB1CxEgB,EAAA;E0C4EhB;IACE,kBAAkB;IAClB,QAAQ;IACR,WAAsB;IACtB,mBAAmB;IACnB,YAnG0B,EAAA;EAsG5B;IACE,YAnGoB,EAAO;;AA0I/B;EA3BA,aAAa;EACb,aAhF8B;EAkF9B,yB1CpGkB;E0CqGlB,gBAAgB;EAChB,yB1CtFa;E0CwFb,c1C5Fa,EAAA;E0C8Fb;IACE,gC1C3GgB,EAAA;;A2CsElB;EApFA,oBAAiC;EAAjC,qBAAiC;EAAjC,oBAAiC;EAAjC,aAAiC;EACjC,mB3CqDkB;E2ClDhB,yBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB,EAAA;EAGnB;IACE,eAAe,EAAA;E9CqJX;I8CjJJ;MAEI,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA,EAElB;;AAwEH;EAhEE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;EAOhB;IACE,mB3C0BiB,EAAA;E2CvBnB;IACE,kB3CsBiB,EAAA;E2CnBnB;IACE,gBAAgB,EAAA;E9CqHZ;I8ClHN;MAwBA,UAAU;MACV,oB3CVmB;M2CajB,wBAAgB;UAAhB,6BAAgB;cAAhB,gBAAgB;MAChB,eAAe,EAAA;MA7BjB;QAoCE,WAnFkC,EAAA,EAoFnC;EA9BC;IACE,mBAAa;IAAb,qBAAa;QAAb,iBAAa;YAAb,aAAa,EAAA;;ACkFjB;EArGA,kBAAkB,EAAA;;AAyGlB;EApGA,kBAAkB;EAClB,SAAS;EACT,SAAS;EACT,gBAAgB;EAChB,gBAAgB,EAAA;;AAoGhB;EA/FA,WAAW;EACX,kBAAkB,EAAA;EAGhB;IACE,MAAM;IACN,OAAO,EAAA;;AA6FX;EAvFA,SAAS,EAAA;;AA2FT;EAtFA,WAAW;EACX,eAAe;EACf,SAAS,EAAA;;AAwFT;EAnFA,kBAAkB;EAClB,SAAS;EACT,WAAW;EACX,gBAAgB;EAChB,aA1D0B;EA4D1B,uC5ClDa;E4CmDb,c5C/Ca,EAAA;;A4C+Hb;E1CiEA,kBAAkB;EAClB,QAAQ;EACR,mCAA2B;MAA3B,+BAA2B;UAA3B,2BAA2B;E0C5I3B,WAxDuB;EAyDvB,aA7D0B;EA8D1B,c5CxDa,EAAA;ELuqGb;IOjhGE,UAAU,EAAA;E0C5FZ;IAGE,uC5CjEW,EAAA;;A4CuIb;EAhEA,OAAkB,EAAA;;AAqElB;EAhEA,UAAqB;EACrB,QAAmB,EAAA;;AAoEnB;EA9DA,kBAAkB;EAClB,kBA1G8B;EA2G9B,qBAvGiC;EAwGjC,kBAAkB,EAAA;EjDsmGlB;IOliGE,UAAU,EAAA;E0ClEZ;IACE,aAvH0B;IAwH1B,cAxH0B;IAyH1B,cArHwB;IAuHxB,kBAAkB;IAClB,yB5CtGiB,EAAA;I4CwGjB;MACE,yB5CrGa,EAAA;I4CwGf;MACE,yB5CzGa,EAAA;;A6CAjB;;EAnBA,kBAAkB;EAClB,SAAS;EACT,mB5CmE8D;E4ClE9D,mB1B0C6B;E0BzC7B,gBAAgB,EAAA;EAEhB;;;;;;;;IAIE,kBAAkB;IAClB,MAAM;IACN,OAAkB;IAClB,WAAW;IACX,YAAY,EAAA;EAKd;;IAQM,sB1BkBuB,EAAA;;A2ByE7B;EAjFA,SApDY;EAqDZ,yB9C3BkB;E8C4BlB,mB9CZa;E8Cab,qBAAqB,EAAA;E5CwGrB;IAEE,cAAc;IACd,YAAY;IAGV,qBAAa;QAAb,0BAAa;YAAb,aAAa;IACb,4BAAQ;IAAR,gBAAQ;QAAR,iBAAQ;YAAR,QAAQ,EAAA;EAIZ;IACE,WAAW,EAAA;;A4C/Gb;EACE,cAAc;EACd,WAAW;EACX,WAAW,EAAA;;AAgFb;EAEI,UAAU,EAAA;EAFd;IAKM,uBAAuB,EAAA;;AAM7B;EACE,mB9C1IgB,EAAA;E8CyIlB;IAII,c9CpHS,EAAA;I8CgHb;MAQM,mBZvEyC,EAAA;;AY4E/C;EA3FA,WAAO,EAAA;EAEP;IAEE,cAAc;IACd,uBAtD6B;IAuD7B,kB7CE4D;I6CD5D,cAAc;IACd,c9CnEgB,EAAA;IL4xGhB;MO7mGA,UAAU,EAAA;I4C1GV;MACE,mB9C7CS;M8C8CT,cAA4C,EAAA;IAG9C;MAEE,mB9CnEc;M8CoEd,c9C7Ec,EAAA;;A8C0JlB;EAlEA,yB9C/EkB;E8CgFlB,aAAa;EACb,mB9CjEa;E8CkEb,c9CtEa;E8CuEb,iCAAyB;EAAzB,yBAAyB,EAAA;;AAkEzB;EA3DA,yB9C1FkB;E8C2FlB,cAAgC,EAAA;;AA8DhC;EAvDA,aAAa;EACb,aAlFwB,EAAA;EAoFxB;IACE,cAAc,EAAA;;AC/EhB;EAzBA,qBAAqB;EACrB,eAAe;EACf,mB/CwCkB;E+CtClB,yB/Cca;E+Cbb,gB/CyDe;E+CxDf,mD/CQa;U+CRb,2C/CQa;E+CNb,cAAc,EAAA;;AAqBd;EAjBA,qDApB8C;EAoB9C,6CApB8C;EAoB9C,qCApB8C;EAoB9C,wEApB8C,EAAA;EAsB9C;IAEE,uD/CvBgB;Y+CuBhB,+C/CvBgB,EAAA;E+C0BlB;IACE,wBAAgB;YAAhB,gBAAgB,EAAA;;AC6UlB;EA1UA,UAAU;EACV,SAAS;EACT,gBAAgB;EAChB,kBAAkB;EAGhB,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,uBAAe;MAAf,mBAAe;UAAf,eAAe,EAAA;ErDwyGjB;IO9pGE,UAAU,EAAA;E8CnIZ;;IAEE,cAAc;IACd,qBAAqB;IACrB,cAAc;IACd,oBhDwB6B,EAAA;EgDpB/B;;;;IAIE,gBAAgB,EAAA;EAGlB;IACE,qBAAqB,EAAA;EA2SvB;IA/MI,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,8BAAmB;IAAnB,6BAAmB;IAAnB,2BAAmB;QAAnB,uBAAmB;YAAnB,mBAAmB,EAAA;EA8MvB;IApMI,yBAAiB;QAAjB,qBAAiB;YAAjB,iBAAiB;IACjB,4BAAsB;IAAtB,6BAAsB;IAAtB,8BAAsB;QAAtB,0BAAsB;YAAtB,sBAAsB,EAAA;IA2EpB;;;;;MAII,gBAAgB,EAAA;EAhLxB;IACE,mBAAa;IAAb,qBAAa;QAAb,iBAAa;YAAb,aAAa,EAAA;EA2KX;;;;;IAII,gBAAgB,EAAA;EAoH1B;IAjLE,yBAAmB;IAAnB,2BAAmB;QAAnB,sBAAmB;YAAnB,mBAAmB,EAAA;IAGrB;MACE,iBAhMqB,EAAA;IAmMvB;MACE,UAAU,EAAA;EnDvCN;ImDgNN;MA/MI,uBAAe;UAAf,mBAAe;cAAf,eAAe;MACf,8BAAmB;MAAnB,6BAAmB;MAAnB,2BAAmB;UAAnB,uBAAmB;cAAnB,mBAAmB,EAAA;IA8MvB;MApMI,yBAAiB;UAAjB,qBAAiB;cAAjB,iBAAiB;MACjB,4BAAsB;MAAtB,6BAAsB;MAAtB,8BAAsB;UAAtB,0BAAsB;cAAtB,sBAAsB,EAAA;IAjGxB;MACE,mBAAa;MAAb,qBAAa;UAAb,iBAAa;cAAb,aAAa,EAAA;IADf;MACE,mBAAa;MAAb,qBAAa;UAAb,iBAAa;cAAb,aAAa,EAAA,EACd;EnDkFG;ImDgNN;MA/MI,uBAAe;UAAf,mBAAe;cAAf,eAAe;MACf,8BAAmB;MAAnB,6BAAmB;MAAnB,2BAAmB;UAAnB,uBAAmB;cAAnB,mBAAmB,EAAA;IA8MvB;MApMI,yBAAiB;UAAjB,qBAAiB;cAAjB,iBAAiB;MACjB,4BAAsB;MAAtB,6BAAsB;MAAtB,8BAAsB;UAAtB,0BAAsB;cAAtB,sBAAsB,EAAA;IAjGxB;MACE,mBAAa;MAAb,qBAAa;UAAb,iBAAa;cAAb,aAAa,EAAA;IADf;MACE,mBAAa;MAAb,qBAAa;UAAb,iBAAa;cAAb,aAAa,EAAA,EACd;EAkSH;IAzJE,eAAiC;IACjC,iBhDpI4B,EAAA;EgD4I5B;IACE,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa,EAAA;EADf;IACE,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa,EAAA;EA8Cf;IAEI,8BAAqB;IAArB,6BAAqB;IAArB,6BAAqB;QAArB,yBAAqB;YAArB,qBAAqB,EAAA;IAGvB;;;;;MAGE,qBApQmB,EAAA;EA6QvB;IAEI,8BAAqB;IAArB,6BAAqB;IAArB,6BAAqB;QAArB,yBAAqB;YAArB,qBAAqB,EAAA;IAGvB;;;;;MAGE,oBArRmB,EAAA;EA8RvB;IAEI,4BAAwB;IAAxB,6BAAwB;IAAxB,gCAAwB;QAAxB,4BAAwB;YAAxB,wBAAwB,EAAA;IAM1B;;;;;MAQI,2BAAmB;UAAnB,4BAAmB;cAAnB,mBAAmB;MACnB,sBA/SiB;MAgTjB,kBAAkB,EAAA;EAMxB;IAEI,4BAAwB;IAAxB,6BAAwB;IAAxB,gCAAwB;QAAxB,4BAAwB;YAAxB,wBAAwB,EAAA;IAM1B;;;;;MAQI,2BAAmB;UAAnB,4BAAmB;cAAnB,mBAAmB;MACnB,sBAvUiB;MAwUjB,kBAAkB,EAAA;EAqB1B;IALA,mBhDnWkB;IgDoWlB,chD3Ua,EAAA;EgD+Ub;IALA,mBhDnWkB;IgDoWlB,chD3Ua,EAAA;EgD+Ub;IAjRI,uBAA2B;IAA3B,mCAA2B;QAA3B,oBAA2B;YAA3B,2BAA2B,EAAA;EAQ3B;IACE,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa;IACb,qBAAyB;IAAzB,iCAAyB;QAAzB,kBAAyB;YAAzB,yBAAyB,EAAA;IAEzB;MACE,uBAA2B;MAA3B,mCAA2B;UAA3B,oBAA2B;cAA3B,2BAA2B,EAAA;EAI/B;IACE,cAAc;IACd,iBhDNoD,EAAA;IgDQpD;MACE,iBhDTkD,EAAA;EgD4IpD;;;;;IAQI,iBAAiB,EAAA;EAgH3B;IA7JE,kBhD/H4B;IgDgI5B,cAAgC,EAAA;EA3E9B;IACE,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa;IACb,wBAAuB;IAAvB,+BAAuB;QAAvB,qBAAuB;YAAvB,uBAAuB,EAAA;IAEvB;MACE,uBAA2B;MAA3B,mCAA2B;UAA3B,oBAA2B;cAA3B,2BAA2B,EAAA;EAkOnC;IAbA,oBhDlR+B;IgDoR/B,iBAAiB;IACjB,cAAc;IACd,cAAc,EAAA;;AAwIZ;EAGM,wBAAuB;EAAvB,+BAAuB;MAAvB,qBAAuB;UAAvB,uBAAuB,EAAA;EAzW3B;IACE,oBAAa;IAAb,qBAAa;IAAb,oBAAa;IAAb,aAAa;IACb,wBAAuB;IAAvB,+BAAuB;QAAvB,qBAAuB;YAAvB,uBAAuB,EAAA;IAEvB;MACE,uBAA2B;MAA3B,mCAA2B;UAA3B,oBAA2B;cAA3B,2BAA2B,EAAA;;AA6WnC;EACE,aAAa,EAAA;;AC9gBf;E/CwGA,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,WAzBY;EA0BZ,YAzBa;EA0Bb,eAAe,EAAA;EAGf;IACE,kBAAkB;IAClB,MAAM;IACN,OAAO;IAEP,cAAc;IACd,WAAW;IACX,WAnCU;IAqCV,mBFtEW;IEuEX,qDFvEW;YEuEX,6CFvEW;IEyEX,WAAW,EAAA;EAWX;IACE,mBFjGe;IEkGf,qDFlGe;YEkGf,6CFlGe,EAAA;;AiDnCnB;E/CoGA,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,WAzBY;EA0BZ,YAzBa;EA0Bb,eAAe,EAAA;EAGf;IACE,kBAAkB;IAClB,MAAM;IACN,OAAO;IAEP,cAAc;IACd,WAAW;IACX,WAnCU;IAqCV,mBF1EW;IE2EX,qDF3EW;YE2EX,6CF3EW;IE6EX,WAAW,EAAA;EAWX;IACE,mBF7Fa;IE8Fb,qDF9Fa;YE8Fb,6CF9Fa,EAAA;;AkDiCjB;EAWI,WAAW,EAAA;;AAXf;EAkBI,oBlDK2B,EAAA;;AkDvB/B;EAsBI,oBlDC2B,EAAA;;AkDvB/B;EF6JE,eAAiC;EACjC,iBhDpI4B,EAAA;;AkD1B9B;EFyJE,kBhD/H4B;EgDgI5B,cAAgC,EAAA;;AElLlC;EACE,kBAAkB,EAAA;EAElB;IhDXF,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBgDA4B;IhDE5B,WAAW;IAGT,sBAAsB;IACtB,6CAAqD;IgDEnD,kBAAkB;IAClB,QAAQ;IACR,gBAAkD;IAClD,WAAsB,EAAA;;AAI1B;EACE,WAAW;EACX,UAAU,EAAA;;AAGZ;EACE,WAAW;EACX,UAAU,EAAA;;AAKZ;EAuCM,iCAAyB;MAAzB,6BAAyB;UAAzB,yBAAyB;EACzB,iCAAyB;MAAzB,6BAAyB;UAAzB,yBAAyB,EAAA;;AAY/B;EACE,kBAAkB,EAAA;;AAGpB;EACE,kBA5FqC,EAAA;;AAgGvC;EACE,kBAAkB;EAClB,MAAM;EACN,QAAmB;EAEnB,WArGqC;EAsGrC,YAtGqC;EAwGrC,eAAe,EAAA;EARjB;IhD7FA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBgDA4B;IhDE5B,WAAW;IAGT,sBAAsB;IACtB,6CAAqD;IgDsGnD,MAAM;IACN,SAAS;IACT,YAAY,EAAA;;AAKhB;EACE,6BAAqB;MAArB,yBAAqB;UAArB,qBAAqB;EACrB,iCAAyB;MAAzB,6BAAyB;UAAzB,yBAAyB,EAAA;;AAG3B;EhD8CA,6BAAgC;EAChC,qBAAwB;EACxB,sBAAyB;EACzB,qBAAwB;EACxB,2BAA8B;EAC9B,iCAAoC;EACpC,8BAAiC;EACjC,oBAAuB,EAAA;;AiDtJvB;EACE,kBAAkB;EAClB,gBAAgB,EAAA;EAFlB;IAKI,cAAc,EAAA;EALlB;IASI,+BAAuB;IAAvB,uBAAuB,EAAA;;AAK3B;EAEI,oBnDW2B;EmDV3B,mBnDtCS,EAAA;;AmDmCb;EAQI,kBAAkB;EAClB,MAAM;EACN,UAAqB;EACrB,WAAW;EAEX,WAAW;EACX,mBnDjDS;EmDkDT,kDA5FuC;EA4FvC,0CA5FuC;EA4FvC,kCA5FuC;EA4FvC,kEA5FuC,EAAA;EA6E3C;IAkBM,UAAU;IACV,cAAc;IACd,oCAAqE;QAArE,gCAAqE;YAArE,4BAAqE,EAAA;EApB3E;IAwBM,mCAAqE;QAArE,+BAAqE;YAArE,2BAAqE,EAAA;EAxB3E;IA6BM,oBnDhByB,EAAA;;AmDb/B;EHmJE,eAAiC;EACjC,cGrNuB,EAAA;;AAiEzB;EAsCI,gBAAgB,EAAA;;AAhFpB;EACE,kBAAkB,EAAA;EAElB;IjDHF,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBiDRwB;IjDUxB,WAAW;IAWT,qBAAqB;IACrB,yDFrCgB;ImDuBd,kBAAkB;IAClB,QAAQ;IACR,gBAAsC;IACtC,WAAsB,EAAA;;AAI1B;EjDZA,cAAc;EACd,QAAQ;EACR,SAAS;EAET,mBAAmB;EACnB,iBkDhC2B;ElDkC3B,WAAW;EAWT,qBAAqB;EACrB,yDFrCgB;EmDgChB,WAAW;EACX,UAAU,EAAA;;AAGZ;EjDlBA,cAAc;EACd,QAAQ;EACR,SAAS;EAET,mBAAmB;EACnB,iBkDhC2B;ElDkC3B,WAAW;EAeT,oBAAoB;EACpB,yDAAiE;EiDHjE,WAAW;EACX,UAAU,EAAA;;AAqBZ;EjD1CA,cAAc;EACd,QAAQ;EACR,SAAS;EAET,mBAAmB;EACnB,iBiDRwB;EjDUxB,WAAW;EAeT,oBAAoB;EACpB,yDAAiE;EiDiE7D,qBAAqB;EACrB,sBAAsB;EACtB,qBAAuC,EAAA;;ACnDzC;EACE,SAAS;EACT,QAAQ;EACR,UAAU,EAAA;;AAKZ;EACE,SAAS;EACT,WAAW;EACX,OAAO,EAAA;;AAKT;EACE,kBAAkB;EAClB,qBAhF2B,EAAA;;AAmF7B;ElD5DJ,cAAc;EACd,QAAQ;EACR,SAAS;EAET,mBAAmB;EACnB,iBkDhC2B;ElDkC3B,WAAW;EAGT,sBAAsB;EACtB,6CAAqD;EkDmDjD,UAAqB;EACrB,UAAqB;EACrB,gBAAiD,EAAA;;AzDyoHzD;EO5iHI,UAAU,EAAA;;AkDzDZ;EAUI,oBpDvD2B,EAAA;;AoD6C/B;EAeI,uBAjG4C;EAkG5C,cpDtIc,EAAA;;AoDyIhB;EACE,aAAa,EAAA;;AApBjB;EJyFE,eAAiC;EACjC,cIjM0B,EAAA;;AAyExB;EACE,MAAM,EAAA;;AAIN;EACE,MAAM;EACN,WAAW;EACX,UAAU,EAAA;;AAKZ;EACE,WAAW;EACX,UAAU,EAAA;;AAhElB;EACE,WAAsB,EAAA;;AAGxB;ElDzBA,cAAc;EACd,QAAQ;EACR,SAAS;EAET,mBAAmB;EACnB,iBkDhC2B;ElDkC3B,WAAW;EAeT,oBAAoB;EACpB,yDAAiE;EkDIjE,WAAW;EACX,SAAS,EAAA;;AAGX;ElD/BA,cAAc;EACd,QAAQ;EACR,SAAS;EAET,mBAAmB;EACnB,iBkDhC2B;ElDkC3B,WAAW;EAWT,qBAAqB;EACrB,yDFrCgB,EAAA;;AHwJZ;EuD/FF;IACE,SAAS;IACT,QAAQ;IACR,UAAU,EAAA;EAKZ;IACE,SAAS;IACT,WAAW;IACX,OAAO,EAAA;EAKT;IACE,kBAAkB;IAClB,qBAhF2B,EAAA;EAmF7B;IlD5DJ,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAGT,sBAAsB;IACtB,6CAAqD;IkDmDjD,UAAqB;IACrB,UAAqB;IACrB,gBAAiD,EAAA;EAMnD;IACE,MAAM,EAAA;EAIN;IACE,MAAM;IACN,WAAW;IACX,UAAU,EAAA;EAKZ;IACE,WAAW;IACX,UAAU,EAAA;EAhElB;IACE,WAAsB,EAAA;EAGxB;IlDzBA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAeT,oBAAoB;IACpB,yDAAiE;IkDIjE,WAAW;IACX,SAAS,EAAA;EAGX;IlD/BA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAWT,qBAAqB;IACrB,yDFrCgB,EAAA,EoDmDjB;;AvDqGK;EuD/FF;IACE,SAAS;IACT,QAAQ;IACR,UAAU,EAAA;EAKZ;IACE,SAAS;IACT,WAAW;IACX,OAAO,EAAA;EAKT;IACE,kBAAkB;IAClB,qBAhF2B,EAAA;EAmF7B;IlD5DJ,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAGT,sBAAsB;IACtB,6CAAqD;IkDmDjD,UAAqB;IACrB,UAAqB;IACrB,gBAAiD,EAAA;EAMnD;IACE,MAAM,EAAA;EAIN;IACE,MAAM;IACN,WAAW;IACX,UAAU,EAAA;EAKZ;IACE,WAAW;IACX,UAAU,EAAA;EAhElB;IACE,WAAsB,EAAA;EAGxB;IlDzBA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAeT,oBAAoB;IACpB,yDAAiE;IkDIjE,WAAW;IACX,SAAS,EAAA;EAGX;IlD/BA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAWT,qBAAqB;IACrB,yDFrCgB,EAAA,EoDmDjB;;AAmED;EA+CM,SAAS;EACT,QAAQ;EACR,UAAU,EAAA;;AAKhB;EACE,YAAY,EAAA;EADd;IAII,YAAY,EAAA;;AAIhB;EACE,kBAAkB,EAAA;EADpB;IAII,kBAAkB;IAClB,QAAQ;IACR,UAAqB;IACrB,UAAqB;IACrB,gBAAyC,EAAA;EAR7C;IAaI,SAAS;IAKP,UAAU,EAAA;EAlBhB;IAuBI,WAAW;IACX,UAAU,EAAA;EAxBd;IA4BI,WAAW;IACX,UAAU,EAAA;;AAId;EACE,kBAAkB;EAClB,MAAM;EACN,UAAqB;EACrB,UAAU;EAEV,aAAa;EACb,gBA7N0B;EA+N1B,yBpDjNiB;EoDkNjB,mBpDtMW,EAAA;EoDwMX;IACE,oBpDzJ2B,EAAA;EoDlC/B;IACE,WAAsB,EAAA;EAGxB;IlDzBA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAeT,oBAAoB;IACpB,yDAAiE;IkDIjE,WAAW;IACX,SAAS,EAAA;EAGX;IlD/BA,cAAc;IACd,QAAQ;IACR,SAAS;IAET,mBAAmB;IACnB,iBkDhC2B;IlDkC3B,WAAW;IAWT,qBAAqB;IACrB,yDFrCgB,EAAA;EoDqNlB;IAwBM,gBAtNiB,EAAA;EA8LvB;IA6BI,WAAW,EAAA;EA7Bf;IAmCI,cAAc,EAAA;;ACxLlB;EACE,gBAAgB,EAAA;;AAIlB;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WA9DyB;EAgEzB,WAAW;EACX,YAAY;EAEZ,2DA/C8B;EA+C9B,mDA/C8B;EAiD9B,qCrDvDW;EqDyDX,UAAU;EACV,kBAAkB;EAElB,gBAAgB,EAAA;EAhBlB;IAmBI,UAAU;IACV,mBAAmB,EAAA;EApBvB;IAwBI,eAAe,EAAA;EAxBnB;IA4BI,kBAAkB,EAAA;EA5BtB;IAgCI,eAAe,EAAA;;AAkUnB;EA3TA,kBAAkB;EAClB,gBAAgB,EAAA;;AA+ThB;EAnTE,eAAe;EAOjB,WAjHwB;EAwHxB,+CAxGgC;EAwGhC,uCAxGgC;EAwGhC,+BAxGgC;EAwGhC,4DAxGgC;EAyGhC,mCAA2B;UAA3B,2BAA2B;EAE3B,mBrDjIkB,EAAA;EL+9HlB;IOzzHE,UAAU,EAAA;EmD5CZ;IACE,WArHsB,EAAA;EA8HxB;IACE,kBAAkB,EAAA;EAIpB;IACE,WAhIyB,EAAA;IAkIzB;MACE,kDrDjIS;cqDiIT,0CrDjIS,EAAA;EqDsIb;IACE,kCAA0B;QAA1B,8BAA0B;YAA1B,0BAA0B,EAAA;;AA2R5B;EA3TE,kBAAkB;EAIpB,WAjHwB;EAwHxB,+CAxGgC;EAwGhC,uCAxGgC;EAwGhC,+BAxGgC;EAwGhC,4DAxGgC;EAyGhC,mCAA2B;UAA3B,2BAA2B;EAE3B,mBrDjIkB,EAAA;ELk/HlB;IO50HE,UAAU,EAAA;EmD5CZ;IACE,WArHsB,EAAA;EA8HxB;IACE,kBAAkB,EAAA;EAIpB;IACE,WAhIyB,EAAA;IAkIzB;MACE,kDrDjIS;cqDiIT,0CrDjIS,EAAA;EqDsIb;IACE,kCAA0B;QAA1B,8BAA0B;YAA1B,0BAA0B,EAAA;;AAgS5B;EArRE,MAAM;EACN,OAAO;EACP,YAAY;EACZ,gBAAgB;EAChB,iCAAiC;EAI7B,YA/LM;EAgMN,qCAA6B;MAA7B,iCAA6B;UAA7B,6BAA6B,EAAA;EAKzB;IAIF,qCAA6B;QAA7B,iCAA6B;YAA7B,6BAA6B,EAAA;IAJ3B;MAQJ,kCAA0B;UAA1B,8BAA0B;cAA1B,0BAA0B,EAAA;EAKtB;IAIA,oCAA4B;QAA5B,gCAA4B;YAA5B,4BAA4B,EAAA;EA0HpC;InD9TA,mEFmBW;YEnBX,2DFmBW,EAAA;;AqDwab;EAhPE,MAAM;EACN,QAAQ;EACR,YAAY;EACZ,gBAAgB;EAChB,iCAAiC;EAI7B,YArOM;EAsON,oCAA4B;MAA5B,gCAA4B;UAA5B,4BAA4B,EAAA;EAKxB;IAIF,oCAA4B;QAA5B,gCAA4B;YAA5B,4BAA4B,EAAA;IAJ1B;MAQJ,kCAA0B;UAA1B,8BAA0B;cAA1B,0BAA0B,EAAA;EAKtB;IAIA,qCAA6B;QAA7B,iCAA6B;YAA7B,6BAA6B,EAAA;EAoFrC;InDhUA,kEFqBW;YErBX,0DFqBW,EAAA;;AqDyab;EA3ME,MAAM;EACN,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,iCAAiC;EAI7B,aArQM;EAsQN,qCAA6B;MAA7B,iCAA6B;UAA7B,6BAA6B,EAAA;EAKzB;IAGF,qCAA6B;QAA7B,iCAA6B;YAA7B,6BAA6B,EAAA;IAH3B;MAOJ,kCAA0B;UAA1B,8BAA0B;cAA1B,0BAA0B,EAAA;EAKtB;IAIA,oCAA4B;QAA5B,gCAA4B;YAA5B,4BAA4B,EAAA;EA+CpC;InD5TA,mEFiBW;YEjBX,2DFiBW,EAAA;;AqD0ab;EAvKE,SAAS;EACT,OAAO;EACP,WAAW;EACX,gBAAgB;EAChB,iCAAiC;EAI7B,aA1SM;EA2SN,oCAA4B;MAA5B,gCAA4B;UAA5B,4BAA4B,EAAA;EAKxB;IAGF,oCAA4B;QAA5B,gCAA4B;YAA5B,4BAA4B,EAAA;IAH1B;MAOJ,kCAA0B;UAA1B,8BAA0B;cAA1B,0BAA0B,EAAA;EAKtB;IAIA,qCAA6B;QAA7B,iCAA6B;YAA7B,6BAA6B,EAAA;EAUrC;InDlUA,kEFuBW;YEvBX,0DFuBW,EAAA;;AqD4ab;EA7GA,uBAAe;MAAf,mBAAe;UAAf,eAAe;EACf,mCAA2B;UAA3B,2BAA2B,EAAA;EAG3B;IAEE,+CA3T8B;IA2T9B,uCA3T8B;IA2T9B,+BA3T8B;IA2T9B,4DA3T8B,EAAA;EA+ThC;IACE,kCAA0B;QAA1B,8BAA0B;YAA1B,0BAA0B,EAAA;EAI5B;IACE,kCAA0B;QAA1B,8BAA0B;YAA1B,0BAA0B,EAAA;;AxD5MtB;EwDiTA;IA1FN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,kBAlZU,EAAA;IAsZZ;MACE,kBAvZU,EAAA;EA6dN;IA9FN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,mBAlZU,EAAA;IAsZZ;MACE,mBAvZU,EAAA;EAieN;IAlGN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,iBAlZU,EAAA;IAsZZ;MACE,iBAvZU,EAAA;EAqeN;IAtGN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,oBAlZU,EAAA;IAsZZ;MACE,oBAvZU,EAAA,EAwZX;;AxDhPK;EwDiTA;IA1FN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,kBAlZU,EAAA;IAsZZ;MACE,kBAvZU,EAAA;EA6dN;IA9FN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,mBAlZU,EAAA;IAsZZ;MACE,mBAvZU,EAAA;EAieN;IAlGN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,iBAlZU,EAAA;IAsZZ;MACE,iBAvZU,EAAA;EAqeN;IAtGN,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,WAzV0B;IA0V1B,wBAAgB;IAAhB,gBAAgB;IAChB,mBAAmB,EAAA;IAMnB;MACE,aAAa,EAAA;IAIf;MACE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGT;MACN,oBAlZU,EAAA;IAsZZ;MACE,oBAvZU,EAAA,EAwZX;;AxDhPK;EwDwUA;IAnFN,mBAAmB;IACnB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;IACX,iBAAiB;IACjB,wBAAgB;IAAhB,gBAAgB,EAAA;IAGhB;MAIE,wBAAgB;cAAhB,gBAAgB;MAChB,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGjB;MACE,aAAa,EAAA,EACd;;AxDxQK;EwDwUA;IAnFN,mBAAmB;IACnB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;IACX,iBAAiB;IACjB,wBAAgB;IAAhB,gBAAgB,EAAA;IAGhB;MAIE,wBAAgB;cAAhB,gBAAgB;MAChB,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;IAGjB;MACE,aAAa,EAAA,EACd;;AvDtTD;EACE,eAAe;EACf,WAAW;EACX,kBAAkB,EAAA;EAHpB;IAMI,kBAAkB;IAClB,iCAAiC,EAAA;EAPrC;IAWI,kBAAkB,EAAA;;AAKtB;EA7FA,eAAe;EACf,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,aA3BkB;EA6BlB,aAAa;EACb,wCEhBa;EFiBb,gBAAgB;EAChB,iCAAiC,EAAA;;AAwFjC;EAlFA,aAtCkB;EAwClB,mCAA2B;UAA3B,2BAA2B;EAE3B,aAAa;EACb,aEGmB;EFDnB,yBEvCmB;EFwCnB,gBEgBe;EFff,yBE7Ba;EFyGX,kBAAkB;EAClB,UAAU;EACV,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,iCAAiC,EAAA;EH6nInC;IOrlIE,UAAU,EAAA;ELvBN;ICzBN;MAtEE,aAAa,EAAA,EAsGd;EAlGD;IACE,YAAY,EAAA;EAId;IACE,gBAAgB,EAAA;EDqFZ;ICzBN;MA9CE,YA9FgB;MA+FhB,gBGf4D,EAAA,EH4F7D;EAhCD;IAYI,UAAU,EAAA;EDaR;ICzBN;MA9CE,UA8DyC;MA7DzC,gBGf4D,EAAA,EH4Ed;EDS1C;ICzBN;MA9CE,UA+DyC;MA9DzC,gBGf4D,EAAA,EH6Ed;EDQ1C;ICzBN;MA9CE,UAgEyC;MA/DzC,gBGf4D,EAAA,EH8Ed;EAlBhD;IAvCA,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IAEP,WAAW;IACX,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,cAAc;IAEd,SAAS;IACT,gBAAgB,EAAA;EDoDV;ICzBN;MAvCA,MAAM;MACN,QAAQ;MACR,SAAS;MACT,OAAO;MAEP,WAAW;MACX,eAAe;MACf,YAAY;MACZ,gBAAgB;MAChB,cAAc;MAEd,SAAS;MACT,gBAAgB,EAAA,EA2Df;EAhCD;IA8BI,eAAe,EAAA;;AwDnLnB;EACE,kBAAkB,EAAA;;AAGpB;EACE,kBAAkB;EAClB,UAAU;EACV,uCAA+B;UAA/B,+BAA+B,EAAA;;AAGjC;EACE,eAAe;EACf,UAAU;EACV,WAAW,EAAA;EAHb;IAMI,MAAM,EAAA;EANV;IAUI,SAAS,EAAA;;AAIb;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU,EAAA;EAHZ;IAMI,SAAS,EAAA;;ACEb;EACE,eApBqB;EAqBrB,mBvDSW;EuDRX,cvDYW;EuDTT,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,uBAA2B;EAA3B,mCAA2B;MAA3B,oBAA2B;UAA3B,2BAA2B;EAC3B,yBAAmB;EAAnB,2BAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB,EAAA;EARvB;IAeI,oBAlByB;IAmBzB,qBAnByB,EAAA;;AAwB3B;;EAEE,mBAAa;EAAb,qBAAa;MAAb,iBAAa;UAAb,aAAa,EAAA;;AAGf;EACE,iBAAiB,EAAA;;AAcrB;EACE,qBAAqB;EACrB,sBAAsB;EACtB,iBA3D4B,EAAA;;ACmG9B;EAtFE,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,yBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;EACjB,yBAA8B;EAA9B,sCAA8B;MAA9B,sBAA8B;UAA9B,8BAA8B;EAC9B,yBAAmB;EAAnB,2BAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;EAMrB,eAlCqB;EAoEnB,uBAAe;MAAf,mBAAe;UAAf,eAAe,EAAA;EAhCjB;;IAEE,yBxDZgB,EAAA;EwDuBlB;IACE,gBAlCsB;IAmCtB,kBAAoC,EAAA;EAItC;IACE,WAAW;IACX,eAAiC,EAAA;EAGnC;IACE,WAAW,EAAA;EAUX;;IAEE,mBAAc;IAAd,sBAAc;QAAd,kBAAc;YAAd,cAAc;IACd,eAAe,EAAA;E3D+Fb;I2D1DN;MAtBE,yBAAiB;UAAjB,qBAAiB;cAAjB,iBAAiB,EAAA;MAEjB;QACE,mBAAc;QAAd,sBAAc;YAAd,kBAAc;gBAAd,cAAc;QACd,kBAAkB,EAAA;MAGpB;QACE,mBAAc;QAAd,sBAAc;YAAd,kBAAc;gBAAd,cAAc;QACd,iBAAiB,EAAA,EAClB;E3DsEG;I2D1DN;MA3CE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;MAGf;;QAEE,mBAAc;QAAd,sBAAc;YAAd,kBAAc;gBAAd,cAAc;QACd,eAAe,EAAA,EAChB;E3D8FG;I2D1DN;MA3CE,uBAAe;UAAf,mBAAe;cAAf,eAAe,EAAA;MAGf;;QAEE,mBAAc;QAAd,sBAAc;YAAd,kBAAc;gBAAd,cAAc;QACd,eAAe,EAAA,EAChB;;AA4DD;EACE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc;EACd,4BA7HqC,EAAA;;AAgIvC;;EAEE,mBAAc;EAAd,sBAAc;MAAd,kBAAc;UAAd,cAAc,EAAA;;AC/IlB;EACE,sBAAsB,EAAA;;AAGxB;EACE,uBAAuB,EAAA;;AAGzB;EACE,cAAc;EACd,kBAAkB;EAClB,iBAAiB,EAAA;;AvDqJnB;EAEE,cAAc;EACd,YAAY;EAGV,qBAAa;MAAb,0BAAa;UAAb,aAAa;EACb,4BAAQ;EAAR,gBAAQ;MAAR,iBAAQ;UAAR,QAAQ,EAAA;;AAIZ;EACE,WAAW,EAAA;;AwD3GX;ECnBF,uBArDyD;EAqDzD,mCArDyD;MAqDzD,oBArDyD;UAqDzD,2BArDyD,EAAA;;ADwEvD;ECnBF,qBApD0D;EAoD1D,iCApD0D;MAoD1D,kBApD0D;UAoD1D,yBApD0D,EAAA;;ADuExD;ECnBF,wBAnDkB;EAmDlB,+BAnDkB;MAmDlB,qBAnDkB;UAmDlB,uBAnDkB,EAAA;;ADsEhB;ECnBF,yBAlD0B;EAkD1B,sCAlD0B;MAkD1B,sBAlD0B;UAkD1B,8BAlD0B,EAAA;;ADqExB;ECnBF,qCAjDwB;MAiDxB,yBAjDwB;UAiDxB,6BAjDwB,EAAA;;AD2EtB;EC1BF,uBArDyD;EAqDzD,mCArDyD;MAqDzD,oBArDyD;UAqDzD,2BArDyD,EAAA;;AD+EvD;EC1BF,qBApD0D;EAoD1D,iCApD0D;MAoD1D,kBApD0D;UAoD1D,yBApD0D,EAAA;;AD8ExD;EC1BF,wBAnDkB;EAmDlB,+BAnDkB;MAmDlB,qBAnDkB;UAmDlB,uBAnDkB,EAAA;;ADwFhB;ECpCF,wBA1CiB;EA0CjB,+BA1CiB;MA0CjB,qBA1CiB;UA0CjB,uBA1CiB,EAAA;;ADkFf;ECxBF,8BA1DiB;MA0DjB,0BA1DiB;UA0DjB,sBA1DiB,EAAA;;AD8Ef;ECpCF,sBAzCkB;EAyClB,6BAzCkB;MAyClB,mBAzCkB;UAyClB,qBAzCkB,EAAA;;ADiFhB;ECxBF,4BAzDkB;MAyDlB,wBAzDkB;UAyDlB,oBAzDkB,EAAA;;AD6EhB;ECpCF,yBAxCgB;EAwChB,2BAxCgB;MAwChB,sBAxCgB;UAwChB,mBAxCgB,EAAA;;ADgFd;ECxBF,0BAxDgB;MAwDhB,2BAxDgB;UAwDhB,kBAxDgB,EAAA;;AD4Ed;ECpCF,0BAvCkB;EAuClB,4BAvCkB;MAuClB,uBAvCkB;UAuClB,oBAvCkB,EAAA;;AD+EhB;ECxBF,2BAvDkB;MAuDlB,4BAvDkB;UAuDlB,mBAvDkB,EAAA;;ADqFlB;EC/CA,wBAnDkB;EAmDlB,+BAnDkB;MAmDlB,qBAnDkB;UAmDlB,uBAnDkB;EAoDlB,yBAxCgB;EAwChB,2BAxCgB;MAwChB,sBAxCgB;UAwChB,mBAxCgB;EDwFd,6BAAqB;MAArB,0BAAqB;UAArB,qBAAqB,EAAA;;AAMnB;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;AACZ;EChCJ,4BD+BgB;EC/BhB,gBD+BgB;MC/BhB,iBD+BgB;UC/BhB,QD+BgB,EAAA;;A7DsEV;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;A7DmEC;E6DrEF;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA;EACZ;IChCJ,4BD+BgB;IC/BhB,gBD+BgB;QC/BhB,iBD+BgB;YC/BhB,QD+BgB,EAAA,EAGX;;AA/FL;ECYA,oBAAa;EAAb,qBAAa;EAAb,oBAAa;EAAb,aAAa,EAAA;;ADRb;EACE,mBA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","file":"foundation.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n\n// --- Dependencies ---\n@import 'vendor/normalize';\n@import '../_vendor/sassy-lists/stylesheets/helpers/missing-dependencies';\n@import '../_vendor/sassy-lists/stylesheets/helpers/true';\n@import '../_vendor/sassy-lists/stylesheets/functions/contain';\n@import '../_vendor/sassy-lists/stylesheets/functions/purge';\n@import '../_vendor/sassy-lists/stylesheets/functions/remove';\n@import '../_vendor/sassy-lists/stylesheets/functions/replace';\n@import '../_vendor/sassy-lists/stylesheets/functions/to-list';\n\n// --- Settings ---\n// import your own `settings` here or\n// import and modify the default settings through\n// @import 'settings/settings';\n\n// --- Components ---\n// Utilities\n@import 'util/util';\n// Global styles\n@import 'global';\n@import 'forms/forms';\n@import 'typography/typography';\n\n// Grids\n@import 'grid/grid';\n@import 'xy-grid/xy-grid';\n// Generic components\n@import 'components/button';\n@import 'components/button-group';\n@import 'components/close-button';\n@import 'components/label';\n@import 'components/progress-bar';\n@import 'components/slider';\n@import 'components/switch';\n@import 'components/table';\n// Basic components\n@import 'components/badge';\n@import 'components/breadcrumbs';\n@import 'components/callout';\n@import 'components/card';\n@import 'components/dropdown';\n@import 'components/pagination';\n@import 'components/tooltip';\n\n// Containers\n@import 'components/accordion';\n@import 'components/media-object';\n@import 'components/orbit';\n@import 'components/responsive-embed';\n@import 'components/tabs';\n@import 'components/thumbnail';\n// Menu-based containers\n@import 'components/menu';\n@import 'components/menu-icon';\n@import 'components/accordion-menu';\n@import 'components/drilldown';\n@import 'components/dropdown-menu';\n\n// Layout components\n@import 'components/off-canvas';\n@import 'components/reveal';\n@import 'components/sticky';\n@import 'components/title-bar';\n@import 'components/top-bar';\n\n// Helpers\n@import 'components/float';\n@import 'components/flex';\n@import 'components/visibility';\n@import 'prototype/prototype';\n\n\n@mixin foundation-everything(\n  $flex: true,\n  $prototype: false,\n  $xy-grid: $xy-grid\n) {\n  @if $flex {\n    $global-flexbox: true !global;\n  }\n\n  @if $xy-grid {\n    $xy-grid: true !global;\n  }\n\n  // Global styles\n  @include foundation-global-styles;\n  @include foundation-forms;\n  @include foundation-typography;\n\n  // Grids\n  @if not $flex {\n    @include foundation-grid;\n  }\n  @else {\n    @if $xy-grid {\n      @include foundation-xy-grid-classes;\n    }\n    @else {\n      @include foundation-flex-grid;\n    }\n  }\n\n  // Generic components\n  @include foundation-button;\n  @include foundation-button-group;\n  @include foundation-close-button;\n  @include foundation-label;\n  @include foundation-progress-bar;\n  @include foundation-slider;\n  @include foundation-switch;\n  @include foundation-table;\n  // Basic components\n  @include foundation-badge;\n  @include foundation-breadcrumbs;\n  @include foundation-callout;\n  @include foundation-card;\n  @include foundation-dropdown;\n  @include foundation-pagination;\n  @include foundation-tooltip;\n\n  // Containers\n  @include foundation-accordion;\n  @include foundation-media-object;\n  @include foundation-orbit;\n  @include foundation-responsive-embed;\n  @include foundation-tabs;\n  @include foundation-thumbnail;\n  // Menu-based containers\n  @include foundation-menu;\n  @include foundation-menu-icon;\n  @include foundation-accordion-menu;\n  @include foundation-drilldown-menu;\n  @include foundation-dropdown-menu;\n\n  // Layout components\n  @include foundation-off-canvas;\n  @include foundation-reveal;\n  @include foundation-sticky;\n  @include foundation-title-bar;\n  @include foundation-top-bar;\n\n  // Helpers\n  @include foundation-float-classes;\n  @if $flex { @include foundation-flex-classes; }\n  @include foundation-visibility-classes;\n  @if $prototype { @include foundation-prototype-classes; }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$unit-warnings: true !default;\n\n////\n/// @group functions\n////\n\n$global-font-size: 100% !default;\n\n/// Removes the unit (e.g. px, em, rem) from a value, returning the number only.\n///\n/// @param {Number} $num - Number to strip unit from.\n///\n/// @returns {Number} The same number, sans unit.\n@function strip-unit($num) {\n  @return divide($num, $num * 0 + 1);\n}\n\n/// Converts one or more pixel values into matching rem values.\n///\n/// @param {Number|List} $values - One or more values to convert. Be sure to separate them with spaces and not commas. If you need to convert a comma-separated list, wrap the list in parentheses.\n/// @param {Number} $base [null] - The base value to use when calculating the `rem`. If you're using Foundation out of the box, this is 16px. If this parameter is `null`, the function will reference the `$global-font-size` variable as the base.\n///\n/// @returns {List} A list of converted values.\n@function rem-calc($values, $base: null) {\n  $rem-values: ();\n  $count: length($values);\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // If the base font size is a %, then multiply it by 16px\n  // This is because 100% font size = 16px in most all browsers\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  // Using rem as base allows correct scaling\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if $count == 1 {\n    @return -zf-to-rem($values, $base);\n  }\n\n  @for $i from 1 through $count {\n    $rem-values: append($rem-values, -zf-to-rem(nth($values, $i), $base));\n  }\n\n  @return $rem-values;\n}\n\n// Converts a unitless, pixel, or rem value to em, for use in breakpoints.\n@function -zf-bp-to-em($value) {\n  // Pixel and unitless values are converted to rems\n  @if unit($value) == 'px' or unitless($value) {\n    $value: rem-calc($value, $base: 16px);\n  }\n\n  // Then the value is converted to ems\n  @return strip-unit($value) * 1em;\n}\n\n/// Converts a pixel value to matching rem value. *Any* value passed, regardless of unit, is assumed to be a pixel value. By default, the base pixel value used to calculate the rem value is taken from the `$global-font-size` variable.\n/// @access private\n///\n/// @param {Number} $value - Pixel value to convert.\n/// @param {Number} $base [null] - Base for pixel conversion.\n///\n/// @returns {Number} A number in rems, calculated based on the given value and the base pixel value. rem values are passed through as is.\n@function -zf-to-rem($value, $base: null) {\n  // Check if the value is a number\n  @if type-of($value) != 'number' {\n    @if $unit-warnings {\n      @warn inspect($value) + ' was passed to rem-calc(), which is not a number.';\n    }\n    @return $value;\n  }\n\n  // Transform em into rem if someone hands over 'em's\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * 1rem;\n  }\n\n  // Calculate rem if units for $value is not rem or em\n  @if unit($value) != 'rem' {\n    $value: divide(strip-unit($value), strip-unit($base)) * 1rem;\n  }\n\n  // Turn 0rem into 0\n  @if $value == 0rem {\n    $value: 0;\n  }\n\n  @return $value;\n}\n\n/// Converts a pixel, percentage, rem or em value to a unitless value based on a given font size. Ideal for working out unitless line heights.\n///\n/// @param {Number} $value - Value to convert to a unitless line height\n/// @param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size\n///\n/// @return {Number} - Unitless number\n@function unitless-calc($value, $base: null) {\n\n  // If no base is defined, defer to the global font size\n  @if $base == null {\n    $base: $global-font-size;\n  }\n\n  // First, lets convert our $base to pixels\n\n  // If the base font size is a %, then multiply it by 16px\n  @if unit($base) == '%' {\n    $base: divide($base, 100%) * 16px;\n  }\n\n  @if unit($base) == 'rem' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  @if unit($base) == 'em' {\n    $base: strip-unit($base) * 16px;\n  }\n\n  // Now let's convert our value to pixels too\n  @if unit($value) == '%' {\n    $value: divide($value, 100%) * $base;\n  }\n\n  @if unit($value) == 'rem' {\n    $value: strip-unit($value) * $base;\n  }\n\n  @if unit($value) == 'em' {\n    $value: strip-unit($value) * $base;\n  }\n\n  // 'px'\n  @if unit($value) == 'px' {\n    @return divide(strip-unit($value), strip-unit($base));\n  }\n\n  // assume that line-heights greater than 10 are meant to be absolute in 'px'\n  @if unitless($value) and ($value > 10) {\n    @return divide($value, strip-unit($base));\n  }\n\n  @return $value;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $mgc: rem-calc($mg);\n      @if $mgc == 0 {\n        $mgc: 0rem;\n      }\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{$mg}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    // Make sure that 0 is translated in 0rem for calc()\n    $mgc: rem-calc($margin-gutter);\n    @if $mgc == 0 {\n      $mgc: 0rem;\n    }\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{$mgc}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n/// Finds the greatest common divisor of two integers.\n///\n/// @param {Number} $a - First number to compare.\n/// @param {Number} $b - Second number to compare.\n///\n/// @returns {Number} The greatest common divisor.\n@function gcd($a, $b) {\n  // From: http://rosettacode.org/wiki/Greatest_common_divisor#JavaScript\n  @if ($b != 0) {\n    @return gcd($b, $a % $b);\n  }\n  @else {\n    @return abs($a);\n  }\n}\n\n/// Handles decimal exponents by trying to convert them into a fraction and then use a nth-root-algorithm for parts of the calculation\n///\n/// @param {Number} $base - The base number.\n/// @param {Number} $exponent - The exponent.\n///\n/// @returns {Number} The product of the exponentiation.\n@function pow($base, $exponent, $prec: 16) {\n  @if (floor($exponent) != $exponent) {\n    $prec2: pow(10, $prec);\n    $exponent: round($exponent * $prec2);\n    $denominator: gcd($exponent, $prec2);\n    @return nth-root(pow($base, divide($exponent, $denominator)), divide($prec2, $denominator), $prec);\n  }\n\n  $value: $base;\n  @if $exponent > 1 {\n    @for $i from 2 through $exponent {\n      $value: $value * $base;\n    }\n  }\n  @else if $exponent < 1 {\n    @for $i from 0 through -$exponent {\n      $value: divide($value, $base);\n    }\n  }\n\n  @return $value;\n}\n\n@function nth-root($num, $n: 2, $prec: 12) {\n  // From: http://rosettacode.org/wiki/Nth_root#JavaScript\n  $x: 1;\n\n  @for $i from 0 through $prec {\n    $x: divide(1, $n) * (($n - 1) * $x + divide($num, pow($x, $n - 1)));\n  }\n\n  @return $x;\n}\n\n/// Calculates the height as a percentage of the width for a given ratio.\n/// @param {List} $ratio - Ratio to use to calculate the height, formatted as `x by y`.\n/// @return {Number} A percentage value for the height relative to the width of a responsive container.\n@function ratio-to-percentage($ratio) {\n  $w: nth($ratio, 1);\n  $h: nth($ratio, 3);\n  @return divide($h, $w) * 100%;\n}\n\n/// Parse the given `$fraction` to numerators and denumerators.\n///\n/// @param {*} $fraction - Value representing a fraction to parse. It can be formatted as `50%`, `1 of 2`, `1/2` or `50` (no denominator would be returned).\n///\n/// @return {List} List of parsed values with numerator at first position and denumerator as second. These values may be null.\n@function zf-parse-fraction($fraction) {\n\n  @if type-of($fraction) == 'number' {\n    // \"50%\"\n    @if unit($fraction) == '%' {\n      @return (strip-unit($fraction), 100);\n    }\n    @else if (unit($fraction) == '') {\n      // \"0.5\"\n      @if $fraction < 1 {\n        @return ($fraction * 100, 100);\n      }\n      // \"50\"\n      @else {\n        @return ($fraction, null);\n      }\n    }\n  }\n\n  @else if type-of($fraction) == 'list' {\n    // \"50 of 100\", \"50/100\"...\n    @if length($fraction) == 3\n    and type-of(nth($fraction, 1) == 'number')\n    and type-of(nth($fraction, 3) == 'number') {\n      @return (nth($fraction, 1), nth($fraction, 3));\n    }\n  }\n\n  @return (null, null);\n}\n\n/// Returns whether the given `$value` represents a fraction. Supports formats like `50%`, `1 of 2`, `1 per 2` or `1/2`.\n///\n/// @param {*} $value - Value to test.\n/// @param {Boolean} $allow-no-denominator [false] - If `true`, simple numbers without denominators like `50` are supported.\n///\n/// @return {Boolean} `true` if `$value` represents a fraction, `false` otherwise.\n@function zf-is-fraction($value, $allow-no-denominator: false) {\n  $parsed: zf-parse-fraction($value);\n  @return not(nth($parsed, 1) == null\n    or (nth($parsed, 2) == null and $allow-no-denominator == false));\n}\n\n/// Calculate a percentage from a given fraction.\n///\n/// @param {Number|List} $fraction - Value representing a fraction to use to calculate the percentage, formatted as `50` (relative to `$denominator`), `50%`, `1 of 2` or `1/2`.\n/// @param {Number|List} $denominator - Default value to use as denominator when `$fraction` represents an absolute value.\n@function fraction-to-percentage(\n  $fraction,\n  $denominator: null\n) {\n  $parsed: zf-parse-fraction($fraction);\n  $parsed-nominator: nth($parsed, 1);\n  $parsed-denominator: nth($parsed, 2);\n\n  @if $parsed-nominator == null {\n    @error 'Wrong syntax for \"fraction-to-percentage()\". Use a number, decimal, percentage, or \"n of n\" / \"n/n\".';\n  }\n  @if $parsed-denominator == null {\n    @if type-of($denominator) == 'number' {\n      $parsed-denominator: $denominator;\n    }\n    @else {\n      @error 'Error with \"fraction-to-percentage()\". A default \"$denominator\" is required to support absolute values';\n    }\n  }\n\n  @return percentage(divide($parsed-nominator, $parsed-denominator));\n}\n\n/// Divide the given `$divident` by the given `$divisor`.\n///\n/// @param {Number} $divident - The divident.\n/// @param {Number} $divisor - The divisor.\n/// @param {Number} $precision - The precision decimals for the division.\n///\n/// @return {Number} The product of the division.\n@function divide($dividend, $divisor, $precision: 12) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error 'Cannot divide by 0';\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * 0.1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    'px': 1px,\n    'rem': 1rem,\n    'em': 1em,\n    '%': 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n\n  @return $result;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    // Make sure that 0 is translated in 0rem for calc()\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    @if $gutter == 0 {\n      $gutter: 0rem;\n    }\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group progress-bar\n////\n\n/// Height of a progress bar.\n/// @type Number\n$progress-height: 1rem !default;\n\n/// Background color of a progress bar.\n/// @type Color\n$progress-background: $medium-gray !default;\n\n/// Bottom margin of a progress bar.\n/// @type Number\n$progress-margin-bottom: $global-margin !default;\n\n/// Default color of a progress bar's meter.\n/// @type Color\n$progress-meter-background: $primary-color !default;\n\n/// Default radius of a progress bar.\n/// @type Number\n$progress-radius: $global-radius !default;\n\n@mixin foundation-progress-element {\n  progress {\n    display: block;\n    width: 100%;\n    height: $progress-height;\n    margin-bottom: $progress-margin-bottom;\n\n    appearance: none;\n\n    @if has-value($progress-radius) {\n      border-radius: $progress-radius;\n    }\n\n    // For Firefox\n    border: 0;\n    background: $progress-background;\n\n    &::-webkit-progress-bar {\n      background: $progress-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-webkit-progress-value {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    &::-moz-progress-bar {\n      background: $progress-meter-background;\n\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n    }\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        // Internet Explorer sets the fill with color\n        color: $color;\n\n        &::-webkit-progress-value {\n          background: $color;\n        }\n\n        &::-moz-progress-bar {\n          background: $color;\n        }\n      }\n    }\n\n    // For IE and Edge\n    &::-ms-fill { // sass-lint:disable-line no-vendor-prefixes\n      @if has-value($progress-radius) {\n        border-radius: $progress-radius;\n      }\n\n      border: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group slider\n////\n\n/// Default height of the slider.\n/// @type Number\n$slider-height: 0.5rem !default;\n\n/// Default background color of the slider's track.\n/// @type Color\n$slider-background: $light-gray !default;\n\n/// Default color of the active fill color of the slider.\n/// @type Color\n$slider-fill-background: $medium-gray !default;\n\n/// Default height of the handle of the slider.\n/// @type Number\n$slider-handle-height: 1.4rem !default;\n\n/// Default width of the handle of the slider.\n/// @type Number\n$slider-handle-width: 1.4rem !default;\n\n/// Default color of the handle for the slider.\n/// @type Color\n$slider-handle-background: $primary-color !default;\n\n/// Default fade amount of a disabled slider.\n/// @type Number\n$slider-opacity-disabled: 0.25 !default;\n\n/// Default radius for slider.\n/// @type Number\n$slider-radius: $global-radius !default;\n\n@mixin foundation-range-input {\n  input[type='range'] {  // sass-lint:disable-line no-qualifying-elements\n    $margin: ($slider-handle-height - $slider-height) * 0.5;\n\n    display: block;\n    width: 100%;\n    height: auto;\n    margin-top: $margin;\n    margin-bottom: $margin;\n\n    appearance: none;\n    border: 0;\n    line-height: 1;\n    cursor: pointer;\n\n    @if has-value($slider-radius) {\n      border-radius: $slider-radius;\n    }\n\n    &:focus {\n      outline: 0;\n    }\n\n    &[disabled] {\n      opacity: $slider-opacity-disabled;\n    }\n\n    // sass-lint:disable no-vendor-prefix\n\n    // Chrome/Safari\n    &::-webkit-slider-runnable-track {\n      height: $slider-height;\n      background: $slider-background;\n    }\n\n    &::-webkit-slider-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Firefox\n    &::-moz-range-track {\n      height: $slider-height;\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-background;\n    }\n\n    &::-moz-range-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      margin-top: -$margin;\n\n      -moz-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    // Internet Explorer\n    &::-ms-track {\n      height: $slider-height;\n\n      border: 0;\n      border-top: $margin solid $body-background;\n      border-bottom: $margin solid $body-background;\n      background: $slider-background;\n\n      overflow: visible;\n      color: transparent;\n    }\n\n    &::-ms-thumb {\n      width: $slider-handle-width;\n      height: $slider-handle-height;\n      border: 0;\n      background: $slider-handle-background;\n\n      @if has-value($slider-radius) {\n        border-radius: $slider-radius;\n      }\n    }\n\n    &::-ms-fill-lower {\n      background: $slider-fill-background;\n    }\n\n    &::-ms-fill-upper {\n      background: $slider-background;\n    }\n\n    @at-root {\n      output {\n        vertical-align: middle;\n        margin-left: 0.5em;\n        line-height: $slider-handle-height;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@import 'math';\n\n$contrast-warnings: true !default;\n\n/// Patch to fix issue #12080\n$primary-color: null !default;\n$secondary-color: null !default;\n$warning-color: null !default;\n$alert-color: null !default;\n$success-color: null !default;\n\n////\n/// @group functions\n////\n\n/// Checks the luminance of `$color`.\n///\n/// @param {Color} $color - Color to check the luminance of.\n///\n/// @returns {Number} The luminance of `$color`.\n@function color-luminance($color) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n  $rgba: red($color), green($color), blue($color);\n  $rgba2: ();\n\n  @for $i from 1 through 3 {\n    $rgb: nth($rgba, $i);\n    $rgb: divide($rgb, 255);\n\n    $rgb: if($rgb < 0.03928, divide($rgb, 12.92), pow(divide($rgb + 0.055, 1.055), 2.4));\n\n    $rgba2: append($rgba2, $rgb);\n  }\n\n  @return 0.2126 * nth($rgba2, 1) + 0.7152 * nth($rgba2, 2) + 0.0722 * nth($rgba2, 3);\n}\n\n/// Checks the contrast ratio of two colors.\n///\n/// @param {Color} $color1 - First color to compare.\n/// @param {Color} $color2 - Second color to compare.\n///\n/// @returns {Number} The contrast ratio of the compared colors.\n@function color-contrast($color1, $color2) {\n  // Adapted from: https://github.com/LeaVerou/contrast-ratio/blob/gh-pages/color.js\n  // Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n  $luminance1: color-luminance($color1) + 0.05;\n  $luminance2: color-luminance($color2) + 0.05;\n  $ratio: divide($luminance1, $luminance2);\n\n  @if $luminance2 > $luminance1 {\n    $ratio: divide(1, $ratio);\n  }\n\n  $ratio: round($ratio * 10) * 0.1;\n\n  @return $ratio;\n}\n\n/// Checks the luminance of `$base`, and returns the color from `$colors` (list of colors) that has the most contrast.\n///\n/// @param {Color} $base - Color to check luminance.\n/// @param {List} $colors [($white, $black)] - Colors to compare.\n/// @param {Number} $tolerance [$global-color-pick-contrast-tolerance] - Contrast tolerance.\n///\n/// @returns {Color} the color from `$colors` (list of colors) that has the most contrast.\n@function color-pick-contrast($base, $colors: ($white, $black), $tolerance: $global-color-pick-contrast-tolerance) {\n  $contrast: color-contrast($base, nth($colors, 1));\n  $best: nth($colors, 1);\n\n  @for $i from 2 through length($colors) {\n    $current-contrast: color-contrast($base, nth($colors, $i));\n    @if ($current-contrast - $contrast > $tolerance) {\n      $contrast: color-contrast($base, nth($colors, $i));\n      $best: nth($colors, $i);\n    }\n  }\n\n  @if ($contrast-warnings and $contrast < 3) {\n    @warn 'Contrast ratio of #{$best} on #{$base} is pretty bad, just #{$contrast}';\n  }\n\n  @return $best;\n}\n\n/// Scales a color to be darker if it's light, or lighter if it's dark. Use this function to tint a color appropriate to its lightness.\n///\n/// @param {Color} $color - Color to scale.\n/// @param {Percentage} $scale [5%] - Amount to scale up or down.\n/// @param {Percentage} $threshold [40%] - Threshold of lightness to check against.\n///\n/// @returns {Color} A scaled color.\n@function smart-scale($color, $scale: 5%, $threshold: 40%) {\n  @if lightness($color) > $threshold {\n    $scale: -$scale;\n  }\n  @return scale-color($color, $lightness: $scale);\n}\n\n/// Get color from foundation-palette\n///\n/// @param {key} color key from foundation-palette\n///\n/// @returns {Color} color from foundation-palette\n@function get-color($key) {\n  @if map-has-key($foundation-palette, $key) {\n    @return map-get($foundation-palette, $key);\n  }\n  @else {\n    @error 'given $key is not available in $foundation-palette';\n  }\n}\n\n/// Transfers the colors in the `$foundation-palette` map into variables, such as `$primary-color` and `$secondary-color`. Call this mixin below the Global section of your settings file to properly migrate your codebase.\n@mixin add-foundation-colors() {\n  @if map-has-key($foundation-palette, primary) {\n    $primary-color: map-get($foundation-palette, primary) !global;\n  } @else {\n    $primary-color: #1779ba !global;\n  }\n  @if map-has-key($foundation-palette, secondary) {\n    $secondary-color: map-get($foundation-palette, secondary) !global;\n  } @else {\n    $secondary-color: #767676 !global;\n  }\n  @if map-has-key($foundation-palette, success) {\n    $success-color: map-get($foundation-palette, success) !global;\n  } @else {\n    $success-color: #3adb76 !global;\n  }\n  @if map-has-key($foundation-palette, warning) {\n    $warning-color: map-get($foundation-palette, warning) !global;\n  } @else {\n    $warning-color: #ffae00 !global;\n  }\n  @if map-has-key($foundation-palette, alert) {\n    $alert-color: map-get($foundation-palette, alert) !global;\n  } @else {\n    $alert-color: #cc4b37 !global;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
index 18ef80b42c889d23d8bf7ab1040246b1f4892692..7cca2d913da6af22418600804812650e9649a8ce 100644 (file)
@@ -1,2 +1,2 @@
-@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + 1.25rem / 2)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + 1.25rem / 2)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + 1.25rem / 2)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + 1.25rem / 2)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + 1.875rem / 2)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + 1.875rem / 2)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + 1.875rem / 2)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + 1.875rem / 2)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}
+@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + 1.25rem / 2)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + 1.25rem / 2)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + 1.25rem / 2)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + 1.25rem / 2)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + 1.875rem / 2)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + 1.875rem / 2)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + 1.875rem / 2)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + 1.875rem / 2)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}
 /*# sourceMappingURL=foundation.min.css.map */
index 1298830165bf950f282b7111a11f978fd52ea5ca..fe9cdec76d7b22bd91cc1ce4d5bb0b2e9c96c345 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation.min.css","foundation.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"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A,MAAA,0BHzCA,wBGyCA,MAAA,oBHzCA,yBGyCA,MAAA,0BHzCA,yBGyCA,MAAA,0BHzCA,yBGyCA,MAAA,qBtBeI,aAAA,4BmBpEN,qBGqDE,MAAA,KHjDF,uBGiDE,MAAA,KHzCA,wBGyCA,MAAA,0BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,sBHrDF,4BGqDE,MAAA,KHjDF,8BGiDE,MAAA,KHzCA,yBGyCA,MAAA,0BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,qBHzCA,0BGyCA,MAAA,2BHzCA,0BGyCA,MAAA,2BHzCA,0BGyCA,MAAA,uBtBeI,aAAA,4BmBpEN,2BGqDE,MAAA,KHjDF,6BGiDE,MAAA,KHzCA,wBGyCA,MAAA,0BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,2BHzCA,wBGyCA,MAAA,qBHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,2BHzCA,yBGyCA,MAAA,uBHOF,gCC3IM,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBRN,gCC3IM,aAAA,UAAA,YAAA,WDoJJ,2CCpJI,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBCJ,2CCpJI,aAAA,UAAA,YAAA,WD2IN,sBC3IM,cAAA,QAAA,aAAA,QpBmJA,aAAA,4BmBRN,sBC3IM,cAAA,SAAA,aAAA,UGAN,kBDoIE,MAAA,KCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,MtBeI,aAAA,4BuBnJN,mBDoIE,MAAA,KCpIF,mBDoIE,MAAA,ICpIF,mBDoIE,MAAA,UCpIF,mBDoIE,MAAA,ICpIF,mBDoIE,MAAA,ICpIF,mBDoIE,MAAA,UCpIF,mBDoIE,MAAA,UCpIF,mBDoIE,MAAA,OtBeI,aAAA,4BuBnJN,kBDoIE,MAAA,KCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,ICpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,UCpIF,kBDoIE,MAAA,OCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,oBCpIF,gCDoIE,MAAA,0BCpIF,gCDoIE,MAAA,oBCpIF,gCDoIE,MAAA,oBCpIF,gCDoIE,MAAA,0BCpIF,gCDoIE,MAAA,0BCpIF,gCDoIE,MAAA,sBtBeI,aAAA,4BuBnJN,gCDoIE,MAAA,sBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,uBCpIF,iCDoIE,MAAA,sBCpIF,iCDoIE,MAAA,qBCpIF,iCDoIE,MAAA,2BCpIF,iCDoIE,MAAA,qBCpIF,iCDoIE,MAAA,qBCpIF,iCDoIE,MAAA,2BCpIF,iCDoIE,MAAA,2BCpIF,iCDoIE,MAAA,wBtBeI,aAAA,4BuBnJN,gCDoIE,MAAA,sBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,qBCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,2BCpIF,gCDoIE,MAAA,wBHmEE,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,EAsBE,gCFgHR,MAAA,SEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,KtBeI,aAAA,4BwB/HI,iCFgHR,MAAA,SEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,MtBeI,aAAA,4BwB/HI,gCFgHR,MAAA,SEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,MHyEE,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,ExB8GF,aAAA,4BmBoDF,wBK9ME,aAAA,EAAA,YAAA,EAGF,8BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBeI,aAAA,4BwB/HI,kCFgHR,MAAA,SEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,IEhHQ,mCFgHR,MAAA,UEhHQ,mCFgHR,MAAA,UEhHQ,mCFgHR,MAAA,MtBeI,aAAA,4BwB/HI,iCFgHR,MAAA,SEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,IEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,UEhHQ,kCFgHR,MAAA,MtBeI,aAAA,4BmB0DF,yBK7KE,aAAA,EAAA,YAAA,EAGF,+BAEI,cAAA,EAAA,aAAA,GxB8GF,aAAA,4BmBoDF,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MtBeI,aAAA,4BwBxII,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBeI,aAAA,4BwB/HI,gCFgHR,MAAA,SEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,UEhHQ,gCFgHR,MAAA,IEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,UEhHQ,iCFgHR,MAAA,MtBeI,aAAA,4BmB0DF,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,GLsLJ,gBMvMF,YAAA,EN2ME,+BM3MF,YAAA,uBNuME,gBMvMF,YAAA,SN2ME,+BM3MF,YAAA,6BNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,8BNuME,gBMvMF,YAAA,IN2ME,+BM3MF,YAAA,wBNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,8BNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,8BNuME,gBMvMF,YAAA,IN2ME,+BM3MF,YAAA,wBNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,8BNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,8BNuME,gBMvMF,YAAA,IN2ME,+BM3MF,YAAA,wBNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,8BNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,8BzB+HI,aAAA,4BmBwEF,iBMvMF,YAAA,EN2ME,gCM3MF,YAAA,wBNuME,iBMvMF,YAAA,SN2ME,gCM3MF,YAAA,8BNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,+BNuME,iBMvMF,YAAA,IN2ME,gCM3MF,YAAA,yBNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,+BNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,+BNuME,iBMvMF,YAAA,IN2ME,gCM3MF,YAAA,yBNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,+BNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,+BNuME,iBMvMF,YAAA,IN2ME,gCM3MF,YAAA,yBNuME,kBMvMF,YAAA,UN2ME,iCM3MF,YAAA,+BNuME,kBMvMF,YAAA,UN2ME,iCM3MF,YAAA,gCzB+HI,aAAA,4BmBwEF,gBMvMF,YAAA,EN2ME,+BM3MF,YAAA,wBNuME,gBMvMF,YAAA,SN2ME,+BM3MF,YAAA,8BNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,+BNuME,gBMvMF,YAAA,IN2ME,+BM3MF,YAAA,yBNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,+BNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,+BNuME,gBMvMF,YAAA,IN2ME,+BM3MF,YAAA,yBNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,+BNuME,gBMvMF,YAAA,UN2ME,+BM3MF,YAAA,+BNuME,gBMvMF,YAAA,IN2ME,+BM3MF,YAAA,yBNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,+BNuME,iBMvMF,YAAA,UN2ME,gCM3MF,YAAA,gCNoDY,QEtEd,Q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A,OAAA,cAAA,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAyBI,OAAA,MP+WE,MAAA,MAKN,yBAEI,OAAA,KnBjPA,aAAA,4BmB+OJ,gCAMM,OAAA,MnBrPF,aAAA,4BmB+OJ,+BAMM,OAAA,MAjSR,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBG6BE,OAAA,qBF3HE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBG6BE,OAAA,sBF3HE,WAAA,SAAA,cAAA,UDsEJ,qBGqDE,OAAA,KHjDF,uBGiDE,OAAA,KHzCA,wBGyCA,OAAA,yBHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,oBHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,oBHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,oBHzCA,yBGyCA,OAAA,0BHzCA,yBGyCA,OAAA,0BHzCA,yBGyCA,OAAA,qBtBeI,aAAA,4BmBpEN,qBGqDE,OAAA,KHjDF,uBGiDE,OAAA,KHzCA,wBGyCA,OAAA,0BHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,qBHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,qBHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,2BHzCA,wBGyCA,OAAA,qBHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,sBHrDF,4BGqDE,OAAA,KHjDF,8BGiDE,OAAA,KHzCA,yBGyCA,OAAA,0BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,2BHzCA,yBGyCA,OAAA,qBHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,2BHzCA,0BGyCA,OAAA,uBtBeI,aAAA,4BmBpEN,2BGqDE,OAAA,KHjDF,6BGiDE,OAAA,KHzCA,wBGyCA,OAAA,0B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","file":"foundation.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  small: 0,\n  medium: 640px,\n  large: 1024px,\n  xlarge: 1200px,\n  xxlarge: 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  hidpi-1: 1,\n  hidpi-1-5: 1.5,\n  hidpi-2: 2,\n  retina: 2,\n  hidpi-3: 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n","@charset \"UTF-8\";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.foundation-mq{font-family:\"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>\");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:\"Helvetica Neue\",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:\"— \"}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,\"Liberation Mono\",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:\" (\" attr(href) \")\"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:\" (\" attr(title) \")\"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + 1.25rem / 2)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + 1.25rem / 2)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + 1.25rem / 2)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + 1.25rem / 2)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + 1.25rem / 2)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + 1.25rem / 2)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + 1.25rem / 2)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + 1.25rem / 2)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + 1.25rem / 2)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + 1.25rem / 2)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + 1.25rem / 2)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + 1.25rem / 2)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + 1.875rem / 2)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + 1.875rem / 2)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + 1.875rem / 2)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + 1.875rem / 2)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + 1.875rem / 2)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + 1.875rem / 2)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + 1.875rem / 2)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + 1.875rem / 2)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + 1.875rem / 2)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + 1.875rem / 2)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + 1.875rem / 2)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + 1.875rem / 2)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + 1.875rem / 2)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + 1.875rem / 2)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + 1.875rem / 2)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + 1.875rem / 2)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:'';border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#1779ba}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#1779ba}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#767676}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#3adb76}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#cc4b37}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:0;border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead{display:none}table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:\"/\";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:\"«\"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:\"»\"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:'';border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:\"+\"}.is-active>.accordion-title::before{content:\"–\"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px rgba(23,121,186,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:'';border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}\n/*# sourceMappingURL=foundation.min.css.map */\n","@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.4\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  primary: #1779ba,\n  secondary: #767676,\n  success: #3adb76,\n  warning: #ffae00,\n  alert: #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-pb-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($mg)}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{rem-calc($margin-gutter)}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          $individual-selector: if($button-fill == $filling, null, ' #{$buttongroup-child-selector}.#{$name}');\n\n          &.#{$name} #{$buttongroup-child-selector}, #{$individual-selector} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../scss/util/_breakpoint.scss","../scss/components/_reveal.scss","../scss/vendor/normalize.scss","foundation.min.css","foundation.css","../scss/_global.scss","../scss/util/_mixins.scss","../scss/forms/_text.scss","../scss/forms/_checkbox.scss","../scss/forms/_label.scss","../scss/forms/_help-text.scss","../scss/forms/_input-group.scss","../scss/forms/_fieldset.scss","../scss/forms/_select.scss","../scss/forms/_error.scss","../scss/typography/_base.scss","../scss/typography/_helpers.scss","../scss/typography/_alignment.scss","../scss/typography/_print.scss","../scss/xy-grid/_classes.scss","../scss/xy-grid/_gutters.scss","../scss/xy-grid/_grid.scss","../scss/xy-grid/_cell.scss","../scss/xy-grid/_layout.scss","../scss/xy-grid/_collapse.scss","../scss/xy-grid/_position.scss","../scss/xy-grid/_frame.scss","../scss/components/_button.scss","../scss/components/_button-group.scss","../scss/components/_close-button.scss","../scss/components/_label.scss","../scss/components/_progress-bar.scss","../scss/components/_slider.scss","../scss/components/_switch.scss","../scss/components/_table.scss","../scss/components/_badge.scss","../scss/components/_breadcrumbs.scss","../scss/components/_callout.scss","../scss/components/_card.scss","../scss/components/_dropdown.scss","../scss/components/_pagination.scss","../scss/components/_tooltip.scss","../scss/components/_accordion.scss","../scss/components/_media-object.scss","../scss/components/_orbit.scss","../scss/components/_responsive-embed.scss","../scss/components/_tabs.scss","../scss/components/_thumbnail.scss","../scss/components/_menu.scss","../scss/components/_menu-icon.scss","../scss/components/_accordion-menu.scss","../scss/components/_drilldown.scss","../scss/components/_dropdown-menu.scss","../scss/components/_off-canvas.scss","../scss/components/_sticky.scss","../scss/components/_title-bar.scss","../scss/components/_top-bar.scss","../scss/components/_float.scss","../scss/components/_flex.scss","../scss/util/_flex.scss","../scss/components/_visibility.scss"],"names":[],"mappings":"iBAmLQ,aAAA,4BCtIN,QAAA,cAAA,cAAA,aACE,MAAA,KACA,KAAA,KACA,OAAA,EAAA,MC7CF,4EAQA,KACE,YAAA,KACA,yBAAA,KAQF,KACE,OAAA,EAMF,GACE,UAAA,IACA,OAAA,MAAA,EASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAMF,IACE,YAAA,SAAA,CAAA,UACA,UAAA,IAQF,EACE,iBAAA,YAMF,YACE,cAAA,EACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OAKF,EC5BF,OD8BI,YAAA,OAMF,KChCF,IACA,KDkCI,YAAA,SAAA,CAAA,UACA,UAAA,IAKF,MACE,UAAA,IAMF,ICvCF,IDyCI,UAAA,IACA,YAAA,EACA,SAAA,SACA,eAAA,SAGF,IACE,OAAA,OAGF,IACE,IAAA,MAQF,IACE,aAAA,KASF,OCtDF,MACA,SACA,OACA,SDwDI,YAAA,QACA,UAAA,KACA,YAAA,KACA,OAAA,EAMF,OC1DF,MD4DI,SAAA,QAMF,OC9DF,ODgEI,eAAA,KC5DJ,cACA,aACA,cD+DE,OAIE,mBAAA,OC/DJ,gCACA,+BACA,gCDkEE,yBAIE,aAAA,KACA,QAAA,EClEJ,6BACA,4BACA,6BDqEE,sBAIE,QAAA,IAAA,OAAA,WAKF,SACE,QAAA,MAAA,MAAA,OAQF,OACE,mBAAA,WAAA,WAAA,WACA,MAAA,QACA,QAAA,MACA,UAAA,KACA,QAAA,EACA,YAAA,OAKF,SACE,eAAA,SAKF,SACE,SAAA,KEvFJ,gBDIA,aD2FI,mBAAA,WAAA,WAAA,WACA,QAAA,EE3FJ,yCDKA,yCD6FI,OAAA,KE9FJ,cFqGI,mBAAA,UACA,eAAA,KElGJ,yCFwGI,mBAAA,KAMF,6BACE,mBAAA,OACA,KAAA,QAQF,QACE,QAAA,MAKF,QACE,QAAA,UAQF,SACE,QAAA,KExHJ,SF8HI,QAAA,KCpHJ,yBACA,8BACA,yBACA,8BCVA,0BAAA,+BDKA,0BACA,+BD8HM,QAAA,EE3HN,kBFiII,sBAAA,KACA,oBAAA,KGxJF,eACE,YAAA,4DHrIF,KGyIE,mBAAA,WAAA,WAAA,WACA,UAAA,KAIF,EF8BF,QADA,SE1BI,mBAAA,QAAA,WAAA,QHvIF,KG4IE,OAAA,EACA,QAAA,EAUA,WAAA,QAEA,YAAA,gBAAA,CAAA,SAAA,CAAA,MAAA,CAAA,KAAA,CAAA,WACA,YAAA,IACA,YAAA,IACA,MAAA,QAGE,uBAAA,YACA,wBAAA,UHhEJ,IGsEE,QAAA,aACA,eAAA,OAGA,UAAA,KACA,OAAA,KACA,uBAAA,QHiBF,SGZE,OAAA,KACA,WAAA,KACA,cAAA,EAIF,OACE,mBAAA,WAAA,WAAA,WACA,MAAA,KACA,cAAA,EFUJ,kBELE,gBFMF,mBAEA,mBADA,iBAEA,oBEJM,UAAA,eAKJ,OAEE,QAAA,EACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,OAAA,EACA,cAAA,EACA,WAAA,IACA,YAAA,EACA,OAAA,KDLF,8BEvBE,QAAA,EJ1JF,IG2LE,SAAA,KACA,2BAAA,MH7GF,OCmHF,MACA,SACA,OACA,SEAI,YAAA,QAIF,YACE,QAAA,gBAGF,WACE,QAAA,eDTJ,aAAA,YAAA,sBAAA,gBAAA,aAAA,aAAA,cAAA,gBAAA,cAAA,WAAA,YAAA,YAAA,WAAA,YDUA,SIxKE,QAAA,MACA,mBAAA,WAAA,WAAA,WACA,MAAA,KACA,OAAA,UACA,OAAA,EAAA,EAAA,KACA,QAAA,MAEA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QACA,mBAAA,MAAA,EAAA,IAAA,IAAA,kBAAA,WAAA,MAAA,EAAA,IAAA,IAAA,kBAEA,YAAA,QACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QAGE,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAqBA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KHyIF,mBAAA,kBAAA,4BAAA,sBAAA,mBAAA,mBAAA,oBAAA,sBAAA,oBAAA,iBAAA,kBAAA,kBAAA,iBAAA,kBDiBA,eI1KE,QAAA,EACA,OAAA,IAAA,MAAA,QACA,iBAAA,QACA,mBAAA,EAAA,EAAA,IAAA,QAAA,WAAA,EAAA,EAAA,IAAA,QAGE,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IL6FJ,SK9EE,UAAA,KADF,eAII,OAAA,KAIJ,eAAA,gBJ+JF,kBACA,mBI3JM,iBAAA,QACA,OAAA,YJ+JN,cCrBA,cGnII,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,cAAA,EAIF,mBACE,mBAAA,WAAA,WAAA,WAiBF,4BACE,MAAA,QADF,mBACE,MAAA,QADF,uBACE,MAAA,QADF,wBACE,MAAA,QADF,cACE,MAAA,QJ0JJ,gBCpCA,YDqCA,aK/TI,OAAA,EAAA,EAAA,KJ+RJ,sBDoCA,mBK7TI,QAAA,aACA,eAAA,SAEA,YAAA,MACA,aAAA,KACA,cAAA,EJ2RF,2BDoCA,wBK5TI,OAAA,QAKJ,sBL2TF,mBKzTI,aAAA,MJyRJ,YIpRI,MAAA,KCKF,MAlBA,QAAA,MACA,OAAA,EAEA,UAAA,QACA,YAAA,IACA,YAAA,IACA,MAAA,QAYA,aANA,OAAA,EAAA,EAAA,KACA,YAAA,IACA,QAAA,SAAA,EClBA,WAGE,WAAA,OACA,UAAA,SACA,WAAA,OACA,MAAA,QCDF,aACE,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,MAAA,KACA,cAAA,KAGE,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QANJ,0BAAA,+CAWM,cAAA,EAXN,yBAAA,8CAiBM,cAAA,EAKN,oBAAA,sBRoVF,2BADA,0BAEA,0BQrVE,mBAAA,mBACE,OAAA,EACA,YAAA,OAQF,mBAEE,QAAA,EAAA,KACA,OAAA,IAAA,MAAA,QACA,WAAA,QAEA,MAAA,QACA,WAAA,OACA,YAAA,OAGE,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KACA,kBAAA,OAAA,oBAAA,OAAA,eAAA,OAAA,YAAA,OAbJ,+BAsBM,aAAA,EAtBN,8BA0BM,YAAA,EAKN,mBAEE,cAAA,EAGE,iBAAA,EAAA,aAAA,EAAA,EAAA,IAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,IACA,UAAA,EAIJ,oBAEE,YAAA,EACA,eAAA,EACA,WAAA,OAGE,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KARJ,sBRoVA,2BADA,0BAEA,0BQ/TM,mBAAA,QAAA,oBAAA,QAAA,WAAA,QACA,OAAA,KAKF,YAAA,EACA,eAAA,EACA,UAAA,KTuDJ,SUjJE,OAAA,EACA,QAAA,EACA,OAAA,EVwJF,OUpJE,UAAA,KACA,cAAA,MAGF,UAxBA,OAAA,SAAA,EACA,QAAA,QACA,OAAA,IAAA,MAAA,QAEA,iBAEE,OAAA,EACA,YAAA,UACA,QAAA,EAAA,SP2KF,OQrLA,OAAA,UACA,OAAA,EAAA,EAAA,KACA,QAAA,MAEA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KACA,OAAA,IAAA,MAAA,QACA,cAAA,EACA,iBAAA,QAEA,YAAA,QACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QPkHA,iBAAA,uNO9GE,kBAAA,YACA,oBAAA,MAAA,MAAA,OACA,kBAAA,UACA,gBAAA,IAAA,IAEA,cAAA,OAIA,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IPuGF,kCDoDA,OCjDI,iBAAA,qVOtGJ,aACE,QAAA,EACA,OAAA,IAAA,MAAA,QACA,iBAAA,QACA,mBAAA,EAAA,EAAA,IAAA,QAAA,WAAA,EAAA,EAAA,IAAA,QAGE,mBAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,YAAA,WAAA,WAAA,GAAA,CAAA,aAAA,KAAA,WAAA,CAAA,mBAAA,IAKJ,gBACE,iBAAA,QACA,OAAA,YAIF,mBACE,QAAA,KAGF,iBACE,OAAA,KACA,iBAAA,KAEF,uBACE,YAAA,EACA,eAAA,ECrCF,8BACE,aAAA,QACA,iBAAA,QAEA,yDACE,MAAA,QADF,gDACE,MAAA,QADF,oDACE,MAAA,QADF,qDACE,MAAA,QADF,2CACE,MAAA,QA0BF,kBACE,MAAA,QAKJ,YAzBA,QAAA,KACA,WAAA,OACA,cAAA,KAEA,UAAA,OACA,YAAA,IACA,MAAA,QAmBA,uBAII,QAAA,MX2dN,WAbA,GYhUE,IZ8TF,GACA,GAYA,KAPA,GACA,GACA,GACA,GACA,GACA,GANA,GADA,GAUA,EAFA,IAKA,GADA,GAbA,GY9SI,OAAA,EACA,QAAA,EAIF,EACE,cAAA,KAEA,UAAA,QACA,YAAA,IACA,eAAA,mBAIF,GZyTF,EYvTI,WAAA,OACA,YAAA,QZ2TJ,EYvTE,OAEE,YAAA,IACA,YAAA,QbrLF,Ma0LE,UAAA,IACA,YAAA,QAIF,IZmTE,IACA,IACA,IACA,IACA,IYvTF,GZmTF,GACA,GACA,GACA,GACA,GYjTI,YAAA,gBAAA,CAAA,SAAA,CAAA,MAAA,CAAA,KAAA,CAAA,WACA,WAAA,OACA,YAAA,IACA,MAAA,QACA,eAAA,mBAVF,UZ8TU,UACA,UACA,UACA,UACA,UYlUV,SZ8TA,SACA,SACA,SACA,SACA,SYrTI,YAAA,EACA,MAAA,QASE,IAAA,GAII,UAAA,OAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,QAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,UAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,SAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,UAYA,YAAA,IAQA,WAAA,EAOA,cAAA,MA/BJ,IAAA,GAII,UAAA,KAYA,YAAA,IAQA,WAAA,EAOA,cAAA,Mf3JJ,aAAA,4Be4HA,IAAA,GAII,UAAA,KAJJ,IAAA,GAII,UAAA,OAJJ,IAAA,GAII,UAAA,UAJJ,IAAA,GAII,UAAA,UAJJ,IAAA,GAII,UAAA,QAJJ,IAAA,GAII,UAAA,MbzPV,Ea6RE,YAAA,QACA,MAAA,QACA,gBAAA,KAEA,OAAA,QALF,QAAA,QASI,MAAA,QATJ,MAgBI,OAAA,Eb/TJ,GaqUE,MAAA,KAEA,UAAA,MACA,OAAA,EACA,OAAA,QAAA,KAEA,WAAA,EACA,aAAA,EACA,cAAA,IAAA,MAAA,QACA,YAAA,EZiTJ,GADA,GY5SE,GAGE,cAAA,KACA,oBAAA,QACA,YAAA,IAIF,GACE,UAAA,QAIF,GACE,YAAA,QACA,gBAAA,KAIF,GACE,YAAA,QAIF,MAAA,MAAA,MAAA,MAEI,YAAA,QACA,cAAA,EAKJ,GACE,cAAA,KADF,MAII,cAAA,MACA,YAAA,IAKJ,WACE,OAAA,EAAA,EAAA,KACA,QAAA,SAAA,QAAA,EAAA,UACA,YAAA,IAAA,MAAA,QAHF,WAAA,aAMI,YAAA,IACA,MAAA,QAcJ,KAAA,YACE,cAAA,IAAA,OAAA,QACA,OAAA,KACA,gBAAA,KAIF,OACE,OAAA,EAWF,IACE,OAAA,EACA,QAAA,QAAA,OAAA,EAEA,iBAAA,QAEA,YAAA,QAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,UACA,MAAA,QC9UF,WACE,WAAA,MACA,cAAA,MAEA,YAAA,IACA,YAAA,IACA,MAAA,QAIF,MACE,UAAA,KACA,YAAA,IAIF,MACE,UAAA,OACA,YAAA,EAEA,QACE,WAAA,MAIJ,aAAA,aAGI,YAAA,EACA,WAAA,KD+QF,YAAA,KC5VF,QAAA,MACA,MAAA,QACA,UAAA,SD0VE,mBAAA,YCvVA,QAAA,KD4WA,aAAA,KCrWF,OAAA,IAAA,MAAA,QACA,iBAAA,QAEA,YAAA,QAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,UACA,YAAA,IACA,MAAA,QAMA,QAAA,OACA,UAAA,KACA,UAAA,WAEA,QAAA,QAAA,SAAA,SAuEA,YAtFA,OAAA,IAAA,MAAA,QACA,iBAAA,QAEA,YAAA,QAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,UACA,YAAA,IACA,MAAA,QAgBA,QAAA,MACA,SAAA,KACA,YAAA,IAEA,QAAA,KACA,cAAA,OC7GQ,WACE,WAAA,KADF,YACE,WAAA,MADF,aACE,WAAA,OADF,cACE,WAAA,QjBoKJ,aAAA,4BiB1KE,kBACE,WAAA,KADF,mBACE,WAAA,MADF,oBACE,WAAA,OADF,qBACE,WAAA,SjByKJ,aAAA,4BiB1KE,iBACE,WAAA,KADF,kBACE,WAAA,MADF,mBACE,WAAA,OADF,oBACE,WAAA,SCOV,gBAAkB,QAAA,eAElB,aACE,EAII,WAAA,cACA,MAAA,eACA,mBAAA,QAOF,mBAAA,eAAA,WAAA,eACA,YAAA,eAjBJ,gBAoBoB,QAAA,gBAClB,gBAAkB,QAAA,eAElB,qBAAuB,QAAA,gBACvB,qBAAuB,QAAA,6BACvB,qBAAuB,QAAA,0BACvB,kBAAoB,QAAA,oBACpB,kBAAoB,QAAA,qBACpB,kBAAoB,QAAA,qBAGpB,EfqxBF,UepxBc,gBAAA,UAEV,cAAgB,QAAA,KAAA,WAAA,IAIlB,YfoxBF,mBADA,6BejxBuB,QAAA,GAGrB,kBAAoB,QAAA,KAAA,YAAA,IfoxBtB,WejxBE,IAEE,OAAA,IAAA,MAAA,QACA,kBAAA,MAIF,MAAQ,QAAA,mBfgxBV,Ie9wBE,GACM,kBAAA,MhB4CR,IgB1CQ,UAAA,eAEN,MAAQ,OAAA,KfgxBV,GACA,Ge/wBE,EAGE,QAAA,EACA,OAAA,EAIF,Gf2wBF,Ge1wBO,iBAAA,MAGL,oBACE,kBAAA,MChFJ,gBCoBM,cAAA,QAAA,aAAA,QCdN,UAAA,MACA,YAAA,KACA,aAAA,KrB+JM,aAAA,4BmBvKN,gBCoBM,cAAA,SAAA,aAAA,UDpBN,sBCoBM,cAAA,QAAA,aAAA,QCdN,UAAA,KACA,YAAA,KACA,aAAA,KrB+JM,aAAA,4BmBvKN,sBCoBM,cAAA,SAAA,aAAA,UDpBN,qBC6BI,cAAA,EAAA,aAAA,ECvBJ,UAAA,KACA,YAAA,KACA,aAAA,KFKA,QESA,QAAA,YAAA,QAAA,aAAA,QAAA,YAAA,QAAA,KACA,mBAAA,WAAA,sBAAA,OAAA,kBAAA,IAAA,KAAA,cAAA,IAAA,KAAA,UAAA,IAAA,KFNA,MGqGA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KAIE,WAAA,EACA,UAAA,EAsCA,MAAA,KHhJF,WGqGA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EHrGA,aGqGA,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KHzFA,cGoIE,MAAA,KHpIF,gBGoIE,MAAA,KHpHA,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,sBAMI,mBAAA,KAAA,wBAAA,KAAA,WAAA,KnBoHA,aAAA,4BmB1HJ,kBAAA,mBAAA,mBAAA,mBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,qBAAA,uBAMI,mBAAA,KAAA,wBAAA,KAAA,WAAA,MnBoHA,aAAA,4BmB1HJ,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,oBAAA,sBAMI,mBAAA,KAAA,wBAAA,KAAA,WAAA,MAaJ,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBGsDF,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KHvCI,iBGkFF,MAAA,SHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,IHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,IHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,IHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,KtBMI,aAAA,4BmB5GF,qBG2DJ,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EA2CE,MAAA,KHjGA,kBAAA,mBAAA,mBAAA,mBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,kBAAA,uBGsDF,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KHhDI,uBG2FF,MAAA,KHlFE,kBGkFF,MAAA,SHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,IHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,IHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,IHlFE,mBGkFF,MAAA,UHlFE,mBGkFF,MAAA,UHlFE,mBGkFF,MAAA,MtBMI,aAAA,4BmB5GF,oBG2DJ,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,IAAA,KAAA,EAAA,EAAA,EA2CE,MAAA,KHjGA,iBAAA,kBAAA,kBAAA,kBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,iBAAA,sBGsDF,iBAAA,EAAA,aAAA,EAAA,EAAA,KAAA,SAAA,EAAA,EAAA,KAAA,KAAA,EAAA,EAAA,KHhDI,sBG2FF,MAAA,KHlFE,iBGkFF,MAAA,SHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,IHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,IHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,UHlFE,iBGkFF,MAAA,IHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,UHlFE,kBGkFF,MAAA,MH1EF,kCACE,MAAA,KAIF,kCACE,OAAA,KA8BF,eCvGM,YAAA,SAAA,aAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,YAAA,UAAA,aAAA,WDuGN,qBGsCE,MAAA,qBFpIE,YAAA,QAAA,aAAA,QpB0IE,aAAA,4BmB5CN,qBGsCE,MAAA,sBFpIE,YAAA,SAAA,aAAA,UDsEJ,qBG8DE,MAAA,KH1DF,uBG0DE,MAAA,KHlDA,wBGkDA,MAAA,yBHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,oBHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,oBHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,oBHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,MAAA,KH1DF,uBG0DE,MAAA,KHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,sBH9DF,4BG8DE,MAAA,KH1DF,8BG0DE,MAAA,KHlDA,yBGkDA,MAAA,0BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,qBHlDA,0BGkDA,MAAA,2BHlDA,0BGkDA,MAAA,2BHlDA,0BGkDA,MAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,MAAA,KH1DF,6BG0DE,MAAA,KHlDA,wBGkDA,MAAA,0BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,2BHlDA,wBGkDA,MAAA,qBHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,2BHlDA,yBGkDA,MAAA,uBHFF,gCC3IM,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBRN,gCC3IM,aAAA,UAAA,YAAA,WDoJJ,2CCpJI,aAAA,SAAA,YAAA,SpBmJA,aAAA,4BmBCJ,2CCpJI,aAAA,UAAA,YAAA,WD2IN,sBC3IM,cAAA,QAAA,aAAA,QpBmJA,aAAA,4BmBRN,sBC3IM,cAAA,SAAA,aAAA,UGAN,kBD6IE,MAAA,KC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,MtBMI,aAAA,4BuBnJN,mBD6IE,MAAA,KC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,IC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,UC7IF,mBD6IE,MAAA,OtBMI,aAAA,4BuBnJN,kBD6IE,MAAA,KC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,IC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,UC7IF,kBD6IE,MAAA,OC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,oBC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,0BC7IF,gCD6IE,MAAA,sBtBMI,aAAA,4BuBnJN,gCD6IE,MAAA,sBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,uBC7IF,iCD6IE,MAAA,sBC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,qBC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,2BC7IF,iCD6IE,MAAA,wBtBMI,aAAA,4BuBnJN,gCD6IE,MAAA,sBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,qBC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,2BC7IF,gCD6IE,MAAA,wBH0DE,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,EAsBE,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,KtBMI,aAAA,4BwB/HI,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBMI,aAAA,4BwB/HI,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MHgEE,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,ExB8GF,aAAA,4BmBoDF,wBK9ME,aAAA,EAAA,YAAA,EAGF,8BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,iCFkIR,MAAA,SElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,MtBMI,aAAA,4BwB/HI,kCFyHR,MAAA,SEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,IEzHQ,mCFyHR,MAAA,UEzHQ,mCFyHR,MAAA,UEzHQ,mCFyHR,MAAA,MtBMI,aAAA,4BwB/HI,iCFyHR,MAAA,SEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,IEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,UEzHQ,kCFyHR,MAAA,MtBMI,aAAA,4BmB0DF,yBK7KE,aAAA,EAAA,YAAA,EAGF,+BAEI,cAAA,EAAA,aAAA,GxB8GF,aAAA,4BmBoDF,uBK9ME,aAAA,EAAA,YAAA,EAGF,6BAEI,aAAA,EAAA,YAAA,GxBqJF,aAAA,4BwBxII,gCFkIR,MAAA,SElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,UElIQ,gCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,MtBMI,aAAA,4BwBxII,iCFkIR,MAAA,SElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,UElIQ,iCFkIR,MAAA,IElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,UElIQ,kCFkIR,MAAA,MtBMI,aAAA,4BwB/HI,gCFyHR,MAAA,SEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,UEzHQ,gCFyHR,MAAA,IEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,UEzHQ,iCFyHR,MAAA,MtBMI,aAAA,4BmB0DF,wBK7KE,aAAA,EAAA,YAAA,EAGF,8BAEI,cAAA,EAAA,aAAA,GLsLJ,gBMnMF,YAAA,ENuME,+BMvMF,YAAA,uBNmME,gBMnMF,YAAA,SNuME,+BMvMF,YAAA,6BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,wBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,wBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,wBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,8BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,8BzB2HI,aAAA,4BmBwEF,iBMnMF,YAAA,ENuME,gCMvMF,YAAA,wBNmME,iBMnMF,YAAA,SNuME,gCMvMF,YAAA,8BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,INuME,gCMvMF,YAAA,yBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,INuME,gCMvMF,YAAA,yBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,INuME,gCMvMF,YAAA,yBNmME,kBMnMF,YAAA,UNuME,iCMvMF,YAAA,+BNmME,kBMnMF,YAAA,UNuME,iCMvMF,YAAA,gCzB2HI,aAAA,4BmBwEF,gBMnMF,YAAA,ENuME,+BMvMF,YAAA,wBNmME,gBMnMF,YAAA,SNuME,+BMvMF,YAAA,8BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,yBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,yBNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,UNuME,+BMvMF,YAAA,+BNmME,gBMnMF,YAAA,INuME,+BMvMF,YAAA,yBNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,+BNmME,iBMnMF,YAAA,UNuME,gCMvMF,YAAA,gCNgDY,QEtEd,QAAA,YAAA,Q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A,OAAA,UAAA,OACA,kBAAA,QAAA,oBAAA,QAAA,eAAA,QAAA,YAAA,QAiCI,OAAA,MPuWE,MAAA,MAKN,yBAEI,OAAA,KnBjPA,aAAA,4BmB+OJ,gCAMM,OAAA,MnBrPF,aAAA,4BmB+OJ,+BAMM,OAAA,MAjSR,eCvGM,WAAA,SAAA,cAAA,SpBmJA,aAAA,4BmB5CN,eCvGM,WAAA,UAAA,cAAA,WDuGN,qBGsCE,OAAA,qBFpIE,WAAA,QAAA,cAAA,QpB0IE,aAAA,4BmB5CN,qBGsCE,OAAA,sBFpIE,WAAA,SAAA,cAAA,UDsEJ,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,yBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,oBHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,qBtBMI,aAAA,4BmBpEN,qBG8DE,OAAA,KH1DF,uBG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,2BHlDA,wBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,sBH9DF,4BG8DE,OAAA,KH1DF,8BG0DE,OAAA,KHlDA,yBGkDA,OAAA,0BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,2BHlDA,yBGkDA,OAAA,qBHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,2BHlDA,0BGkDA,OAAA,uBtBMI,aAAA,4BmBpEN,2BG8DE,OAAA,KH1DF,6BG0DE,OAAA,KHlDA,wBGkDA,OAAA,0BHlDA,wBGkD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","file":"foundation.min.css","sourcesContent":["// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breakpoints\n////\n\n/// Patch to fix issue #12080\n$-zf-size: null;\n\n/// A list of named breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries.\n/// @type Map\n$breakpoints: (\n  \"small\": 0,\n  \"medium\": 640px,\n  \"large\": 1024px,\n  \"xlarge\": 1200px,\n  \"xxlarge\": 1440px,\n) !default;\n\n/// A list of named HiDPI breakpoints. You can use these with the `breakpoint()` mixin to quickly create media queries for resolutions.\n/// Values must represent the device pixels / web pixels ration and be unitless or in DPPX.\n/// @type Map\n$breakpoints-hidpi: (\n  \"hidpi-1\": 1,\n  \"hidpi-1-5\": 1.5,\n  \"hidpi-2\": 2,\n  \"retina\": 2,\n  \"hidpi-3\": 3\n) !default;\n\n/// The largest named breakpoint in which to include print as a media type\n/// @type Keyword\n$print-breakpoint: large !default;\n\n$-zf-zero-breakpoint: small !default;\n\n$-zf-breakpoints-keys: map-to-list($breakpoints, 'keys');\n\n@if nth(map-values($breakpoints), 1) != 0 {\n  @error 'The first key in the $breakpoints map must have a value of \"0\".';\n}\n@else {\n  $-zf-zero-breakpoint: nth(map-keys($breakpoints), 1);\n}\n\n/// All of the names in this list will be output as classes in your CSS, like `.small-12`, `.medium-6`, and so on. Each value in this list must also be in the `$breakpoints` map.\n/// @type List\n$breakpoint-classes: (small medium large) !default;\n\n/// Generates a media query string matching the input value. Refer to the documentation for the `breakpoint()` mixin to see what the possible inputs are.\n///\n/// @param {Keyword|Number} $val [small] - Breakpoint name, or px, rem, or em value to process.\n@function breakpoint($val: $-zf-zero-breakpoint) {\n  // Web standard Pixels per inch. (1ddpx / $std-web-dpi) = 1dpi\n  // See https://www.w3.org/TR/css-values-3/#absolute-lengths\n  $std-web-dpi: 96;\n\n  // Size or keyword\n  $bp: nth($val, 1);\n  // Value of the following breakpoint\n  $bp-next: null;\n  // Value for max-width media queries\n  $bp-min: null;\n  // Value for min-width media queries\n  $bp-max: null;\n  // Direction of media query (up, down, or only)\n  $dir: if(length($val) > 1, nth($val, 2), up);\n  // If named, name of the breakpoint\n  $name: null;\n  // If the breakpoint is a HiDPI breakpoint\n  $hidpi: false;\n\n  // Orientation media queries have a unique syntax\n  @if $bp == 'landscape' or $bp == 'portrait' {\n    @return '(orientation: #{$bp})';\n  }\n\n  // If a breakpoint name is given, get its value from the $breakpoints/$breakpoints-hidpi map.\n  @if type-of($bp) == 'string' {\n    @if map-has-key($breakpoints, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints, $name);\n      $bp-next: -zf-map-next($breakpoints, $name);\n    }\n    @else if map-has-key($breakpoints-hidpi, $bp) {\n      $name: $bp;\n      $bp: map-get($breakpoints-hidpi, $name);\n      $bp-next: -zf-map-next-number($breakpoints-hidpi, $bp);\n      $hidpi: true;\n    }\n    @else {\n      $bp: 0;\n      @warn 'breakpoint(): \"#{$val}\" is not defined in your `$breakpoints` or `$breakpoints-hidpi` setting.';\n    }\n  }\n\n  @if not $name and $dir == 'only' {\n    @warn 'breakpoint(): Only named media queries can have an `only` range.';\n    @return null;\n  }\n\n  // Only 'only' and 'up' have a min limit.\n  @if $dir == 'only' or $dir == 'up' {\n    $bp-min: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n  }\n  // Only 'only' and 'down' have a max limit.\n  @if $dir == 'only' or $dir == 'down' {\n    // If the breakpoint is a value, use it as max limit.\n    @if not $name {\n      $bp-max: if($hidpi, strip-unit($bp), -zf-bp-to-em($bp));\n    }\n    // If the breakpoint is named, the max limit is the following breakpoint - 1px.\n    @else if $bp-next {\n      // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n      // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n      // See https://github.com/foundation/foundation-sites/issues/11313\n      $bp-max: if($hidpi, $bp-next - divide(1, $std-web-dpi), -zf-bp-to-em($bp-next) - 0.00125);\n    }\n  }\n\n  // Generate the media query string from min and max limits.\n  @if $hidpi {\n    // Generate values in DPI instead of DPPX for an IE9-11/Opera mini compatibility.\n    // See https://caniuse.com/#feat=css-media-resolution\n    $bp-min-dpi: if($bp-min, $bp-min * $std-web-dpi * 1dpi, $bp-min);\n    $bp-max-dpi: if($bp-max, $bp-max * $std-web-dpi * 1dpi, $bp-max);\n    @return zf-str-join(\n      -zf-bp-join($bp-min, $bp-max, '-webkit-min-device-pixel-ratio', '-webkit-max-device-pixel-ratio'),\n      -zf-bp-join($bp-min-dpi, $bp-max-dpi, 'min-resolution', 'max-resolution'),\n      ', ');\n  }\n  @else {\n    @return -zf-bp-join($bp-min, $bp-max);\n  }\n}\n\n/// Wraps a media query around the content you put inside the mixin. This mixin accepts a number of values:\n///  - If a string is passed, the mixin will look for it in the `$breakpoints` and `$breakpoints-hidpi` maps, and use a media query there.\n///  - If a pixel value is passed, it will be converted to an em value using `$global-font-size` as the base.\n///  - If a rem value is passed, the unit will be changed to em.\n///  - If an em value is passed, the value will be used as-is.\n///\n/// If multiple values are passed, the mixin will generate a media query for each of them as described above.\n/// Since the content is duplicated for each breakpoint, this mixin should only be used with properties that\n/// change across breakpoints.\n///\n/// @param {Keyword|Number} $values... - Breakpoint name or px/rem/em value to process.\n///\n/// @output If the breakpoint is \"0px and larger\", outputs the content as-is. Otherwise, outputs the content wrapped in a media query.\n@mixin breakpoint($values...) {\n  @for $i from 1 through length($values) {\n    $value: nth($values, $i);\n    $str: breakpoint($value);\n    $bp: index($-zf-breakpoints-keys, nth($value, 1));\n    $pbp: index($-zf-breakpoints-keys, $print-breakpoint);\n    // Direction of media query (up, down, or only)\n    $dir: if(length($value) > 1, nth($value, 2), up);\n\n    $old-zf-size: null;\n\n    // Make breakpoint size available as a variable\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: nth($value, 1) !global; // get the first value to account for `only` and `down` keywords\n\n    // If $str is still an empty string, no media query is needed\n    @if $str == '' {\n      @content;\n    }\n\n    // Otherwise, wrap the content in a media query\n    @else {\n      // For named breakpoints less than or equal to $print-breakpoint, add print to the media types\n      // generate print if the breakpoint affects the print-breakpoint (or smaller).\n      // This means the current condition only needs to be extended so 'down' always generates print.\n      @if $bp != null and ($bp <= $pbp or $dir == down) {\n        @media print, screen and #{$str} {\n          @content;\n        }\n      }\n      @else {\n        @media screen and #{$str} {\n          @content;\n        }\n      }\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Converts the breakpoints map to a URL-encoded string, like this: `key1=value1&key2=value2`. The value is then dropped into the CSS for a special `<meta>` tag, which is read by the Foundation JavaScript. This is how we transfer values from Sass to JavaScript, so they can be defined in one place.\n/// @access private\n///\n/// @param {Map} $map - Map to convert.\n///\n/// @returns {String} A string containing the map's contents.\n@function -zf-bp-serialize($map) {\n  $str: '';\n  @each $key, $value in $map {\n    $str: $str + $key + '=' + -zf-bp-to-em($value) + '&';\n  }\n  $str: str-slice($str, 1, -2);\n\n  @return $str;\n}\n\n/// Find the next key in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $key - Key to use as a starting point.\n///\n/// @returns {Mixed} The value for the key after `$key`, if `$key` was found. If `$key` was not found, or `$key` was the last value in the map, returns `null`.\n@function -zf-map-next($map, $key) {\n\n  // Store the keys of the map as a list\n  $values: map-keys($map);\n\n  $i: 0;\n\n  // If the Key Exists, Get the index of the key within the map and add 1 to it for the next breakpoint in the map\n  @if (map-has-key($map, $key)) {\n    $i: index($values, $key) + 1;\n  }\n\n  // If the key doesn't exist, or it's the last key in the map, return null\n  @if ($i > length($map) or $i == 0) {\n    @return null;\n  }\n  // Otherwise, return the value\n  @else {\n    @return map-get($map, nth($values, $i));\n  }\n\n}\n\n/// Find the next number in a map.\n/// @access private\n///\n/// @param {Map} $map - Map to traverse.\n/// @param {Mixed} $number - Number to use as a starting point.\n///\n/// @returns {Mixed} The number following `$number`, if `$number` was found. If `$number` was not found, or `$number` was the biggest number in the map, returns `null`.\n@function -zf-map-next-number($map, $number) {\n\n  $next-number: null;\n\n  @each $k, $v in $map {\n    @if type-of($v) == 'number' and $v > $number and ($next-number == null or $v < $next-number) {\n      $next-number: $v;\n    }\n  }\n\n  @return $next-number;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $key - Key to use as last breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-breakpoints-less-than($key) {\n  $list: ();\n  $found-key: false;\n\n  @each $name in $-zf-breakpoints-keys {\n    @if ($name == $key) {\n      $found-key: true;\n    }\n    @if not $found-key {\n      $list: append($list, $name);\n    }\n  }\n  @return $list;\n}\n\n/// Return a list of our named breakpoints less than $key. Useful for dealing with\n/// responsive gutters for the grid.\n/// @access private\n///\n/// @param {String} $breakpoint - a named or non-named breakpoint.\n///\n/// @returns {Array} The list of breakpoints up to and. If $key is auto, returns breakpoints above the zero\n@function -zf-closest-named-breakpoint($breakpoint) {\n  $last: $-zf-zero-breakpoint;\n  $found: false;\n\n  $value: unitless-calc($breakpoint, 1px);\n  @each $key, $val in $breakpoints {\n    @if not $found {\n      @if unitless-calc($val) > $value {\n        $found: true;\n      } @else {\n        $last: $key;\n      }\n    }\n  }\n\n  @return $last;\n}\n\n/// Get a value for a breakpoint from a responsive config map or single value.\n/// - If the config is a single value, return it regardless of `$value`.\n/// - If the config is a map and has the key `$value`, the exact breakpoint value is returned.\n/// - If the config is a map and does *not* have the breakpoint, the value matching the next lowest breakpoint in the config map is returned.\n/// @access private\n///\n/// @param {Number|Map} $map - Responsive config map or single value.\n/// @param {Keyword} $value - Breakpoint name to use.\n///\n/// @return {Mixed} The corresponding breakpoint value.\n@function -zf-get-bp-val($map, $value) {\n  // If the given map is a single value, return it\n  @if type-of($map) == 'number' {\n    @return $map;\n  }\n\n\n  // Check if the breakpoint name exists globally\n  @if not map-has-key($breakpoints, $value) {\n    @if type-of($value) == 'number' {\n      $value: -zf-closest-named-breakpoint($value);\n    } @else {\n      @return null;\n    }\n  }\n  // Check if the breakpoint name exists in the local config map\n  @else if map-has-key($map, $value) {\n    // If it does, just return the value\n    @return map-get($map, $value);\n  }\n  // Otherwise, find the next lowest breakpoint and return that value\n  @else {\n    $anchor: null;\n    $found: false;\n\n    @each $key, $val in $breakpoints {\n      @if not $found {\n        @if map-has-key($map, $key) {\n          $anchor: $key;\n        }\n        @if $key == $value {\n          $found: true;\n        }\n      }\n    }\n\n    @return map-get($map, $anchor);\n  }\n}\n\n/// Return the best breakpoint to use according to the calling context. It returns in order:\n/// 1. the given `$value` argument if it is not null.\n/// 2. the global breakpoint context `$-zf-size` if it is not null (like if called inside then `breakpoint()` mixin)\n/// 3. the given `$default` argument.\n/// @access private\n///\n/// @param {Keyword} $value [null] - Breakpoint to use in priority if non-null.\n/// @param {Keyword} $default [null] - Breakpoint to use by default if no other value can be used.\n///\n/// @return {Keyword} The resolved breakpoint.\n@function -zf-current-breakpoint($value: null, $default: null) {\n  @if ($value != null) {\n    @return $value;\n  }\n  @else if (variable-exists(-zf-size) and type-of($-zf-size) != 'number') and $-zf-size != null {\n    @return $-zf-size;\n  }\n  @else {\n    @return $default;\n  }\n}\n\n/// Return media query string from the given min and/or max limits.\n/// If a limit is equal to `null` or `0`, it is ignored.\n/// @access private\n///\n/// @param {Number} $min [0] - Min media query limit.\n/// @param {Number} $max [0] - Max media query limit.\n/// @param {String} $min-name ['min-width'] - Name of the min media query limit.\n/// @param {String} $delimiter ['max-width'] - Name of the max media query limit.\n///\n/// @returns {String} Media Query string.\n@function -zf-bp-join(\n  $min: 0,\n  $max: 0,\n  $min-name: 'min-width',\n  $max-name: 'max-width'\n) {\n  @return zf-str-join(\n    if($min and $min > 0, '(#{$min-name}: #{$min})', null),\n    if($max and $max > 0, '(#{$max-name}: #{$max})', null),\n    ' and ');\n}\n\n$small-up: '';\n$small-only: '';\n\n@if map-has-key($breakpoints, small) {\n  $small-up: screen;\n  $small-only: unquote('screen and #{breakpoint(small only)}');\n}\n\n$medium-up: '';\n$medium-only: '';\n\n@if map-has-key($breakpoints, medium) {\n  $medium-up: unquote('screen and #{breakpoint(medium)}');\n  $medium-only: unquote('screen and #{breakpoint(medium only)}');\n}\n\n$large-up: '';\n$large-only: '';\n\n@if map-has-key($breakpoints, large) {\n  $large-up: unquote('screen and #{breakpoint(large)}');\n  $large-only: unquote('screen and #{breakpoint(large only)}');\n}\n\n$xlarge-up: '';\n$xlarge-only: '';\n\n@if map-has-key($breakpoints, xlarge) {\n  $xlarge-up: unquote('screen and #{breakpoint(xlarge)}');\n  $xlarge-only: unquote('screen and #{breakpoint(xlarge only)}');\n}\n\n$xxlarge-up: '';\n\n@if map-has-key($breakpoints, xxlarge) {\n  $xxlarge-up: unquote('screen and #{breakpoint(xxlarge)}');\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group reveal\n////\n\n/// Default background color of a modal.\n/// @type Color\n$reveal-background: $white !default;\n\n/// Default width of a modal, with no class applied.\n/// @type Number\n$reveal-width: 600px !default;\n\n/// Default maximum width of a modal.\n/// @type Number\n$reveal-max-width: $global-width !default;\n\n/// Default padding inside a modal.\n/// @type Number\n$reveal-padding: $global-padding !default;\n\n/// Default border around a modal.\n/// @type Number\n$reveal-border: 1px solid $medium-gray !default;\n\n/// Default radius for modal.\n/// @type Number\n$reveal-radius: $global-radius !default;\n\n/// z-index for modals. The overlay uses this value, while the modal itself uses this value plus one.\n/// @type Number\n$reveal-zindex: 1005 !default;\n\n/// Background color of modal overlays.\n/// @type Color\n$reveal-overlay-background: rgba($black, 0.45) !default;\n\n\n// Placeholder selector for medium-and-up modals\n// Prevents duplicate CSS when defining multiple Reveal sizes\n// This should be in the same breakpoint then `@mixin reveal-modal-width`\n@include breakpoint(medium) {\n  %reveal-centered {\n    right: auto;\n    left: auto;\n    margin: 0 auto;\n  }\n}\n\n\n/// Adds styles for a modal overlay.\n/// @param {Color} $background [$reveal-overlay-background] - Background color of the overlay.\n@mixin reveal-overlay($background: $reveal-overlay-background) {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $reveal-zindex;\n\n  display: none;\n  background-color: $background;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/// Adds base styles for a modal.\n@mixin reveal-modal-base {\n  @include disable-mouse-outline;\n  z-index: $reveal-zindex + 1;\n  // Workaround android browser z-index bug\n  backface-visibility: hidden;\n\n  display: none;\n  padding: $reveal-padding;\n\n  border: $reveal-border;\n  border-radius: $reveal-radius;\n  background-color: $reveal-background;\n\n  @include breakpoint(medium) {\n    min-height: 0;\n  }\n\n  // Make sure rows don't have a min-width on them\n  .column {\n    min-width: 0;\n  }\n\n  // Strip margins from the last item in the modal\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adjusts the width of a modal.\n/// @param {Number} $width - Width of the modal. Generally a percentage.\n/// @param {Number} $max-width [$reveal-max-width] - Maximum width of the modal.\n@mixin reveal-modal-width(\n  $width: $reveal-width,\n  $max-width: $reveal-max-width\n) {\n  // Extends must be made outside of breakpoints for compatibility with newer Sass versions (libsass v3.5)\n  @extend %reveal-centered;\n  @include breakpoint(medium) {\n    width: $width;\n    max-width: $max-width;\n  }\n}\n\n/// Creates a full-screen modal, which stretches the full width and height of the window.\n@mixin reveal-modal-fullscreen {\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  min-height: 100%;\n  margin-left: 0;\n\n  border: 0;\n  border-radius: 0;\n}\n\n@mixin foundation-reveal {\n\n  /// Disables the scroll when Reveal is shown to prevent the background from shifting\n  html.is-reveal-open {\n    position: fixed;\n    width: 100%;\n    overflow-y: hidden;\n\n    &.zf-has-scroll {\n      overflow-y: scroll;\n      -webkit-overflow-scrolling: touch;\n    }\n\n    body { // sass-lint:disable-line no-qualifying-elements\n      overflow-y: hidden;\n    }\n  }\n\n  // Overlay\n  .reveal-overlay {\n    @include reveal-overlay;\n  }\n\n  // Modal container\n  .reveal {\n    @include reveal-modal-base;\n    @include reveal-modal-width($reveal-width);\n    position: relative;\n    top: 100px;\n    margin-right: auto;\n    margin-left: auto;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    // Remove padding\n    &.collapse {\n      padding: 0;\n    }\n\n    // Sizing classes\n    &.tiny  { @include reveal-modal-width(30%); }\n    &.small { @include reveal-modal-width(50%); }\n    &.large { @include reveal-modal-width(90%); }\n\n    // Full-screen mode\n    &.full {\n      @include reveal-modal-fullscreen;\n    }\n\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include reveal-modal-fullscreen;\n    }\n\n    &.without-overlay {\n      position: fixed;\n    }\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n@mixin foundation-normalize() {\n  /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\n\n  // Document\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  html {\n    line-height: 1.15; // 1\n    -webkit-text-size-adjust: 100%; // 2\n  }\n\n  // Sections\n  // ==========================================================================\n\n  // Remove the margin in all browsers.\n\n  body {\n    margin: 0;\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  h1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n  }\n\n  // Grouping content\n  // ==========================================================================\n\n  // 1. Add the correct box sizing in Firefox.\n  // 2. Show the overflow in Edge and IE.\n\n  hr {\n    box-sizing: content-box; // 1\n    height: 0; // 1\n    overflow: visible; // 2\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  pre {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Text-level semantics\n  // ==========================================================================\n\n  // Remove the gray background on active links in IE 10.\n\n  a {\n    background-color: transparent;\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  abbr[title] {\n    border-bottom: 0; // 1\n    text-decoration: underline dotted; // 2\n  }\n\n  // Add the correct font weight in Chrome, Edge, and Safari.\n\n  b,\n  strong {\n    font-weight: bolder;\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  code,\n  kbd,\n  samp {\n    font-family: monospace, monospace; // 1\n    font-size: 1em; // 2\n  }\n\n  // Add the correct font size in all browsers.\n\n  small {\n    font-size: 80%;\n  }\n\n  // Prevent `sub` and `sup` elements from affecting the line height in\n  // all browsers.\n\n  sub,\n  sup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n  }\n\n  sub {\n    bottom: -0.25em;\n  }\n\n  sup {\n    top: -0.5em;\n  }\n\n  // Embedded content\n  // ==========================================================================\n\n  // Remove the border on images inside links in IE 10.\n\n  img {\n    border-style: none;\n  }\n\n  // Forms\n  // ==========================================================================\n\n  // 1. Change the font styles in all browsers.\n  // 2. Remove the margin in Firefox and Safari.\n\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit; // 1\n    font-size: 100%; // 1\n    line-height: 1.15; // 1\n    margin: 0; // 2\n  }\n\n  // Show the overflow in IE.\n  // 1. Show the overflow in Edge.\n\n  button,\n  input { // 1\n    overflow: visible;\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  button,\n  select { // 1\n    text-transform: none;\n  }\n\n  // Correct the inability to style clickable types in iOS and Safari.\n\n  button,\n  [type=\"button\"],\n  [type=\"reset\"],\n  [type=\"submit\"] {\n    -webkit-appearance: button;\n  }\n\n  // Remove the inner border and padding in Firefox.\n\n  button::-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  // Restore the focus styles unset by the previous rule.\n\n  button:-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  // Correct the padding in Firefox.\n\n  fieldset {\n    padding: 0.35em 0.75em 0.625em;\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  legend {\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  // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\n  progress {\n    vertical-align: baseline;\n  }\n\n  // Remove the default vertical scrollbar in IE 10+.\n\n  textarea {\n    overflow: auto;\n  }\n\n  // 1. Add the correct box sizing in IE 10.\n  // 2. Remove the padding in IE 10.\n\n  [type=\"checkbox\"],\n  [type=\"radio\"] {\n    box-sizing: border-box; // 1\n    padding: 0; // 2\n  }\n\n  // Correct the cursor style of increment and decrement buttons in Chrome.\n\n  [type=\"number\"]::-webkit-inner-spin-button,\n  [type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n  }\n\n  // 1. Correct the odd appearance in Chrome and Safari.\n  // 2. Correct the outline style in Safari.\n\n  [type=\"search\"] {\n    -webkit-appearance: textfield; // 1\n    outline-offset: -2px; // 2\n  }\n\n  // Remove the inner padding in Chrome and Safari on macOS.\n\n  [type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\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  ::-webkit-file-upload-button {\n    -webkit-appearance: button; // 1\n    font: inherit; // 2\n  }\n\n  // Interactive\n  // ==========================================================================\n\n  // Add the correct display in Edge, IE 10+, and Firefox.\n\n  details {\n    display: block;\n  }\n\n  // Add the correct display in all browsers.\n\n  summary {\n    display: list-item;\n  }\n\n  // Misc\n  // ==========================================================================\n\n  // Add the correct display in IE 10+.\n\n  template {\n    display: none;\n  }\n\n  // Add the correct display in IE 10.\n\n  [hidden] {\n    display: none;\n  }\n\n  // Disable outline when intent is clearly mouse and touch\n  [data-whatintent=\"mouse\"],\n  [data-whatintent=\"touch\"],\n  [data-whatinput=\"mouse\"],\n  [data-whatinput=\"touch\"] {\n    *, *:focus {\n      outline: none;\n    }\n  }\n\n  // Disable iOS callouts when draggable is false\n  [draggable=false] {\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n  }\n}\n",null,"@charset \"UTF-8\";\n/**\n * Foundation for Sites\n * Version 6.7.5\n * https://get.foundation\n * Licensed under MIT Open Source\n */\n@media print, screen and (min-width: 40em) {\n  .reveal, .reveal.tiny, .reveal.small, .reveal.large {\n    right: auto;\n    left: auto;\n    margin: 0 auto; } }\n\n/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%; }\n\nbody {\n  margin: 0; }\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0; }\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible; }\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\na {\n  background-color: transparent; }\n\nabbr[title] {\n  border-bottom: 0;\n  text-decoration: underline dotted; }\n\nb,\nstrong {\n  font-weight: bolder; }\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em; }\n\nsmall {\n  font-size: 80%; }\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline; }\n\nsub {\n  bottom: -0.25em; }\n\nsup {\n  top: -0.5em; }\n\nimg {\n  border-style: none; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0; }\n\nbutton,\ninput {\n  overflow: visible; }\n\nbutton,\nselect {\n  text-transform: none; }\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; }\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\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n  outline: 1px dotted ButtonText; }\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em; }\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal; }\n\nprogress {\n  vertical-align: baseline; }\n\ntextarea {\n  overflow: auto; }\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0; }\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto; }\n\n[type=\"search\"] {\n  -webkit-appearance: textfield;\n  outline-offset: -2px; }\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none; }\n\n::-webkit-file-upload-button {\n  -webkit-appearance: button;\n  font: inherit; }\n\ndetails {\n  display: block; }\n\nsummary {\n  display: list-item; }\n\ntemplate {\n  display: none; }\n\n[hidden] {\n  display: none; }\n\n[data-whatintent=\"mouse\"] *, [data-whatintent=\"mouse\"] *:focus,\n[data-whatintent=\"touch\"] *,\n[data-whatintent=\"touch\"] *:focus,\n[data-whatinput=\"mouse\"] *,\n[data-whatinput=\"mouse\"] *:focus,\n[data-whatinput=\"touch\"] *,\n[data-whatinput=\"touch\"] *:focus {\n  outline: none; }\n\n[draggable=false] {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none; }\n\n.foundation-mq {\n  font-family: \"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em\"; }\n\nhtml {\n  box-sizing: border-box;\n  font-size: 100%; }\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit; }\n\nbody {\n  margin: 0;\n  padding: 0;\n  background: #fefefe;\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale; }\n\nimg {\n  display: inline-block;\n  vertical-align: middle;\n  max-width: 100%;\n  height: auto;\n  -ms-interpolation-mode: bicubic; }\n\ntextarea {\n  height: auto;\n  min-height: 50px;\n  border-radius: 0; }\n\nselect {\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: 0; }\n\n.map_canvas img,\n.map_canvas embed,\n.map_canvas object,\n.mqa-display img,\n.mqa-display embed,\n.mqa-display object {\n  max-width: none !important; }\n\nbutton {\n  padding: 0;\n  appearance: none;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  line-height: 1;\n  cursor: auto; }\n  [data-whatinput='mouse'] button {\n    outline: 0; }\n\npre {\n  overflow: auto;\n  -webkit-overflow-scrolling: touch; }\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit; }\n\n.is-visible {\n  display: block !important; }\n\n.is-hidden {\n  display: none !important; }\n\n[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],\ntextarea {\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;\n  appearance: none; }\n  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,\n  textarea:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n\ntextarea {\n  max-width: 100%; }\n  textarea[rows] {\n    height: auto; }\n\ninput:disabled, input[readonly],\ntextarea:disabled,\ntextarea[readonly] {\n  background-color: #e6e6e6;\n  cursor: not-allowed; }\n\n[type='submit'],\n[type='button'] {\n  appearance: none;\n  border-radius: 0; }\n\ninput[type='search'] {\n  box-sizing: border-box; }\n\n::placeholder {\n  color: #cacaca; }\n\n[type='file'],\n[type='checkbox'],\n[type='radio'] {\n  margin: 0 0 1rem; }\n\n[type='checkbox'] + label,\n[type='radio'] + label {\n  display: inline-block;\n  vertical-align: baseline;\n  margin-left: 0.5rem;\n  margin-right: 1rem;\n  margin-bottom: 0; }\n  [type='checkbox'] + label[for],\n  [type='radio'] + label[for] {\n    cursor: pointer; }\n\nlabel > [type='checkbox'],\nlabel > [type='radio'] {\n  margin-right: 0.5rem; }\n\n[type='file'] {\n  width: 100%; }\n\nlabel {\n  display: block;\n  margin: 0;\n  font-size: 0.875rem;\n  font-weight: normal;\n  line-height: 1.8;\n  color: #0a0a0a; }\n  label.middle {\n    margin: 0 0 1rem;\n    line-height: 1.5;\n    padding: 0.5625rem 0; }\n\n.help-text {\n  margin-top: -0.5rem;\n  font-size: 0.8125rem;\n  font-style: italic;\n  color: #0a0a0a; }\n\n.input-group {\n  display: flex;\n  width: 100%;\n  margin-bottom: 1rem;\n  align-items: stretch; }\n  .input-group > :first-child, .input-group > :first-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n  .input-group > :last-child, .input-group > :last-child.input-group-button > * {\n    border-radius: 0 0 0 0; }\n\n.input-group-label, .input-group-field, .input-group-button, .input-group-button a,\n.input-group-button input,\n.input-group-button button,\n.input-group-button label {\n  margin: 0;\n  white-space: nowrap; }\n\n.input-group-label {\n  padding: 0 1rem;\n  border: 1px solid #cacaca;\n  background: #e6e6e6;\n  color: #0a0a0a;\n  text-align: center;\n  white-space: nowrap;\n  display: flex;\n  flex: 0 0 auto;\n  align-items: center; }\n  .input-group-label:first-child {\n    border-right: 0; }\n  .input-group-label:last-child {\n    border-left: 0; }\n\n.input-group-field {\n  border-radius: 0;\n  flex: 1 1 0px;\n  min-width: 0; }\n\n.input-group-button {\n  padding-top: 0;\n  padding-bottom: 0;\n  text-align: center;\n  display: flex;\n  flex: 0 0 auto; }\n  .input-group-button a,\n  .input-group-button input,\n  .input-group-button button,\n  .input-group-button label {\n    align-self: stretch;\n    height: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    font-size: 1rem; }\n\nfieldset {\n  margin: 0;\n  padding: 0;\n  border: 0; }\n\nlegend {\n  max-width: 100%;\n  margin-bottom: 0.5rem; }\n\n.fieldset {\n  margin: 1.125rem 0;\n  padding: 1.25rem;\n  border: 1px solid #cacaca; }\n  .fieldset legend {\n    margin: 0;\n    margin-left: -0.1875rem;\n    padding: 0 0.1875rem; }\n\nselect {\n  height: 2.4375rem;\n  margin: 0 0 1rem;\n  padding: 0.5rem;\n  appearance: none;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-family: inherit;\n  font-size: 1rem;\n  font-weight: normal;\n  line-height: 1.5;\n  color: #0a0a0a;\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: rgb%28138, 138, 138%29\"></polygon></svg>');\n  background-origin: content-box;\n  background-position: right -1rem center;\n  background-repeat: no-repeat;\n  background-size: 9px 6px;\n  padding-right: 1.5rem;\n  transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  @media screen and (min-width: 0\\0) {\n    select {\n      background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==\"); } }\n  select:focus {\n    outline: none;\n    border: 1px solid #8a8a8a;\n    background-color: #fefefe;\n    box-shadow: 0 0 5px #cacaca;\n    transition: box-shadow 0.5s, border-color 0.25s ease-in-out; }\n  select:disabled {\n    background-color: #e6e6e6;\n    cursor: not-allowed; }\n  select::-ms-expand {\n    display: none; }\n  select[multiple] {\n    height: auto;\n    background-image: none; }\n  select:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0; }\n\n.is-invalid-input:not(:focus) {\n  border-color: #cc4b37;\n  background-color: #f9ecea; }\n  .is-invalid-input:not(:focus)::placeholder {\n    color: #cc4b37; }\n\n.is-invalid-label {\n  color: #cc4b37; }\n\n.form-error {\n  display: none;\n  margin-top: -0.5rem;\n  margin-bottom: 1rem;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #cc4b37; }\n  .form-error.is-visible {\n    display: block; }\n\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\nform,\np,\nblockquote,\nth,\ntd {\n  margin: 0;\n  padding: 0; }\n\np {\n  margin-bottom: 1rem;\n  font-size: inherit;\n  line-height: 1.6;\n  text-rendering: optimizeLegibility; }\n\nem,\ni {\n  font-style: italic;\n  line-height: inherit; }\n\nstrong,\nb {\n  font-weight: bold;\n  line-height: inherit; }\n\nsmall {\n  font-size: 80%;\n  line-height: inherit; }\n\nh1, .h1,\nh2, .h2,\nh3, .h3,\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Roboto, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  color: inherit;\n  text-rendering: optimizeLegibility; }\n  h1 small, .h1 small,\n  h2 small, .h2 small,\n  h3 small, .h3 small,\n  h4 small, .h4 small,\n  h5 small, .h5 small,\n  h6 small, .h6 small {\n    line-height: 0;\n    color: #cacaca; }\n\nh1, .h1 {\n  font-size: 1.5rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh2, .h2 {\n  font-size: 1.25rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh3, .h3 {\n  font-size: 1.1875rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh4, .h4 {\n  font-size: 1.125rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh5, .h5 {\n  font-size: 1.0625rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\nh6, .h6 {\n  font-size: 1rem;\n  line-height: 1.4;\n  margin-top: 0;\n  margin-bottom: 0.5rem; }\n\n@media print, screen and (min-width: 40em) {\n  h1, .h1 {\n    font-size: 3rem; }\n  h2, .h2 {\n    font-size: 2.5rem; }\n  h3, .h3 {\n    font-size: 1.9375rem; }\n  h4, .h4 {\n    font-size: 1.5625rem; }\n  h5, .h5 {\n    font-size: 1.25rem; }\n  h6, .h6 {\n    font-size: 1rem; } }\n\na {\n  line-height: inherit;\n  color: #1779ba;\n  text-decoration: none;\n  cursor: pointer; }\n  a:hover, a:focus {\n    color: #1468a0; }\n  a img {\n    border: 0; }\n\nhr {\n  clear: both;\n  max-width: 75rem;\n  height: 0;\n  margin: 1.25rem auto;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 1px solid #cacaca;\n  border-left: 0; }\n\nul,\nol,\ndl {\n  margin-bottom: 1rem;\n  list-style-position: outside;\n  line-height: 1.6; }\n\nli {\n  font-size: inherit; }\n\nul {\n  margin-left: 1.25rem;\n  list-style-type: disc; }\n\nol {\n  margin-left: 1.25rem; }\n\nul ul, ol ul, ul ol, ol ol {\n  margin-left: 1.25rem;\n  margin-bottom: 0; }\n\ndl {\n  margin-bottom: 1rem; }\n  dl dt {\n    margin-bottom: 0.3rem;\n    font-weight: bold; }\n\nblockquote {\n  margin: 0 0 1rem;\n  padding: 0.5625rem 1.25rem 0 1.1875rem;\n  border-left: 1px solid #cacaca; }\n  blockquote, blockquote p {\n    line-height: 1.6;\n    color: #8a8a8a; }\n\nabbr, abbr[title] {\n  border-bottom: 1px dotted #0a0a0a;\n  cursor: help;\n  text-decoration: none; }\n\nfigure {\n  margin: 0; }\n\nkbd {\n  margin: 0;\n  padding: 0.125rem 0.25rem 0;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  color: #0a0a0a; }\n\n.subheader {\n  margin-top: 0.2rem;\n  margin-bottom: 0.5rem;\n  font-weight: normal;\n  line-height: 1.4;\n  color: #8a8a8a; }\n\n.lead {\n  font-size: 125%;\n  line-height: 1.6; }\n\n.stat {\n  font-size: 2.5rem;\n  line-height: 1; }\n  p + .stat {\n    margin-top: -1rem; }\n\nul.no-bullet, ol.no-bullet {\n  margin-left: 0;\n  list-style: none; }\n\ncite, .cite-block {\n  display: block;\n  color: #8a8a8a;\n  font-size: 0.8125rem; }\n  cite:before, .cite-block:before {\n    content: \"— \"; }\n\ncode, .code-inline {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n  padding: 0.125rem 0.3125rem 0.0625rem; }\n\n.code-block {\n  border: 1px solid #cacaca;\n  background-color: #e6e6e6;\n  font-family: Consolas, \"Liberation Mono\", Courier, monospace;\n  font-weight: normal;\n  color: #0a0a0a;\n  display: block;\n  overflow: auto;\n  white-space: pre;\n  padding: 1rem;\n  margin-bottom: 1.5rem; }\n\n.text-left {\n  text-align: left; }\n\n.text-right {\n  text-align: right; }\n\n.text-center {\n  text-align: center; }\n\n.text-justify {\n  text-align: justify; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-text-left {\n    text-align: left; }\n  .medium-text-right {\n    text-align: right; }\n  .medium-text-center {\n    text-align: center; }\n  .medium-text-justify {\n    text-align: justify; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-text-left {\n    text-align: left; }\n  .large-text-right {\n    text-align: right; }\n  .large-text-center {\n    text-align: center; }\n  .large-text-justify {\n    text-align: justify; } }\n\n.show-for-print {\n  display: none !important; }\n\n@media print {\n  * {\n    background: transparent !important;\n    color: black !important;\n    print-color-adjust: economy;\n    box-shadow: none !important;\n    text-shadow: none !important; }\n  .show-for-print {\n    display: block !important; }\n  .hide-for-print {\n    display: none !important; }\n  table.show-for-print {\n    display: table !important; }\n  thead.show-for-print {\n    display: table-header-group !important; }\n  tbody.show-for-print {\n    display: table-row-group !important; }\n  tr.show-for-print {\n    display: table-row !important; }\n  td.show-for-print {\n    display: table-cell !important; }\n  th.show-for-print {\n    display: table-cell !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  .ir a:after,\n  a[href^='javascript:']:after,\n  a[href^='#']:after {\n    content: ''; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  pre,\n  blockquote {\n    border: 1px solid #8a8a8a;\n    page-break-inside: avoid; }\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  @page {\n    margin: 0.5cm; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; }\n  .print-break-inside {\n    page-break-inside: auto; } }\n\n.grid-container {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem;\n  max-width: 75rem;\n  margin-left: auto;\n  margin-right: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n  .grid-container.fluid {\n    padding-right: 0.625rem;\n    padding-left: 0.625rem;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n    @media print, screen and (min-width: 40em) {\n      .grid-container.fluid {\n        padding-right: 0.9375rem;\n        padding-left: 0.9375rem; } }\n  .grid-container.full {\n    padding-right: 0;\n    padding-left: 0;\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto; }\n\n.grid-x {\n  display: flex;\n  flex-flow: row wrap; }\n\n.cell {\n  flex: 0 0 auto;\n  min-height: 0;\n  min-width: 0;\n  width: 100%; }\n  .cell.auto {\n    flex: 1 1 0; }\n  .cell.shrink {\n    flex: 0 0 auto; }\n\n.grid-x > .auto {\n  width: auto; }\n\n.grid-x > .shrink {\n  width: auto; }\n\n.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex-basis: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex-basis: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex-basis: auto; } }\n\n.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {\n  flex: 0 0 auto; }\n\n.grid-x > .small-1 {\n  width: 8.33333%; }\n\n.grid-x > .small-2 {\n  width: 16.66667%; }\n\n.grid-x > .small-3 {\n  width: 25%; }\n\n.grid-x > .small-4 {\n  width: 33.33333%; }\n\n.grid-x > .small-5 {\n  width: 41.66667%; }\n\n.grid-x > .small-6 {\n  width: 50%; }\n\n.grid-x > .small-7 {\n  width: 58.33333%; }\n\n.grid-x > .small-8 {\n  width: 66.66667%; }\n\n.grid-x > .small-9 {\n  width: 75%; }\n\n.grid-x > .small-10 {\n  width: 83.33333%; }\n\n.grid-x > .small-11 {\n  width: 91.66667%; }\n\n.grid-x > .small-12 {\n  width: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-x > .medium-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {\n    flex: 0 0 auto; }\n  .grid-x > .medium-shrink {\n    width: auto; }\n  .grid-x > .medium-1 {\n    width: 8.33333%; }\n  .grid-x > .medium-2 {\n    width: 16.66667%; }\n  .grid-x > .medium-3 {\n    width: 25%; }\n  .grid-x > .medium-4 {\n    width: 33.33333%; }\n  .grid-x > .medium-5 {\n    width: 41.66667%; }\n  .grid-x > .medium-6 {\n    width: 50%; }\n  .grid-x > .medium-7 {\n    width: 58.33333%; }\n  .grid-x > .medium-8 {\n    width: 66.66667%; }\n  .grid-x > .medium-9 {\n    width: 75%; }\n  .grid-x > .medium-10 {\n    width: 83.33333%; }\n  .grid-x > .medium-11 {\n    width: 91.66667%; }\n  .grid-x > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-x > .large-auto {\n    flex: 1 1 0;\n    width: auto; }\n  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {\n    flex: 0 0 auto; }\n  .grid-x > .large-shrink {\n    width: auto; }\n  .grid-x > .large-1 {\n    width: 8.33333%; }\n  .grid-x > .large-2 {\n    width: 16.66667%; }\n  .grid-x > .large-3 {\n    width: 25%; }\n  .grid-x > .large-4 {\n    width: 33.33333%; }\n  .grid-x > .large-5 {\n    width: 41.66667%; }\n  .grid-x > .large-6 {\n    width: 50%; }\n  .grid-x > .large-7 {\n    width: 58.33333%; }\n  .grid-x > .large-8 {\n    width: 66.66667%; }\n  .grid-x > .large-9 {\n    width: 75%; }\n  .grid-x > .large-10 {\n    width: 83.33333%; }\n  .grid-x > .large-11 {\n    width: 91.66667%; }\n  .grid-x > .large-12 {\n    width: 100%; } }\n\n.grid-margin-x:not(.grid-x) > .cell {\n  width: auto; }\n\n.grid-margin-y:not(.grid-y) > .cell {\n  height: auto; }\n\n.grid-margin-x {\n  margin-left: -0.625rem;\n  margin-right: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x {\n      margin-left: -0.9375rem;\n      margin-right: -0.9375rem; } }\n  .grid-margin-x > .cell {\n    width: calc(100% - 1.25rem);\n    margin-left: 0.625rem;\n    margin-right: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .cell {\n      width: calc(100% - 1.875rem);\n      margin-left: 0.9375rem;\n      margin-right: 0.9375rem; } }\n  .grid-margin-x > .auto {\n    width: auto; }\n  .grid-margin-x > .shrink {\n    width: auto; }\n  .grid-margin-x > .small-1 {\n    width: calc(8.33333% - 1.25rem); }\n  .grid-margin-x > .small-2 {\n    width: calc(16.66667% - 1.25rem); }\n  .grid-margin-x > .small-3 {\n    width: calc(25% - 1.25rem); }\n  .grid-margin-x > .small-4 {\n    width: calc(33.33333% - 1.25rem); }\n  .grid-margin-x > .small-5 {\n    width: calc(41.66667% - 1.25rem); }\n  .grid-margin-x > .small-6 {\n    width: calc(50% - 1.25rem); }\n  .grid-margin-x > .small-7 {\n    width: calc(58.33333% - 1.25rem); }\n  .grid-margin-x > .small-8 {\n    width: calc(66.66667% - 1.25rem); }\n  .grid-margin-x > .small-9 {\n    width: calc(75% - 1.25rem); }\n  .grid-margin-x > .small-10 {\n    width: calc(83.33333% - 1.25rem); }\n  .grid-margin-x > .small-11 {\n    width: calc(91.66667% - 1.25rem); }\n  .grid-margin-x > .small-12 {\n    width: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-x > .auto {\n      width: auto; }\n    .grid-margin-x > .shrink {\n      width: auto; }\n    .grid-margin-x > .small-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .small-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .small-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .small-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .small-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .small-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .small-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .small-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .small-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .small-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .small-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .small-12 {\n      width: calc(100% - 1.875rem); }\n    .grid-margin-x > .medium-auto {\n      width: auto; }\n    .grid-margin-x > .medium-shrink {\n      width: auto; }\n    .grid-margin-x > .medium-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .medium-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .medium-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .medium-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .medium-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .medium-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .medium-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .medium-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .medium-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .medium-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .medium-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .medium-12 {\n      width: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-x > .large-auto {\n      width: auto; }\n    .grid-margin-x > .large-shrink {\n      width: auto; }\n    .grid-margin-x > .large-1 {\n      width: calc(8.33333% - 1.875rem); }\n    .grid-margin-x > .large-2 {\n      width: calc(16.66667% - 1.875rem); }\n    .grid-margin-x > .large-3 {\n      width: calc(25% - 1.875rem); }\n    .grid-margin-x > .large-4 {\n      width: calc(33.33333% - 1.875rem); }\n    .grid-margin-x > .large-5 {\n      width: calc(41.66667% - 1.875rem); }\n    .grid-margin-x > .large-6 {\n      width: calc(50% - 1.875rem); }\n    .grid-margin-x > .large-7 {\n      width: calc(58.33333% - 1.875rem); }\n    .grid-margin-x > .large-8 {\n      width: calc(66.66667% - 1.875rem); }\n    .grid-margin-x > .large-9 {\n      width: calc(75% - 1.875rem); }\n    .grid-margin-x > .large-10 {\n      width: calc(83.33333% - 1.875rem); }\n    .grid-margin-x > .large-11 {\n      width: calc(91.66667% - 1.875rem); }\n    .grid-margin-x > .large-12 {\n      width: calc(100% - 1.875rem); } }\n\n.grid-padding-x .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-container:not(.full) > .grid-padding-x {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-container:not(.full) > .grid-padding-x {\n      margin-right: -0.9375rem;\n      margin-left: -0.9375rem; } }\n\n.grid-padding-x > .cell {\n  padding-right: 0.625rem;\n  padding-left: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-x > .cell {\n      padding-right: 0.9375rem;\n      padding-left: 0.9375rem; } }\n\n.small-up-1 > .cell {\n  width: 100%; }\n\n.small-up-2 > .cell {\n  width: 50%; }\n\n.small-up-3 > .cell {\n  width: 33.33333%; }\n\n.small-up-4 > .cell {\n  width: 25%; }\n\n.small-up-5 > .cell {\n  width: 20%; }\n\n.small-up-6 > .cell {\n  width: 16.66667%; }\n\n.small-up-7 > .cell {\n  width: 14.28571%; }\n\n.small-up-8 > .cell {\n  width: 12.5%; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-up-1 > .cell {\n    width: 100%; }\n  .medium-up-2 > .cell {\n    width: 50%; }\n  .medium-up-3 > .cell {\n    width: 33.33333%; }\n  .medium-up-4 > .cell {\n    width: 25%; }\n  .medium-up-5 > .cell {\n    width: 20%; }\n  .medium-up-6 > .cell {\n    width: 16.66667%; }\n  .medium-up-7 > .cell {\n    width: 14.28571%; }\n  .medium-up-8 > .cell {\n    width: 12.5%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-up-1 > .cell {\n    width: 100%; }\n  .large-up-2 > .cell {\n    width: 50%; }\n  .large-up-3 > .cell {\n    width: 33.33333%; }\n  .large-up-4 > .cell {\n    width: 25%; }\n  .large-up-5 > .cell {\n    width: 20%; }\n  .large-up-6 > .cell {\n    width: 16.66667%; }\n  .large-up-7 > .cell {\n    width: 14.28571%; }\n  .large-up-8 > .cell {\n    width: 12.5%; } }\n\n.grid-margin-x.small-up-1 > .cell {\n  width: calc(100% - 1.25rem); }\n\n.grid-margin-x.small-up-2 > .cell {\n  width: calc(50% - 1.25rem); }\n\n.grid-margin-x.small-up-3 > .cell {\n  width: calc(33.33333% - 1.25rem); }\n\n.grid-margin-x.small-up-4 > .cell {\n  width: calc(25% - 1.25rem); }\n\n.grid-margin-x.small-up-5 > .cell {\n  width: calc(20% - 1.25rem); }\n\n.grid-margin-x.small-up-6 > .cell {\n  width: calc(16.66667% - 1.25rem); }\n\n.grid-margin-x.small-up-7 > .cell {\n  width: calc(14.28571% - 1.25rem); }\n\n.grid-margin-x.small-up-8 > .cell {\n  width: calc(12.5% - 1.25rem); }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-x.small-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.small-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.small-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.small-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.small-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.small-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.small-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.small-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); }\n  .grid-margin-x.medium-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.medium-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.medium-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.medium-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.medium-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.medium-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.medium-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.medium-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-x.large-up-1 > .cell {\n    width: calc(100% - 1.875rem); }\n  .grid-margin-x.large-up-2 > .cell {\n    width: calc(50% - 1.875rem); }\n  .grid-margin-x.large-up-3 > .cell {\n    width: calc(33.33333% - 1.875rem); }\n  .grid-margin-x.large-up-4 > .cell {\n    width: calc(25% - 1.875rem); }\n  .grid-margin-x.large-up-5 > .cell {\n    width: calc(20% - 1.875rem); }\n  .grid-margin-x.large-up-6 > .cell {\n    width: calc(16.66667% - 1.875rem); }\n  .grid-margin-x.large-up-7 > .cell {\n    width: calc(14.28571% - 1.875rem); }\n  .grid-margin-x.large-up-8 > .cell {\n    width: calc(12.5% - 1.875rem); } }\n\n.small-margin-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-margin-collapse > .cell {\n    margin-right: 0;\n    margin-left: 0; }\n  .small-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .small-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .small-margin-collapse > .small-3 {\n    width: 25%; }\n  .small-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .small-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .small-margin-collapse > .small-6 {\n    width: 50%; }\n  .small-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .small-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .small-margin-collapse > .small-9 {\n    width: 75%; }\n  .small-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .small-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .small-margin-collapse > .small-12 {\n    width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .small-margin-collapse > .medium-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .medium-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .medium-3 {\n      width: 25%; }\n    .small-margin-collapse > .medium-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .medium-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .medium-6 {\n      width: 50%; }\n    .small-margin-collapse > .medium-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .medium-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .medium-9 {\n      width: 75%; }\n    .small-margin-collapse > .medium-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .medium-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .medium-12 {\n      width: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .small-margin-collapse > .large-1 {\n      width: 8.33333%; }\n    .small-margin-collapse > .large-2 {\n      width: 16.66667%; }\n    .small-margin-collapse > .large-3 {\n      width: 25%; }\n    .small-margin-collapse > .large-4 {\n      width: 33.33333%; }\n    .small-margin-collapse > .large-5 {\n      width: 41.66667%; }\n    .small-margin-collapse > .large-6 {\n      width: 50%; }\n    .small-margin-collapse > .large-7 {\n      width: 58.33333%; }\n    .small-margin-collapse > .large-8 {\n      width: 66.66667%; }\n    .small-margin-collapse > .large-9 {\n      width: 75%; }\n    .small-margin-collapse > .large-10 {\n      width: 83.33333%; }\n    .small-margin-collapse > .large-11 {\n      width: 91.66667%; }\n    .small-margin-collapse > .large-12 {\n      width: 100%; } }\n\n.small-padding-collapse {\n  margin-right: 0;\n  margin-left: 0; }\n  .small-padding-collapse > .cell {\n    padding-right: 0;\n    padding-left: 0; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .small-3 {\n    width: 25%; }\n  .medium-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .small-6 {\n    width: 50%; }\n  .medium-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .small-9 {\n    width: 75%; }\n  .medium-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .medium-3 {\n    width: 25%; }\n  .medium-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .medium-6 {\n    width: 50%; }\n  .medium-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .medium-9 {\n    width: 75%; }\n  .medium-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .medium-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .medium-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .medium-margin-collapse > .large-3 {\n    width: 25%; }\n  .medium-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .medium-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .medium-margin-collapse > .large-6 {\n    width: 50%; }\n  .medium-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .medium-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .medium-margin-collapse > .large-9 {\n    width: 75%; }\n  .medium-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .medium-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .medium-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 40em) {\n  .medium-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .medium-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-margin-collapse > .cell {\n      margin-right: 0;\n      margin-left: 0; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .small-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .small-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .small-3 {\n    width: 25%; }\n  .large-margin-collapse > .small-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .small-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .small-6 {\n    width: 50%; }\n  .large-margin-collapse > .small-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .small-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .small-9 {\n    width: 75%; }\n  .large-margin-collapse > .small-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .small-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .small-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .medium-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .medium-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .medium-3 {\n    width: 25%; }\n  .large-margin-collapse > .medium-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .medium-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .medium-6 {\n    width: 50%; }\n  .large-margin-collapse > .medium-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .medium-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .medium-9 {\n    width: 75%; }\n  .large-margin-collapse > .medium-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .medium-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .medium-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-margin-collapse > .large-1 {\n    width: 8.33333%; }\n  .large-margin-collapse > .large-2 {\n    width: 16.66667%; }\n  .large-margin-collapse > .large-3 {\n    width: 25%; }\n  .large-margin-collapse > .large-4 {\n    width: 33.33333%; }\n  .large-margin-collapse > .large-5 {\n    width: 41.66667%; }\n  .large-margin-collapse > .large-6 {\n    width: 50%; }\n  .large-margin-collapse > .large-7 {\n    width: 58.33333%; }\n  .large-margin-collapse > .large-8 {\n    width: 66.66667%; }\n  .large-margin-collapse > .large-9 {\n    width: 75%; }\n  .large-margin-collapse > .large-10 {\n    width: 83.33333%; }\n  .large-margin-collapse > .large-11 {\n    width: 91.66667%; }\n  .large-margin-collapse > .large-12 {\n    width: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-padding-collapse {\n    margin-right: 0;\n    margin-left: 0; }\n    .large-padding-collapse > .cell {\n      padding-right: 0;\n      padding-left: 0; } }\n\n.small-offset-0 {\n  margin-left: 0%; }\n\n.grid-margin-x > .small-offset-0 {\n  margin-left: calc(0% + 1.25rem / 2); }\n\n.small-offset-1 {\n  margin-left: 8.33333%; }\n\n.grid-margin-x > .small-offset-1 {\n  margin-left: calc(8.33333% + 1.25rem / 2); }\n\n.small-offset-2 {\n  margin-left: 16.66667%; }\n\n.grid-margin-x > .small-offset-2 {\n  margin-left: calc(16.66667% + 1.25rem / 2); }\n\n.small-offset-3 {\n  margin-left: 25%; }\n\n.grid-margin-x > .small-offset-3 {\n  margin-left: calc(25% + 1.25rem / 2); }\n\n.small-offset-4 {\n  margin-left: 33.33333%; }\n\n.grid-margin-x > .small-offset-4 {\n  margin-left: calc(33.33333% + 1.25rem / 2); }\n\n.small-offset-5 {\n  margin-left: 41.66667%; }\n\n.grid-margin-x > .small-offset-5 {\n  margin-left: calc(41.66667% + 1.25rem / 2); }\n\n.small-offset-6 {\n  margin-left: 50%; }\n\n.grid-margin-x > .small-offset-6 {\n  margin-left: calc(50% + 1.25rem / 2); }\n\n.small-offset-7 {\n  margin-left: 58.33333%; }\n\n.grid-margin-x > .small-offset-7 {\n  margin-left: calc(58.33333% + 1.25rem / 2); }\n\n.small-offset-8 {\n  margin-left: 66.66667%; }\n\n.grid-margin-x > .small-offset-8 {\n  margin-left: calc(66.66667% + 1.25rem / 2); }\n\n.small-offset-9 {\n  margin-left: 75%; }\n\n.grid-margin-x > .small-offset-9 {\n  margin-left: calc(75% + 1.25rem / 2); }\n\n.small-offset-10 {\n  margin-left: 83.33333%; }\n\n.grid-margin-x > .small-offset-10 {\n  margin-left: calc(83.33333% + 1.25rem / 2); }\n\n.small-offset-11 {\n  margin-left: 91.66667%; }\n\n.grid-margin-x > .small-offset-11 {\n  margin-left: calc(91.66667% + 1.25rem / 2); }\n\n@media print, screen and (min-width: 40em) {\n  .medium-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .medium-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .medium-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .medium-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .medium-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .medium-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .medium-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .medium-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .medium-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .medium-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .medium-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .medium-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .medium-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .medium-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .medium-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .medium-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .medium-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .medium-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .medium-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .medium-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .medium-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .medium-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .medium-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .medium-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n@media print, screen and (min-width: 64em) {\n  .large-offset-0 {\n    margin-left: 0%; }\n  .grid-margin-x > .large-offset-0 {\n    margin-left: calc(0% + 1.875rem / 2); }\n  .large-offset-1 {\n    margin-left: 8.33333%; }\n  .grid-margin-x > .large-offset-1 {\n    margin-left: calc(8.33333% + 1.875rem / 2); }\n  .large-offset-2 {\n    margin-left: 16.66667%; }\n  .grid-margin-x > .large-offset-2 {\n    margin-left: calc(16.66667% + 1.875rem / 2); }\n  .large-offset-3 {\n    margin-left: 25%; }\n  .grid-margin-x > .large-offset-3 {\n    margin-left: calc(25% + 1.875rem / 2); }\n  .large-offset-4 {\n    margin-left: 33.33333%; }\n  .grid-margin-x > .large-offset-4 {\n    margin-left: calc(33.33333% + 1.875rem / 2); }\n  .large-offset-5 {\n    margin-left: 41.66667%; }\n  .grid-margin-x > .large-offset-5 {\n    margin-left: calc(41.66667% + 1.875rem / 2); }\n  .large-offset-6 {\n    margin-left: 50%; }\n  .grid-margin-x > .large-offset-6 {\n    margin-left: calc(50% + 1.875rem / 2); }\n  .large-offset-7 {\n    margin-left: 58.33333%; }\n  .grid-margin-x > .large-offset-7 {\n    margin-left: calc(58.33333% + 1.875rem / 2); }\n  .large-offset-8 {\n    margin-left: 66.66667%; }\n  .grid-margin-x > .large-offset-8 {\n    margin-left: calc(66.66667% + 1.875rem / 2); }\n  .large-offset-9 {\n    margin-left: 75%; }\n  .grid-margin-x > .large-offset-9 {\n    margin-left: calc(75% + 1.875rem / 2); }\n  .large-offset-10 {\n    margin-left: 83.33333%; }\n  .grid-margin-x > .large-offset-10 {\n    margin-left: calc(83.33333% + 1.875rem / 2); }\n  .large-offset-11 {\n    margin-left: 91.66667%; }\n  .grid-margin-x > .large-offset-11 {\n    margin-left: calc(91.66667% + 1.875rem / 2); } }\n\n.grid-y {\n  display: flex;\n  flex-flow: column nowrap; }\n  .grid-y > .cell {\n    height: auto;\n    max-height: none; }\n  .grid-y > .auto {\n    height: auto; }\n  .grid-y > .shrink {\n    height: auto; }\n  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex-basis: auto; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex-basis: auto; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex-basis: auto; } }\n  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {\n    flex: 0 0 auto; }\n  .grid-y > .small-1 {\n    height: 8.33333%; }\n  .grid-y > .small-2 {\n    height: 16.66667%; }\n  .grid-y > .small-3 {\n    height: 25%; }\n  .grid-y > .small-4 {\n    height: 33.33333%; }\n  .grid-y > .small-5 {\n    height: 41.66667%; }\n  .grid-y > .small-6 {\n    height: 50%; }\n  .grid-y > .small-7 {\n    height: 58.33333%; }\n  .grid-y > .small-8 {\n    height: 66.66667%; }\n  .grid-y > .small-9 {\n    height: 75%; }\n  .grid-y > .small-10 {\n    height: 83.33333%; }\n  .grid-y > .small-11 {\n    height: 91.66667%; }\n  .grid-y > .small-12 {\n    height: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .grid-y > .medium-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {\n      flex: 0 0 auto; }\n    .grid-y > .medium-shrink {\n      height: auto; }\n    .grid-y > .medium-1 {\n      height: 8.33333%; }\n    .grid-y > .medium-2 {\n      height: 16.66667%; }\n    .grid-y > .medium-3 {\n      height: 25%; }\n    .grid-y > .medium-4 {\n      height: 33.33333%; }\n    .grid-y > .medium-5 {\n      height: 41.66667%; }\n    .grid-y > .medium-6 {\n      height: 50%; }\n    .grid-y > .medium-7 {\n      height: 58.33333%; }\n    .grid-y > .medium-8 {\n      height: 66.66667%; }\n    .grid-y > .medium-9 {\n      height: 75%; }\n    .grid-y > .medium-10 {\n      height: 83.33333%; }\n    .grid-y > .medium-11 {\n      height: 91.66667%; }\n    .grid-y > .medium-12 {\n      height: 100%; } }\n  @media print, screen and (min-width: 64em) {\n    .grid-y > .large-auto {\n      flex: 1 1 0;\n      height: auto; }\n    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {\n      flex: 0 0 auto; }\n    .grid-y > .large-shrink {\n      height: auto; }\n    .grid-y > .large-1 {\n      height: 8.33333%; }\n    .grid-y > .large-2 {\n      height: 16.66667%; }\n    .grid-y > .large-3 {\n      height: 25%; }\n    .grid-y > .large-4 {\n      height: 33.33333%; }\n    .grid-y > .large-5 {\n      height: 41.66667%; }\n    .grid-y > .large-6 {\n      height: 50%; }\n    .grid-y > .large-7 {\n      height: 58.33333%; }\n    .grid-y > .large-8 {\n      height: 66.66667%; }\n    .grid-y > .large-9 {\n      height: 75%; }\n    .grid-y > .large-10 {\n      height: 83.33333%; }\n    .grid-y > .large-11 {\n      height: 91.66667%; }\n    .grid-y > .large-12 {\n      height: 100%; } }\n\n.grid-padding-y .grid-padding-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y .grid-padding-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n\n.grid-padding-y > .cell {\n  padding-top: 0.625rem;\n  padding-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-padding-y > .cell {\n      padding-top: 0.9375rem;\n      padding-bottom: 0.9375rem; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  width: 100vw; }\n\n.cell .grid-frame {\n  width: 100%; }\n\n.cell-block {\n  overflow-x: auto;\n  max-width: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-y {\n  overflow-y: auto;\n  max-height: 100%;\n  min-height: 100%;\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar; }\n\n.cell-block-container {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%; }\n  .cell-block-container > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .medium-grid-frame {\n    width: 100%; }\n  .medium-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .medium-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .medium-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .medium-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    width: 100vw; }\n  .cell .large-grid-frame {\n    width: 100%; }\n  .large-cell-block {\n    overflow-x: auto;\n    max-width: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; }\n  .large-cell-block-container {\n    display: flex;\n    flex-direction: column;\n    max-height: 100%; }\n    .large-cell-block-container > .grid-x {\n      max-height: 100%;\n      flex-wrap: nowrap; }\n  .large-cell-block-y {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar; } }\n\n.grid-y.grid-frame {\n  overflow: hidden;\n  position: relative;\n  flex-wrap: nowrap;\n  align-items: stretch;\n  height: 100vh;\n  width: auto; }\n\n@media print, screen and (min-width: 40em) {\n  .grid-y.medium-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-y.large-grid-frame {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n    height: 100vh;\n    width: auto; } }\n\n.cell .grid-y.grid-frame {\n  height: 100%; }\n\n@media print, screen and (min-width: 40em) {\n  .cell .grid-y.medium-grid-frame {\n    height: 100%; } }\n\n@media print, screen and (min-width: 64em) {\n  .cell .grid-y.large-grid-frame {\n    height: 100%; } }\n\n.grid-margin-y {\n  margin-top: -0.625rem;\n  margin-bottom: -0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y {\n      margin-top: -0.9375rem;\n      margin-bottom: -0.9375rem; } }\n  .grid-margin-y > .cell {\n    height: calc(100% - 1.25rem);\n    margin-top: 0.625rem;\n    margin-bottom: 0.625rem; }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .cell {\n      height: calc(100% - 1.875rem);\n      margin-top: 0.9375rem;\n      margin-bottom: 0.9375rem; } }\n  .grid-margin-y > .auto {\n    height: auto; }\n  .grid-margin-y > .shrink {\n    height: auto; }\n  .grid-margin-y > .small-1 {\n    height: calc(8.33333% - 1.25rem); }\n  .grid-margin-y > .small-2 {\n    height: calc(16.66667% - 1.25rem); }\n  .grid-margin-y > .small-3 {\n    height: calc(25% - 1.25rem); }\n  .grid-margin-y > .small-4 {\n    height: calc(33.33333% - 1.25rem); }\n  .grid-margin-y > .small-5 {\n    height: calc(41.66667% - 1.25rem); }\n  .grid-margin-y > .small-6 {\n    height: calc(50% - 1.25rem); }\n  .grid-margin-y > .small-7 {\n    height: calc(58.33333% - 1.25rem); }\n  .grid-margin-y > .small-8 {\n    height: calc(66.66667% - 1.25rem); }\n  .grid-margin-y > .small-9 {\n    height: calc(75% - 1.25rem); }\n  .grid-margin-y > .small-10 {\n    height: calc(83.33333% - 1.25rem); }\n  .grid-margin-y > .small-11 {\n    height: calc(91.66667% - 1.25rem); }\n  .grid-margin-y > .small-12 {\n    height: calc(100% - 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-margin-y > .auto {\n      height: auto; }\n    .grid-margin-y > .shrink {\n      height: auto; }\n    .grid-margin-y > .small-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .small-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .small-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .small-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .small-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .small-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .small-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .small-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .small-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .small-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .small-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .small-12 {\n      height: calc(100% - 1.875rem); }\n    .grid-margin-y > .medium-auto {\n      height: auto; }\n    .grid-margin-y > .medium-shrink {\n      height: auto; }\n    .grid-margin-y > .medium-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .medium-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .medium-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .medium-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .medium-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .medium-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .medium-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .medium-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .medium-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .medium-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .medium-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .medium-12 {\n      height: calc(100% - 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-margin-y > .large-auto {\n      height: auto; }\n    .grid-margin-y > .large-shrink {\n      height: auto; }\n    .grid-margin-y > .large-1 {\n      height: calc(8.33333% - 1.875rem); }\n    .grid-margin-y > .large-2 {\n      height: calc(16.66667% - 1.875rem); }\n    .grid-margin-y > .large-3 {\n      height: calc(25% - 1.875rem); }\n    .grid-margin-y > .large-4 {\n      height: calc(33.33333% - 1.875rem); }\n    .grid-margin-y > .large-5 {\n      height: calc(41.66667% - 1.875rem); }\n    .grid-margin-y > .large-6 {\n      height: calc(50% - 1.875rem); }\n    .grid-margin-y > .large-7 {\n      height: calc(58.33333% - 1.875rem); }\n    .grid-margin-y > .large-8 {\n      height: calc(66.66667% - 1.875rem); }\n    .grid-margin-y > .large-9 {\n      height: calc(75% - 1.875rem); }\n    .grid-margin-y > .large-10 {\n      height: calc(83.33333% - 1.875rem); }\n    .grid-margin-y > .large-11 {\n      height: calc(91.66667% - 1.875rem); }\n    .grid-margin-y > .large-12 {\n      height: calc(100% - 1.875rem); } }\n\n.grid-frame.grid-margin-y {\n  height: calc(100vh + 1.25rem); }\n  @media print, screen and (min-width: 40em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n  @media print, screen and (min-width: 64em) {\n    .grid-frame.grid-margin-y {\n      height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 40em) {\n  .grid-margin-y.medium-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n@media print, screen and (min-width: 64em) {\n  .grid-margin-y.large-grid-frame {\n    height: calc(100vh + 1.875rem); } }\n\n.button {\n  display: inline-block;\n  vertical-align: middle;\n  margin: 0 0 1rem 0;\n  padding: 0.85em 1em;\n  border: 1px solid transparent;\n  border-radius: 0;\n  transition: background-color 0.25s ease-out, color 0.25s ease-out;\n  font-family: inherit;\n  font-size: 0.9rem;\n  -webkit-appearance: none;\n  line-height: 1;\n  text-align: center;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .button {\n    outline: 0; }\n  .button.tiny {\n    font-size: 0.6rem; }\n  .button.small {\n    font-size: 0.75rem; }\n  .button.large {\n    font-size: 1.25rem; }\n  .button.expanded {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0; }\n  .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button:hover, .button:focus {\n    background-color: #14679e;\n    color: #fefefe; }\n  .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button.primary:hover, .button.primary:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button.secondary:hover, .button.secondary:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button.success:hover, .button.success:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button.warning:hover, .button.warning:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button.alert:hover, .button.alert:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {\n    background-color: transparent; }\n  .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow:hover, .button.hollow:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button.hollow.primary:hover, .button.hollow.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button.hollow.secondary:hover, .button.hollow.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button.hollow.success:hover, .button.hollow.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button.hollow.warning:hover, .button.hollow.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button.hollow.alert:hover, .button.hollow.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {\n    color: #1779ba; }\n  .button.clear:hover, .button.clear:focus {\n    color: #0c3d5d; }\n  .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {\n    color: #1779ba; }\n  .button.clear.primary:hover, .button.clear.primary:focus {\n    color: #0c3d5d; }\n  .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {\n    color: #767676; }\n  .button.clear.secondary:hover, .button.clear.secondary:focus {\n    color: #3b3b3b; }\n  .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {\n    color: #3adb76; }\n  .button.clear.success:hover, .button.clear.success:focus {\n    color: #157539; }\n  .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {\n    color: #ffae00; }\n  .button.clear.warning:hover, .button.clear.warning:focus {\n    color: #805700; }\n  .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button.clear.alert:hover, .button.clear.alert:focus {\n    color: #67251a; }\n  .button.disabled, .button[disabled] {\n    opacity: 0.25;\n    cursor: not-allowed; }\n  .button.dropdown::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.4em;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #fefefe transparent transparent;\n    position: relative;\n    top: 0.4em;\n    display: inline-block;\n    float: right;\n    margin-left: 1em; }\n  .button.dropdown.hollow::after, .button.dropdown.clear::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {\n    border-top-color: #1779ba; }\n  .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {\n    border-top-color: #767676; }\n  .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {\n    border-top-color: #3adb76; }\n  .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {\n    border-top-color: #ffae00; }\n  .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {\n    border-top-color: #cc4b37; }\n  .button.arrow-only::after {\n    top: -0.1em;\n    float: none;\n    margin-left: 0; }\n\na.button:hover, a.button:focus {\n  text-decoration: none; }\n\n.button-group {\n  margin-bottom: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: stretch;\n  flex-grow: 1; }\n  .button-group::before, .button-group::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .button-group::after {\n    clear: both; }\n  .button-group::before, .button-group::after {\n    display: none; }\n  .button-group .button {\n    margin: 0;\n    margin-right: 1px;\n    margin-bottom: 1px;\n    font-size: 0.9rem;\n    flex: 0 0 auto; }\n    .button-group .button:last-child {\n      margin-right: 0; }\n  .button-group.tiny .button {\n    font-size: 0.6rem; }\n  .button-group.small .button {\n    font-size: 0.75rem; }\n  .button-group.large .button {\n    font-size: 1.25rem; }\n  .button-group.expanded .button {\n    flex: 1 1 0px; }\n  .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {\n    background-color: #1779ba;\n    color: #fefefe; }\n  .button-group.primary .button:hover, .button-group.primary .button:focus {\n    background-color: #126195;\n    color: #fefefe; }\n  .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {\n    background-color: #767676;\n    color: #fefefe; }\n  .button-group.secondary .button:hover, .button-group.secondary .button:focus {\n    background-color: #5e5e5e;\n    color: #fefefe; }\n  .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {\n    background-color: #3adb76;\n    color: #0a0a0a; }\n  .button-group.success .button:hover, .button-group.success .button:focus {\n    background-color: #22bb5b;\n    color: #0a0a0a; }\n  .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {\n    background-color: #ffae00;\n    color: #0a0a0a; }\n  .button-group.warning .button:hover, .button-group.warning .button:focus {\n    background-color: #cc8b00;\n    color: #0a0a0a; }\n  .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {\n    background-color: #cc4b37;\n    color: #fefefe; }\n  .button-group.alert .button:hover, .button-group.alert .button:focus {\n    background-color: #a53b2a;\n    color: #fefefe; }\n  .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {\n    background-color: transparent; }\n  .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow .button:hover, .button-group.hollow .button:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {\n    border: 1px solid #1779ba;\n    color: #1779ba; }\n  .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {\n    border-color: #0c3d5d;\n    color: #0c3d5d; }\n  .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {\n    border: 1px solid #767676;\n    color: #767676; }\n  .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {\n    border-color: #3b3b3b;\n    color: #3b3b3b; }\n  .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {\n    border: 1px solid #3adb76;\n    color: #3adb76; }\n  .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {\n    border-color: #157539;\n    color: #157539; }\n  .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {\n    border: 1px solid #ffae00;\n    color: #ffae00; }\n  .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {\n    border-color: #805700;\n    color: #805700; }\n  .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {\n    border: 1px solid #cc4b37;\n    color: #cc4b37; }\n  .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {\n    border-color: #67251a;\n    color: #67251a; }\n  .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {\n    border-color: transparent;\n    background-color: transparent; }\n  .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear .button:hover, .button-group.clear .button:focus {\n    color: #0c3d5d; }\n  .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {\n    color: #1779ba; }\n  .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {\n    color: #0c3d5d; }\n  .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {\n    color: #767676; }\n  .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {\n    color: #3b3b3b; }\n  .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {\n    color: #3adb76; }\n  .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {\n    color: #157539; }\n  .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {\n    color: #ffae00; }\n  .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {\n    color: #805700; }\n  .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {\n    color: #cc4b37; }\n  .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {\n    color: #67251a; }\n  .button-group.no-gaps .button {\n    margin-right: -0.0625rem; }\n    .button-group.no-gaps .button + .button {\n      border-left-color: transparent; }\n  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {\n    flex-wrap: wrap; }\n    .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {\n      flex: 0 0 100%; }\n      .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {\n        margin-bottom: 0; }\n    .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {\n      flex: 1 1 0px; }\n  @media print, screen and (min-width: 40em) {\n    .button-group.stacked-for-small .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (min-width: 64em) {\n    .button-group.stacked-for-medium .button {\n      flex: 0 0 auto;\n      margin-bottom: 0; } }\n  @media print, screen and (max-width: 39.99875em) {\n    .button-group.stacked-for-small.expanded {\n      display: block; }\n      .button-group.stacked-for-small.expanded .button {\n        display: block;\n        margin-right: 0; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .button-group.stacked-for-medium.expanded {\n      display: block; }\n      .button-group.stacked-for-medium.expanded .button {\n        display: block;\n        margin-right: 0; } }\n\n.close-button {\n  position: absolute;\n  z-index: 10;\n  color: #8a8a8a;\n  cursor: pointer; }\n  [data-whatinput='mouse'] .close-button {\n    outline: 0; }\n  .close-button:hover, .close-button:focus {\n    color: #0a0a0a; }\n  .close-button.small {\n    right: 0.66rem;\n    top: 0.33em;\n    font-size: 1.5em;\n    line-height: 1; }\n  .close-button, .close-button.medium {\n    right: 1rem;\n    top: 0.5rem;\n    font-size: 2em;\n    line-height: 1; }\n\n.label {\n  display: inline-block;\n  padding: 0.33333rem 0.5rem;\n  border-radius: 0;\n  font-size: 0.8rem;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n  background: #1779ba;\n  color: #fefefe; }\n  .label.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .label.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .label.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .label.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .label.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.progress {\n  height: 1rem;\n  margin-bottom: 1rem;\n  border-radius: 0;\n  background-color: #cacaca; }\n  .progress.primary .progress-meter {\n    background-color: #1779ba; }\n  .progress.secondary .progress-meter {\n    background-color: #767676; }\n  .progress.success .progress-meter {\n    background-color: #3adb76; }\n  .progress.warning .progress-meter {\n    background-color: #ffae00; }\n  .progress.alert .progress-meter {\n    background-color: #cc4b37; }\n\n.progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: #1779ba; }\n\n.progress-meter-text {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: #fefefe;\n  white-space: nowrap; }\n\n.slider {\n  position: relative;\n  height: 0.5rem;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n  background-color: #e6e6e6;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none; }\n\n.slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: inline-block;\n  max-width: 100%;\n  height: 0.5rem;\n  background-color: #cacaca;\n  transition: all 0.2s ease-in-out; }\n  .slider-fill.is-dragging {\n    transition: all 0s linear; }\n\n.slider-handle {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n  display: inline-block;\n  width: 1.4rem;\n  height: 1.4rem;\n  border-radius: 0;\n  background-color: #1779ba;\n  transition: all 0.2s ease-in-out;\n  touch-action: manipulation; }\n  [data-whatinput='mouse'] .slider-handle {\n    outline: 0; }\n  .slider-handle:hover {\n    background-color: #14679e; }\n  .slider-handle.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing; }\n\n.slider.disabled,\n.slider[disabled] {\n  opacity: 0.25;\n  cursor: not-allowed; }\n\n.slider.vertical {\n  display: inline-block;\n  width: 0.5rem;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1); }\n  .slider.vertical .slider-fill {\n    top: 0;\n    width: 0.5rem;\n    max-height: 100%; }\n  .slider.vertical .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 1.4rem;\n    height: 1.4rem;\n    transform: translateX(-50%); }\n\n.switch {\n  position: relative;\n  margin-bottom: 1rem;\n  outline: 0;\n  font-size: 0.875rem;\n  font-weight: bold;\n  color: #fefefe;\n  user-select: none;\n  height: 2rem; }\n\n.switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0; }\n\n.switch-paddle {\n  position: relative;\n  display: block;\n  width: 4rem;\n  height: 2rem;\n  border-radius: 0;\n  background: #cacaca;\n  transition: all 0.25s ease-out;\n  font-weight: inherit;\n  color: inherit;\n  cursor: pointer; }\n  input + .switch-paddle {\n    margin: 0; }\n  .switch-paddle::after {\n    position: absolute;\n    top: 0.25rem;\n    left: 0.25rem;\n    display: block;\n    width: 1.5rem;\n    height: 1.5rem;\n    transform: translate3d(0, 0, 0);\n    border-radius: 0;\n    background: #fefefe;\n    transition: all 0.25s ease-out;\n    content: ''; }\n  input:checked ~ .switch-paddle {\n    background: #1779ba; }\n    input:checked ~ .switch-paddle::after {\n      left: 2.25rem; }\n  input:disabled ~ .switch-paddle {\n    cursor: not-allowed;\n    opacity: 0.5; }\n  [data-whatinput='mouse'] input:focus ~ .switch-paddle {\n    outline: 0; }\n\n.switch-active, .switch-inactive {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.switch-active {\n  left: 8%;\n  display: none; }\n  input:checked + label > .switch-active {\n    display: block; }\n\n.switch-inactive {\n  right: 15%; }\n  input:checked + label > .switch-inactive {\n    display: none; }\n\n.switch.tiny {\n  height: 1.5rem; }\n  .switch.tiny .switch-paddle {\n    width: 3rem;\n    height: 1.5rem;\n    font-size: 0.625rem; }\n  .switch.tiny .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1rem;\n    height: 1rem; }\n  .switch.tiny input:checked ~ .switch-paddle::after {\n    left: 1.75rem; }\n\n.switch.small {\n  height: 1.75rem; }\n  .switch.small .switch-paddle {\n    width: 3.5rem;\n    height: 1.75rem;\n    font-size: 0.75rem; }\n  .switch.small .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 1.25rem;\n    height: 1.25rem; }\n  .switch.small input:checked ~ .switch-paddle::after {\n    left: 2rem; }\n\n.switch.large {\n  height: 2.5rem; }\n  .switch.large .switch-paddle {\n    width: 5rem;\n    height: 2.5rem;\n    font-size: 1rem; }\n  .switch.large .switch-paddle::after {\n    top: 0.25rem;\n    left: 0.25rem;\n    width: 2rem;\n    height: 2rem; }\n  .switch.large input:checked ~ .switch-paddle::after {\n    left: 2.75rem; }\n\ntable {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: 1rem;\n  border-radius: 0; }\n  thead,\n  tbody,\n  tfoot {\n    border: 1px solid #f1f1f1;\n    background-color: #fefefe; }\n  caption {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold; }\n  thead {\n    background: #f8f8f8;\n    color: #0a0a0a; }\n  tfoot {\n    background: #f1f1f1;\n    color: #0a0a0a; }\n  thead tr,\n  tfoot tr {\n    background: transparent; }\n  thead th,\n  thead td,\n  tfoot th,\n  tfoot td {\n    padding: 0.5rem 0.625rem 0.625rem;\n    font-weight: bold;\n    text-align: left; }\n  tbody th,\n  tbody td {\n    padding: 0.5rem 0.625rem 0.625rem; }\n  tbody tr:nth-child(even) {\n    border-bottom: 0;\n    background-color: #f1f1f1; }\n  table.unstriped tbody {\n    background-color: #fefefe; }\n    table.unstriped tbody tr {\n      border-bottom: 1px solid #f1f1f1;\n      background-color: #fefefe; }\n\n@media print, screen and (max-width: 63.99875em) {\n  table.stack thead {\n    display: none; }\n  table.stack tfoot {\n    display: none; }\n  table.stack tr,\n  table.stack th,\n  table.stack td {\n    display: block; }\n  table.stack td {\n    border-top: 0; } }\n\ntable.scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto; }\n\ntable.hover thead tr:hover {\n  background-color: #f3f3f3; }\n\ntable.hover tfoot tr:hover {\n  background-color: #ececec; }\n\ntable.hover tbody tr:hover {\n  background-color: #f9f9f9; }\n\ntable.hover:not(.unstriped) tr:nth-of-type(even):hover {\n  background-color: #ececec; }\n\n.table-scroll {\n  overflow-x: auto; }\n\n.badge {\n  display: inline-block;\n  min-width: 2.1em;\n  padding: 0.3em;\n  border-radius: 50%;\n  font-size: 0.6rem;\n  text-align: center;\n  background: #1779ba;\n  color: #fefefe; }\n  .badge.primary {\n    background: #1779ba;\n    color: #fefefe; }\n  .badge.secondary {\n    background: #767676;\n    color: #fefefe; }\n  .badge.success {\n    background: #3adb76;\n    color: #0a0a0a; }\n  .badge.warning {\n    background: #ffae00;\n    color: #0a0a0a; }\n  .badge.alert {\n    background: #cc4b37;\n    color: #fefefe; }\n\n.breadcrumbs {\n  margin: 0 0 1rem 0;\n  list-style: none; }\n  .breadcrumbs::before, .breadcrumbs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .breadcrumbs::after {\n    clear: both; }\n  .breadcrumbs li {\n    float: left;\n    font-size: 0.6875rem;\n    color: #0a0a0a;\n    cursor: default;\n    text-transform: uppercase; }\n    .breadcrumbs li:not(:last-child)::after {\n      position: relative;\n      margin: 0 0.75rem;\n      opacity: 1;\n      content: \"/\";\n      color: #cacaca; }\n  .breadcrumbs a {\n    color: #1779ba; }\n    .breadcrumbs a:hover {\n      text-decoration: underline; }\n  .breadcrumbs .disabled {\n    color: #cacaca;\n    cursor: not-allowed; }\n\n.callout {\n  position: relative;\n  margin: 0 0 1rem 0;\n  padding: 1rem;\n  border: 1px solid rgba(10, 10, 10, 0.25);\n  border-radius: 0;\n  background-color: white;\n  color: #0a0a0a; }\n  .callout > :first-child {\n    margin-top: 0; }\n  .callout > :last-child {\n    margin-bottom: 0; }\n  .callout.primary {\n    background-color: #d7ecfa;\n    color: #0a0a0a; }\n  .callout.secondary {\n    background-color: #eaeaea;\n    color: #0a0a0a; }\n  .callout.success {\n    background-color: #e1faea;\n    color: #0a0a0a; }\n  .callout.warning {\n    background-color: #fff3d9;\n    color: #0a0a0a; }\n  .callout.alert {\n    background-color: #f7e4e1;\n    color: #0a0a0a; }\n  .callout.small {\n    padding-top: 0.5rem;\n    padding-right: 0.5rem;\n    padding-bottom: 0.5rem;\n    padding-left: 0.5rem; }\n  .callout.large {\n    padding-top: 3rem;\n    padding-right: 3rem;\n    padding-bottom: 3rem;\n    padding-left: 3rem; }\n\n.card {\n  display: flex;\n  flex-direction: column;\n  flex-grow: 1;\n  margin-bottom: 1rem;\n  border: 1px solid #e6e6e6;\n  border-radius: 0;\n  background: #fefefe;\n  box-shadow: none;\n  overflow: hidden;\n  color: #0a0a0a; }\n  .card > :last-child {\n    margin-bottom: 0; }\n\n.card-divider {\n  display: flex;\n  flex: 0 1 auto;\n  padding: 1rem;\n  background: #e6e6e6; }\n  .card-divider > :last-child {\n    margin-bottom: 0; }\n\n.card-section {\n  flex: 1 0 auto;\n  padding: 1rem; }\n  .card-section > :last-child {\n    margin-bottom: 0; }\n\n.card-image {\n  min-height: 1px; }\n\n.dropdown-pane {\n  position: absolute;\n  z-index: 10;\n  display: none;\n  width: 300px;\n  padding: 1rem;\n  visibility: hidden;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  font-size: 1rem; }\n  .dropdown-pane.is-opening {\n    display: block; }\n  .dropdown-pane.is-open {\n    display: block;\n    visibility: visible; }\n\n.dropdown-pane.tiny {\n  width: 100px; }\n\n.dropdown-pane.small {\n  width: 200px; }\n\n.dropdown-pane.large {\n  width: 400px; }\n\n.pagination {\n  margin-left: 0;\n  margin-bottom: 1rem; }\n  .pagination::before, .pagination::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .pagination::after {\n    clear: both; }\n  .pagination li {\n    margin-right: 0.0625rem;\n    border-radius: 0;\n    font-size: 0.875rem;\n    display: none; }\n    .pagination li:last-child, .pagination li:first-child {\n      display: inline-block; }\n    @media print, screen and (min-width: 40em) {\n      .pagination li {\n        display: inline-block; } }\n  .pagination a,\n  .pagination button {\n    display: block;\n    padding: 0.1875rem 0.625rem;\n    border-radius: 0;\n    color: #0a0a0a; }\n    .pagination a:hover,\n    .pagination button:hover {\n      background: #e6e6e6; }\n  .pagination .current {\n    padding: 0.1875rem 0.625rem;\n    background: #1779ba;\n    color: #fefefe;\n    cursor: default; }\n  .pagination .disabled {\n    padding: 0.1875rem 0.625rem;\n    color: #cacaca;\n    cursor: not-allowed; }\n    .pagination .disabled:hover {\n      background: transparent; }\n  .pagination .ellipsis::after {\n    padding: 0.1875rem 0.625rem;\n    content: '\\2026';\n    color: #0a0a0a; }\n\n.pagination-previous a::before,\n.pagination-previous.disabled::before {\n  display: inline-block;\n  margin-right: 0.5rem;\n  content: \"«\"; }\n\n.pagination-next a::after,\n.pagination-next.disabled::after {\n  display: inline-block;\n  margin-left: 0.5rem;\n  content: \"»\"; }\n\n.has-tip {\n  position: relative;\n  display: inline-block;\n  border-bottom: dotted 1px #8a8a8a;\n  font-weight: bold;\n  cursor: help; }\n\n.tooltip {\n  position: absolute;\n  top: calc(100% + 0.6495rem);\n  z-index: 1200;\n  max-width: 10rem;\n  padding: 0.75rem;\n  border-radius: 0;\n  background-color: #0a0a0a;\n  font-size: 80%;\n  color: #fefefe; }\n  .tooltip::before {\n    position: absolute; }\n  .tooltip.bottom::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-top-width: 0;\n    border-color: transparent transparent #0a0a0a;\n    bottom: 100%; }\n  .tooltip.bottom.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.top::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #0a0a0a transparent transparent;\n    top: 100%;\n    bottom: auto; }\n  .tooltip.top.align-center::before {\n    left: 50%;\n    transform: translateX(-50%); }\n  .tooltip.left::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #0a0a0a;\n    left: 100%; }\n  .tooltip.left.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.right::before {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 0.75rem;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #0a0a0a transparent transparent;\n    right: 100%;\n    left: auto; }\n  .tooltip.right.align-center::before {\n    bottom: auto;\n    top: 50%;\n    transform: translateY(-50%); }\n  .tooltip.align-top::before {\n    bottom: auto;\n    top: 10%; }\n  .tooltip.align-bottom::before {\n    bottom: 10%;\n    top: auto; }\n  .tooltip.align-left::before {\n    left: 10%;\n    right: auto; }\n  .tooltip.align-right::before {\n    left: auto;\n    right: 10%; }\n\n.accordion {\n  margin-left: 0;\n  background: #fefefe;\n  list-style-type: none; }\n  .accordion[disabled] .accordion-title {\n    cursor: not-allowed; }\n\n.accordion-item:first-child > :first-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-item:last-child > :last-child {\n  border-radius: 0 0 0 0; }\n\n.accordion-title {\n  position: relative;\n  display: block;\n  padding: 1.25rem 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  font-size: 0.75rem;\n  line-height: 1;\n  color: #1779ba; }\n  :last-child:not(.is-active) > .accordion-title {\n    border-bottom: 1px solid #e6e6e6;\n    border-radius: 0 0 0 0; }\n  .accordion-title:hover, .accordion-title:focus {\n    background-color: #e6e6e6; }\n  .accordion-title::before {\n    position: absolute;\n    top: 50%;\n    right: 1rem;\n    margin-top: -0.5rem;\n    content: \"+\"; }\n  .is-active > .accordion-title::before {\n    content: \"–\"; }\n\n.accordion-content {\n  display: none;\n  padding: 1rem;\n  border: 1px solid #e6e6e6;\n  border-bottom: 0;\n  background-color: #fefefe;\n  color: #0a0a0a; }\n  :last-child > .accordion-content:last-child {\n    border-bottom: 1px solid #e6e6e6; }\n\n.media-object {\n  display: flex;\n  margin-bottom: 1rem;\n  flex-wrap: nowrap; }\n  .media-object img {\n    max-width: none; }\n  @media print, screen and (max-width: 39.99875em) {\n    .media-object.stack-for-small {\n      flex-wrap: wrap; } }\n\n.media-object-section {\n  flex: 0 1 auto; }\n  .media-object-section:first-child {\n    padding-right: 1rem; }\n  .media-object-section:last-child:not(:nth-child(2)) {\n    padding-left: 1rem; }\n  .media-object-section > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .stack-for-small .media-object-section {\n      padding: 0;\n      padding-bottom: 1rem;\n      flex-basis: 100%;\n      max-width: 100%; }\n      .stack-for-small .media-object-section img {\n        width: 100%; } }\n  .media-object-section.main-section {\n    flex: 1 1 0px; }\n\n.orbit {\n  position: relative; }\n\n.orbit-container {\n  position: relative;\n  height: 0;\n  margin: 0;\n  list-style: none;\n  overflow: hidden; }\n\n.orbit-slide {\n  width: 100%;\n  position: absolute; }\n  .orbit-slide.no-motionui.is-active {\n    top: 0;\n    left: 0; }\n\n.orbit-figure {\n  margin: 0; }\n\n.orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0; }\n\n.orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: 1rem;\n  background-color: rgba(10, 10, 10, 0.5);\n  color: #fefefe; }\n\n.orbit-previous, .orbit-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  z-index: 10;\n  padding: 1rem;\n  color: #fefefe; }\n  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {\n    outline: 0; }\n  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {\n    background-color: rgba(10, 10, 10, 0.5); }\n\n.orbit-previous {\n  left: 0; }\n\n.orbit-next {\n  left: auto;\n  right: 0; }\n\n.orbit-bullets {\n  position: relative;\n  margin-top: 0.8rem;\n  margin-bottom: 0.8rem;\n  text-align: center; }\n  [data-whatinput='mouse'] .orbit-bullets {\n    outline: 0; }\n  .orbit-bullets button {\n    width: 1.2rem;\n    height: 1.2rem;\n    margin: 0.1rem;\n    border-radius: 50%;\n    background-color: #cacaca; }\n    .orbit-bullets button:hover {\n      background-color: #8a8a8a; }\n    .orbit-bullets button.is-active {\n      background-color: #8a8a8a; }\n\n.responsive-embed,\n.flex-video {\n  position: relative;\n  height: 0;\n  margin-bottom: 1rem;\n  padding-bottom: 75%;\n  overflow: hidden; }\n  .responsive-embed iframe,\n  .responsive-embed object,\n  .responsive-embed embed,\n  .responsive-embed video,\n  .flex-video iframe,\n  .flex-video object,\n  .flex-video embed,\n  .flex-video video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; }\n  .responsive-embed.widescreen,\n  .flex-video.widescreen {\n    padding-bottom: 56.25%; }\n\n.tabs {\n  margin: 0;\n  border: 1px solid #e6e6e6;\n  background: #fefefe;\n  list-style-type: none; }\n  .tabs::before, .tabs::after {\n    display: table;\n    content: ' ';\n    flex-basis: 0;\n    order: 1; }\n  .tabs::after {\n    clear: both; }\n\n.tabs.vertical > li {\n  display: block;\n  float: none;\n  width: auto; }\n\n.tabs.simple > li > a {\n  padding: 0; }\n  .tabs.simple > li > a:hover {\n    background: transparent; }\n\n.tabs.primary {\n  background: #1779ba; }\n  .tabs.primary > li > a {\n    color: #fefefe; }\n    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {\n      background: #1673b1; }\n\n.tabs-title {\n  float: left; }\n  .tabs-title > a {\n    display: block;\n    padding: 1.25rem 1.5rem;\n    font-size: 0.75rem;\n    line-height: 1;\n    color: #1779ba; }\n    [data-whatinput='mouse'] .tabs-title > a {\n      outline: 0; }\n    .tabs-title > a:hover {\n      background: #fefefe;\n      color: #1468a0; }\n    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {\n      background: #e6e6e6;\n      color: #1779ba; }\n\n.tabs-content {\n  border: 1px solid #e6e6e6;\n  border-top: 0;\n  background: #fefefe;\n  color: #0a0a0a;\n  transition: all 0.5s ease; }\n\n.tabs-content.vertical {\n  border: 1px solid #e6e6e6;\n  border-left: 0; }\n\n.tabs-panel {\n  display: none;\n  padding: 1rem; }\n  .tabs-panel.is-active {\n    display: block; }\n\n.thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 1rem;\n  border: 4px solid #fefefe;\n  border-radius: 0;\n  box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);\n  line-height: 0; }\n\na.thumbnail {\n  transition: box-shadow 200ms ease-out; }\n  a.thumbnail:hover, a.thumbnail:focus {\n    box-shadow: 0 0 6px 1px rgba(23, 121, 186, 0.5); }\n  a.thumbnail image {\n    box-shadow: none; }\n\n.menu {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; }\n  [data-whatinput='mouse'] .menu li {\n    outline: 0; }\n  .menu a,\n  .menu .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: 0.7rem 1rem; }\n  .menu input,\n  .menu select,\n  .menu a,\n  .menu button {\n    margin-bottom: 0; }\n  .menu input {\n    display: inline-block; }\n  .menu, .menu.horizontal {\n    flex-wrap: wrap;\n    flex-direction: row; }\n  .menu.vertical {\n    flex-wrap: nowrap;\n    flex-direction: column; }\n    .menu.vertical.icon-top li a img,\n    .menu.vertical.icon-top li a i,\n    .menu.vertical.icon-top li a svg, .menu.vertical.icon-bottom li a img,\n    .menu.vertical.icon-bottom li a i,\n    .menu.vertical.icon-bottom li a svg {\n      text-align: left; }\n  .menu.expanded li {\n    flex: 1 1 0px; }\n  .menu.expanded.icon-top li a img,\n  .menu.expanded.icon-top li a i,\n  .menu.expanded.icon-top li a svg, .menu.expanded.icon-bottom li a img,\n  .menu.expanded.icon-bottom li a i,\n  .menu.expanded.icon-bottom li a svg {\n    text-align: left; }\n  .menu.simple {\n    align-items: center; }\n    .menu.simple li + li {\n      margin-left: 1rem; }\n    .menu.simple a {\n      padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .menu.medium-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.medium-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.medium-expanded li {\n      flex: 1 1 0px; }\n    .menu.medium-simple li {\n      flex: 1 1 0px; } }\n  @media print, screen and (min-width: 64em) {\n    .menu.large-horizontal {\n      flex-wrap: wrap;\n      flex-direction: row; }\n    .menu.large-vertical {\n      flex-wrap: nowrap;\n      flex-direction: column; }\n    .menu.large-expanded li {\n      flex: 1 1 0px; }\n    .menu.large-simple li {\n      flex: 1 1 0px; } }\n  .menu.nested {\n    margin-right: 0;\n    margin-left: 1rem; }\n  .menu.icons a {\n    display: flex; }\n  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {\n    display: flex; }\n  .menu.icon-left li a, .menu.nested.icon-left li a {\n    flex-flow: row nowrap; }\n    .menu.icon-left li a img,\n    .menu.icon-left li a i,\n    .menu.icon-left li a svg, .menu.nested.icon-left li a img,\n    .menu.nested.icon-left li a i,\n    .menu.nested.icon-left li a svg {\n      margin-right: 0.25rem; }\n  .menu.icon-right li a, .menu.nested.icon-right li a {\n    flex-flow: row nowrap; }\n    .menu.icon-right li a img,\n    .menu.icon-right li a i,\n    .menu.icon-right li a svg, .menu.nested.icon-right li a img,\n    .menu.nested.icon-right li a i,\n    .menu.nested.icon-right li a svg {\n      margin-left: 0.25rem; }\n  .menu.icon-top li a, .menu.nested.icon-top li a {\n    flex-flow: column nowrap; }\n    .menu.icon-top li a img,\n    .menu.icon-top li a i,\n    .menu.icon-top li a svg, .menu.nested.icon-top li a img,\n    .menu.nested.icon-top li a i,\n    .menu.nested.icon-top li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu.icon-bottom li a, .menu.nested.icon-bottom li a {\n    flex-flow: column nowrap; }\n    .menu.icon-bottom li a img,\n    .menu.icon-bottom li a i,\n    .menu.icon-bottom li a svg, .menu.nested.icon-bottom li a img,\n    .menu.nested.icon-bottom li a i,\n    .menu.nested.icon-bottom li a svg {\n      align-self: stretch;\n      margin-bottom: 0.25rem;\n      text-align: center; }\n  .menu .is-active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu .active > a {\n    background: #1779ba;\n    color: #fefefe; }\n  .menu.align-left {\n    justify-content: flex-start; }\n  .menu.align-right li {\n    display: flex;\n    justify-content: flex-end; }\n    .menu.align-right li .submenu li {\n      justify-content: flex-start; }\n  .menu.align-right.vertical li {\n    display: block;\n    text-align: right; }\n    .menu.align-right.vertical li .submenu li {\n      text-align: right; }\n  .menu.align-right.icon-top li a img,\n  .menu.align-right.icon-top li a i,\n  .menu.align-right.icon-top li a svg, .menu.align-right.icon-bottom li a img,\n  .menu.align-right.icon-bottom li a i,\n  .menu.align-right.icon-bottom li a svg {\n    text-align: right; }\n  .menu.align-right .nested {\n    margin-right: 1rem;\n    margin-left: 0; }\n  .menu.align-center li {\n    display: flex;\n    justify-content: center; }\n    .menu.align-center li .submenu li {\n      justify-content: flex-start; }\n  .menu .menu-text {\n    padding: 0.7rem 1rem;\n    font-weight: bold;\n    line-height: 1;\n    color: inherit; }\n\n.menu-centered > .menu {\n  justify-content: center; }\n  .menu-centered > .menu li {\n    display: flex;\n    justify-content: center; }\n    .menu-centered > .menu li .submenu li {\n      justify-content: flex-start; }\n\n.no-js [data-responsive-menu] ul {\n  display: none; }\n\n.menu-icon {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #fefefe;\n    box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;\n    content: ''; }\n  .menu-icon:hover::after {\n    background: #cacaca;\n    box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }\n\n.menu-icon.dark {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: 20px;\n  height: 16px;\n  cursor: pointer; }\n  .menu-icon.dark::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    display: block;\n    width: 100%;\n    height: 2px;\n    background: #0a0a0a;\n    box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;\n    content: ''; }\n  .menu-icon.dark:hover::after {\n    background: #8a8a8a;\n    box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }\n\n.accordion-menu li {\n  width: 100%; }\n\n.accordion-menu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .is-accordion-submenu a {\n  padding: 0.7rem 1rem; }\n\n.accordion-menu .nested.is-accordion-submenu {\n  margin-right: 0;\n  margin-left: 1rem; }\n\n.accordion-menu.align-right .nested.is-accordion-submenu {\n  margin-right: 1rem;\n  margin-left: 0; }\n\n.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n  position: relative; }\n  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    position: absolute;\n    top: 50%;\n    margin-top: -3px;\n    right: 1rem; }\n\n.accordion-menu.align-left .is-accordion-submenu-parent > a::after {\n  right: 1rem;\n  left: auto; }\n\n.accordion-menu.align-right .is-accordion-submenu-parent > a::after {\n  right: auto;\n  left: 1rem; }\n\n.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n  transform: rotate(180deg);\n  transform-origin: 50% 50%; }\n\n.is-accordion-submenu-parent {\n  position: relative; }\n\n.has-submenu-toggle > a {\n  margin-right: 40px; }\n\n.submenu-toggle {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 40px;\n  height: 40px;\n  cursor: pointer; }\n  .submenu-toggle::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    top: 0;\n    bottom: 0;\n    margin: auto; }\n\n.submenu-toggle[aria-expanded='true']::after {\n  transform: scaleY(-1);\n  transform-origin: 50% 50%; }\n\n.submenu-toggle-text {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.is-drilldown {\n  position: relative;\n  overflow: hidden; }\n  .is-drilldown li {\n    display: block; }\n  .is-drilldown.animate-height {\n    transition: height 0.5s; }\n\n.drilldown a {\n  padding: 0.7rem 1rem;\n  background: #fefefe; }\n\n.drilldown .is-drilldown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: -1;\n  width: 100%;\n  background: #fefefe;\n  transition: transform 0.15s linear; }\n  .drilldown .is-drilldown-submenu.is-active {\n    z-index: 1;\n    display: block;\n    transform: translateX(-100%); }\n  .drilldown .is-drilldown-submenu.is-closing {\n    transform: translateX(100%); }\n  .drilldown .is-drilldown-submenu a {\n    padding: 0.7rem 1rem; }\n\n.drilldown .nested.is-drilldown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.drilldown .drilldown-submenu-cover-previous {\n  min-height: 100%; }\n\n.drilldown .is-drilldown-submenu-parent > a {\n  position: relative; }\n  .drilldown .is-drilldown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba;\n    position: absolute;\n    top: 50%;\n    margin-top: -6px;\n    right: 1rem; }\n\n.drilldown.align-left .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba;\n  right: 1rem;\n  left: auto; }\n\n.drilldown.align-right .is-drilldown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 1rem; }\n\n.drilldown .js-drilldown-back > a::before {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  display: inline-block;\n  vertical-align: middle;\n  margin-right: 0.75rem; }\n\n.dropdown.menu > li.opens-left > .is-dropdown-submenu {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.dropdown.menu > li.opens-right > .is-dropdown-submenu {\n  top: 100%;\n  right: auto;\n  left: 0; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a {\n  position: relative;\n  padding-right: 1.5rem; }\n\n.dropdown.menu > li.is-dropdown-submenu-parent > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-bottom-width: 0;\n  border-color: #1779ba transparent transparent;\n  right: 5px;\n  left: auto;\n  margin-top: -3px; }\n\n[data-whatinput='mouse'] .dropdown.menu a {\n  outline: 0; }\n\n.dropdown.menu > li > a {\n  padding: 0.7rem 1rem; }\n\n.dropdown.menu > li.is-active > a {\n  background: transparent;\n  color: #1779ba; }\n\n.no-js .dropdown.menu ul {\n  display: none; }\n\n.dropdown.menu .nested.is-dropdown-submenu {\n  margin-right: 0;\n  margin-left: 0; }\n\n.dropdown.menu.vertical > li .is-dropdown-submenu {\n  top: 0; }\n\n.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {\n  top: 0;\n  right: 100%;\n  left: auto; }\n\n.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {\n  right: auto;\n  left: 100%; }\n\n.dropdown.menu.vertical > li > a::after {\n  right: 14px; }\n\n.dropdown.menu.vertical > li.opens-left > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-left-width: 0;\n  border-color: transparent #1779ba transparent transparent;\n  right: auto;\n  left: 5px; }\n\n.dropdown.menu.vertical > li.opens-right > a::after {\n  display: block;\n  width: 0;\n  height: 0;\n  border-style: solid;\n  border-width: 6px;\n  content: '';\n  border-right-width: 0;\n  border-color: transparent transparent transparent #1779ba; }\n\n@media print, screen and (min-width: 40em) {\n  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.medium-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.medium-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.medium-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n@media print, screen and (min-width: 64em) {\n  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {\n    top: 100%;\n    right: 0;\n    left: auto; }\n  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {\n    top: 100%;\n    right: auto;\n    left: 0; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {\n    position: relative;\n    padding-right: 1.5rem; }\n  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-bottom-width: 0;\n    border-color: #1779ba transparent transparent;\n    right: 5px;\n    left: auto;\n    margin-top: -3px; }\n  .dropdown.menu.large-vertical > li .is-dropdown-submenu {\n    top: 0; }\n  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {\n    top: 0;\n    right: 100%;\n    left: auto; }\n  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n  .dropdown.menu.large-vertical > li > a::after {\n    right: 14px; }\n  .dropdown.menu.large-vertical > li.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .dropdown.menu.large-vertical > li.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; } }\n\n.dropdown.menu.align-right .is-dropdown-submenu.first-sub {\n  top: 100%;\n  right: 0;\n  left: auto; }\n\n.is-dropdown-menu.vertical {\n  width: 100px; }\n  .is-dropdown-menu.vertical.align-right {\n    float: right; }\n\n.is-dropdown-submenu-parent {\n  position: relative; }\n  .is-dropdown-submenu-parent a::after {\n    position: absolute;\n    top: 50%;\n    right: 5px;\n    left: auto;\n    margin-top: -6px; }\n  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {\n    top: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {\n    right: 100%;\n    left: auto; }\n  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {\n    right: auto;\n    left: 100%; }\n\n.is-dropdown-submenu {\n  position: absolute;\n  top: 0;\n  left: 100%;\n  z-index: 1;\n  display: none;\n  min-width: 200px;\n  border: 1px solid #cacaca;\n  background: #fefefe; }\n  .dropdown .is-dropdown-submenu a {\n    padding: 0.7rem 1rem; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {\n    right: 14px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-left-width: 0;\n    border-color: transparent #1779ba transparent transparent;\n    right: auto;\n    left: 5px; }\n  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {\n    display: block;\n    width: 0;\n    height: 0;\n    border-style: solid;\n    border-width: 6px;\n    content: '';\n    border-right-width: 0;\n    border-color: transparent transparent transparent #1779ba; }\n  .is-dropdown-submenu .is-dropdown-submenu {\n    margin-top: -1px; }\n  .is-dropdown-submenu > li {\n    width: 100%; }\n  .is-dropdown-submenu.js-dropdown-active {\n    display: block; }\n\n.is-off-canvas-open {\n  overflow: hidden; }\n\n.js-off-canvas-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 11;\n  width: 100%;\n  height: 100%;\n  transition: opacity 0.5s ease, visibility 0.5s ease;\n  background: rgba(254, 254, 254, 0.25);\n  opacity: 0;\n  visibility: hidden;\n  overflow: hidden; }\n  .js-off-canvas-overlay.is-visible {\n    opacity: 1;\n    visibility: visible; }\n  .js-off-canvas-overlay.is-closable {\n    cursor: pointer; }\n  .js-off-canvas-overlay.is-overlay-absolute {\n    position: absolute; }\n  .js-off-canvas-overlay.is-overlay-fixed {\n    position: fixed; }\n\n.off-canvas-wrapper {\n  position: relative;\n  overflow: hidden; }\n\n.off-canvas {\n  position: fixed;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas {\n    outline: 0; }\n  .off-canvas.is-transition-push {\n    z-index: 12; }\n  .off-canvas.is-closed {\n    visibility: hidden; }\n  .off-canvas.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n.off-canvas-absolute {\n  position: absolute;\n  z-index: 12;\n  transition: transform 0.5s ease;\n  backface-visibility: hidden;\n  background: #e6e6e6; }\n  [data-whatinput='mouse'] .off-canvas-absolute {\n    outline: 0; }\n  .off-canvas-absolute.is-transition-push {\n    z-index: 12; }\n  .off-canvas-absolute.is-closed {\n    visibility: hidden; }\n  .off-canvas-absolute.is-transition-overlap {\n    z-index: 13; }\n    .off-canvas-absolute.is-transition-overlap.is-open {\n      box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }\n  .off-canvas-absolute.is-open {\n    transform: translate(0, 0); }\n\n.position-left {\n  top: 0;\n  left: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(-250px); }\n  .off-canvas-content .off-canvas.position-left {\n    transform: translateX(-250px); }\n    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-left.has-transition-push {\n    transform: translateX(250px); }\n  .position-left.is-transition-push {\n    box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-right {\n  top: 0;\n  right: 0;\n  height: 100%;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch;\n  width: 250px;\n  transform: translateX(250px); }\n  .off-canvas-content .off-canvas.position-right {\n    transform: translateX(250px); }\n    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-right.has-transition-push {\n    transform: translateX(-250px); }\n  .position-right.is-transition-push {\n    box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-top {\n  top: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(-250px); }\n  .off-canvas-content .off-canvas.position-top {\n    transform: translateY(-250px); }\n    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-top.has-transition-push {\n    transform: translateY(250px); }\n  .position-top.is-transition-push {\n    box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.position-bottom {\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  height: 250px;\n  transform: translateY(250px); }\n  .off-canvas-content .off-canvas.position-bottom {\n    transform: translateY(250px); }\n    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {\n      transform: translate(0, 0); }\n  .off-canvas-content.is-open-bottom.has-transition-push {\n    transform: translateY(-250px); }\n  .position-bottom.is-transition-push {\n    box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }\n\n.off-canvas-content {\n  transform: none;\n  backface-visibility: hidden; }\n  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {\n    transition: transform 0.5s ease; }\n  .off-canvas-content.has-transition-push {\n    transform: translate(0, 0); }\n  .off-canvas-content .off-canvas.is-open {\n    transform: translate(0, 0); }\n\n@media print, screen and (min-width: 40em) {\n  .position-left.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-medium ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-medium ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-medium ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-medium {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-medium .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-medium {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-medium ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 64em) {\n  .position-left.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-left.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-left.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-left {\n      margin-left: 250px; }\n    .position-left.reveal-for-large ~ .off-canvas-content {\n      margin-left: 250px; }\n  .position-right.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-right.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-right.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-right {\n      margin-right: 250px; }\n    .position-right.reveal-for-large ~ .off-canvas-content {\n      margin-right: 250px; }\n  .position-top.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-top.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-top.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-top {\n      margin-top: 250px; }\n    .position-top.reveal-for-large ~ .off-canvas-content {\n      margin-top: 250px; }\n  .position-bottom.reveal-for-large {\n    transform: none;\n    z-index: 12;\n    transition: none;\n    visibility: visible; }\n    .position-bottom.reveal-for-large .close-button {\n      display: none; }\n    .off-canvas-content .position-bottom.reveal-for-large {\n      transform: none; }\n    .off-canvas-content.has-reveal-bottom {\n      margin-bottom: 250px; }\n    .position-bottom.reveal-for-large ~ .off-canvas-content {\n      margin-bottom: 250px; } }\n\n@media print, screen and (min-width: 40em) {\n  .off-canvas.in-canvas-for-medium {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-medium .close-button {\n      display: none; } }\n\n@media print, screen and (min-width: 64em) {\n  .off-canvas.in-canvas-for-large {\n    visibility: visible;\n    height: auto;\n    position: static;\n    background: none;\n    width: auto;\n    overflow: visible;\n    transition: none; }\n    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {\n      box-shadow: none;\n      transform: none; }\n    .off-canvas.in-canvas-for-large .close-button {\n      display: none; } }\n\nhtml.is-reveal-open {\n  position: fixed;\n  width: 100%;\n  overflow-y: hidden; }\n  html.is-reveal-open.zf-has-scroll {\n    overflow-y: scroll;\n    -webkit-overflow-scrolling: touch; }\n  html.is-reveal-open body {\n    overflow-y: hidden; }\n\n.reveal-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1005;\n  display: none;\n  background-color: rgba(10, 10, 10, 0.45);\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n\n.reveal {\n  z-index: 1006;\n  backface-visibility: hidden;\n  display: none;\n  padding: 1rem;\n  border: 1px solid #cacaca;\n  border-radius: 0;\n  background-color: #fefefe;\n  position: relative;\n  top: 100px;\n  margin-right: auto;\n  margin-left: auto;\n  overflow-y: auto;\n  -webkit-overflow-scrolling: touch; }\n  [data-whatinput='mouse'] .reveal {\n    outline: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      min-height: 0; } }\n  .reveal .column {\n    min-width: 0; }\n  .reveal > :last-child {\n    margin-bottom: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal {\n      width: 600px;\n      max-width: 75rem; } }\n  .reveal.collapse {\n    padding: 0; }\n  @media print, screen and (min-width: 40em) {\n    .reveal.tiny {\n      width: 30%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.small {\n      width: 50%;\n      max-width: 75rem; } }\n  @media print, screen and (min-width: 40em) {\n    .reveal.large {\n      width: 90%;\n      max-width: 75rem; } }\n  .reveal.full {\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    max-width: none;\n    height: 100%;\n    min-height: 100%;\n    margin-left: 0;\n    border: 0;\n    border-radius: 0; }\n  @media print, screen and (max-width: 39.99875em) {\n    .reveal {\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      width: 100%;\n      max-width: none;\n      height: 100%;\n      min-height: 100%;\n      margin-left: 0;\n      border: 0;\n      border-radius: 0; } }\n  .reveal.without-overlay {\n    position: fixed; }\n\n.sticky-container {\n  position: relative; }\n\n.sticky {\n  position: relative;\n  z-index: 0;\n  transform: translate3d(0, 0, 0); }\n\n.sticky.is-stuck {\n  position: fixed;\n  z-index: 5;\n  width: 100%; }\n  .sticky.is-stuck.is-at-top {\n    top: 0; }\n  .sticky.is-stuck.is-at-bottom {\n    bottom: 0; }\n\n.sticky.is-anchored {\n  position: relative;\n  right: auto;\n  left: auto; }\n  .sticky.is-anchored.is-at-bottom {\n    bottom: 0; }\n\n.title-bar {\n  padding: 0.5rem;\n  background: #0a0a0a;\n  color: #fefefe;\n  display: flex;\n  justify-content: flex-start;\n  align-items: center; }\n  .title-bar .menu-icon {\n    margin-left: 0.25rem;\n    margin-right: 0.25rem; }\n\n.title-bar-left,\n.title-bar-right {\n  flex: 1 1 0px; }\n\n.title-bar-right {\n  text-align: right; }\n\n.title-bar-title {\n  display: inline-block;\n  vertical-align: middle;\n  font-weight: bold; }\n\n.top-bar {\n  display: flex;\n  flex-wrap: nowrap;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0.5rem;\n  flex-wrap: wrap; }\n  .top-bar,\n  .top-bar ul {\n    background-color: #e6e6e6; }\n  .top-bar input {\n    max-width: 200px;\n    margin-right: 1rem; }\n  .top-bar .input-group-field {\n    width: 100%;\n    margin-right: 0; }\n  .top-bar input.button {\n    width: auto; }\n  .top-bar .top-bar-left,\n  .top-bar .top-bar-right {\n    flex: 0 0 100%;\n    max-width: 100%; }\n  @media print, screen and (min-width: 40em) {\n    .top-bar {\n      flex-wrap: nowrap; }\n      .top-bar .top-bar-left {\n        flex: 1 1 auto;\n        margin-right: auto; }\n      .top-bar .top-bar-right {\n        flex: 0 1 auto;\n        margin-left: auto; } }\n  @media print, screen and (max-width: 63.99875em) {\n    .top-bar.stacked-for-medium {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-medium .top-bar-left,\n      .top-bar.stacked-for-medium .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n  @media print, screen and (max-width: 74.99875em) {\n    .top-bar.stacked-for-large {\n      flex-wrap: wrap; }\n      .top-bar.stacked-for-large .top-bar-left,\n      .top-bar.stacked-for-large .top-bar-right {\n        flex: 0 0 100%;\n        max-width: 100%; } }\n\n.top-bar-title {\n  flex: 0 0 auto;\n  margin: 0.5rem 1rem 0.5rem 0; }\n\n.top-bar-left,\n.top-bar-right {\n  flex: 0 0 auto; }\n\n.float-left {\n  float: left !important; }\n\n.float-right {\n  float: right !important; }\n\n.float-center {\n  display: block;\n  margin-right: auto;\n  margin-left: auto; }\n\n.clearfix::before, .clearfix::after {\n  display: table;\n  content: ' ';\n  flex-basis: 0;\n  order: 1; }\n\n.clearfix::after {\n  clear: both; }\n\n.align-left {\n  justify-content: flex-start; }\n\n.align-right {\n  justify-content: flex-end; }\n\n.align-center {\n  justify-content: center; }\n\n.align-justify {\n  justify-content: space-between; }\n\n.align-spaced {\n  justify-content: space-around; }\n\n.align-left.vertical.menu > li > a {\n  justify-content: flex-start; }\n\n.align-right.vertical.menu > li > a {\n  justify-content: flex-end; }\n\n.align-center.vertical.menu > li > a {\n  justify-content: center; }\n\n.align-top {\n  align-items: flex-start; }\n\n.align-self-top {\n  align-self: flex-start; }\n\n.align-bottom {\n  align-items: flex-end; }\n\n.align-self-bottom {\n  align-self: flex-end; }\n\n.align-middle {\n  align-items: center; }\n\n.align-self-middle {\n  align-self: center; }\n\n.align-stretch {\n  align-items: stretch; }\n\n.align-self-stretch {\n  align-self: stretch; }\n\n.align-center-middle {\n  justify-content: center;\n  align-items: center;\n  align-content: center; }\n\n.small-order-1 {\n  order: 1; }\n\n.small-order-2 {\n  order: 2; }\n\n.small-order-3 {\n  order: 3; }\n\n.small-order-4 {\n  order: 4; }\n\n.small-order-5 {\n  order: 5; }\n\n.small-order-6 {\n  order: 6; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-order-1 {\n    order: 1; }\n  .medium-order-2 {\n    order: 2; }\n  .medium-order-3 {\n    order: 3; }\n  .medium-order-4 {\n    order: 4; }\n  .medium-order-5 {\n    order: 5; }\n  .medium-order-6 {\n    order: 6; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-order-1 {\n    order: 1; }\n  .large-order-2 {\n    order: 2; }\n  .large-order-3 {\n    order: 3; }\n  .large-order-4 {\n    order: 4; }\n  .large-order-5 {\n    order: 5; }\n  .large-order-6 {\n    order: 6; } }\n\n.flex-container {\n  display: flex; }\n\n.flex-child-auto {\n  flex: 1 1 auto; }\n\n.flex-child-grow {\n  flex: 1 0 auto; }\n\n.flex-child-shrink {\n  flex: 0 1 auto; }\n\n.flex-dir-row {\n  flex-direction: row; }\n\n.flex-dir-row-reverse {\n  flex-direction: row-reverse; }\n\n.flex-dir-column {\n  flex-direction: column; }\n\n.flex-dir-column-reverse {\n  flex-direction: column-reverse; }\n\n@media print, screen and (min-width: 40em) {\n  .medium-flex-container {\n    display: flex; }\n  .medium-flex-child-auto {\n    flex: 1 1 auto; }\n  .medium-flex-child-grow {\n    flex: 1 0 auto; }\n  .medium-flex-child-shrink {\n    flex: 0 1 auto; }\n  .medium-flex-dir-row {\n    flex-direction: row; }\n  .medium-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .medium-flex-dir-column {\n    flex-direction: column; }\n  .medium-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n@media print, screen and (min-width: 64em) {\n  .large-flex-container {\n    display: flex; }\n  .large-flex-child-auto {\n    flex: 1 1 auto; }\n  .large-flex-child-grow {\n    flex: 1 0 auto; }\n  .large-flex-child-shrink {\n    flex: 0 1 auto; }\n  .large-flex-dir-row {\n    flex-direction: row; }\n  .large-flex-dir-row-reverse {\n    flex-direction: row-reverse; }\n  .large-flex-dir-column {\n    flex-direction: column; }\n  .large-flex-dir-column-reverse {\n    flex-direction: column-reverse; } }\n\n.hide {\n  display: none !important; }\n\n.invisible {\n  visibility: hidden; }\n\n.visible {\n  visibility: visible; }\n\n@media print, screen and (max-width: 39.99875em) {\n  .hide-for-small-only {\n    display: none !important; } }\n\n@media screen and (max-width: 0em), screen and (min-width: 40em) {\n  .show-for-small-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) {\n  .hide-for-medium {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em) {\n  .show-for-medium {\n    display: none !important; } }\n\n@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {\n  .hide-for-medium-only {\n    display: none !important; } }\n\n@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {\n  .show-for-medium-only {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) {\n  .hide-for-large {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em) {\n  .show-for-large {\n    display: none !important; } }\n\n@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {\n  .hide-for-large-only {\n    display: none !important; } }\n\n@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {\n  .show-for-large-only {\n    display: none !important; } }\n\n.show-for-sr,\n.show-on-focus {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important; }\n\n.show-on-focus:active, .show-on-focus:focus {\n  position: static !important;\n  width: auto !important;\n  height: auto !important;\n  overflow: visible !important;\n  clip: auto !important;\n  white-space: normal !important; }\n\n.show-for-landscape,\n.hide-for-portrait {\n  display: block !important; }\n  @media screen and (orientation: landscape) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: block !important; } }\n  @media screen and (orientation: portrait) {\n    .show-for-landscape,\n    .hide-for-portrait {\n      display: none !important; } }\n\n.hide-for-landscape,\n.show-for-portrait {\n  display: none !important; }\n  @media screen and (orientation: landscape) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: none !important; } }\n  @media screen and (orientation: portrait) {\n    .hide-for-landscape,\n    .show-for-portrait {\n      display: block !important; } }\n\n.show-for-dark-mode {\n  display: none; }\n\n.hide-for-dark-mode {\n  display: block; }\n\n@media screen and (prefers-color-scheme: dark) {\n  .show-for-dark-mode {\n    display: block !important; }\n  .hide-for-dark-mode {\n    display: none !important; } }\n\n.show-for-ie {\n  display: none; }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .show-for-ie {\n    display: block !important; }\n  .hide-for-ie {\n    display: none !important; } }\n\n.show-for-sticky {\n  display: none; }\n\n.is-stuck .show-for-sticky {\n  display: block; }\n\n.is-stuck .hide-for-sticky {\n  display: none; }\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-color-literals, no-qualifying-elements\n\n////\n/// @group global\n////\n\n@import 'util/util';\n\n/// Font size attribute applied to `<html>` and `<body>`. We use 100% by default so the value is inherited from the user's browser settings.\n/// @type Number\n$global-font-size: 100% !default;\n\n/// Global width of your site. Used by the grid to determine row width.\n/// @type Number\n$global-width: rem-calc(1200) !default;\n\n/// Default line height for all type. `$global-lineheight` is 24px while `$global-font-size` is 16px\n/// @type Number\n$global-lineheight: 1.5 !default;\n\n/// Colors used for buttons, callouts, links, etc. There must always be a color called `primary`.\n/// @type Map\n$foundation-palette: (\n  \"primary\": #1779ba,\n  \"secondary\": #767676,\n  \"success\": #3adb76,\n  \"warning\": #ffae00,\n  \"alert\": #cc4b37,\n) !default;\n\n/// Color used for light gray UI items.\n/// @type Color\n$light-gray: #e6e6e6 !default;\n\n/// Color used for medium gray UI items.\n/// @type Color\n$medium-gray: #cacaca !default;\n\n/// Color used for dark gray UI items.\n/// @type Color\n$dark-gray: #8a8a8a !default;\n\n/// Color used for black ui items.\n/// @type Color\n$black: #0a0a0a !default;\n\n/// Color used for white ui items.\n/// @type Color\n$white: #fefefe !default;\n\n/// Background color of the body.\n/// @type Color\n$body-background: $white !default;\n\n/// Text color of the body.\n/// @type Color\n$body-font-color: $black !default;\n\n/// Font stack of the body.\n/// @type List\n$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif !default;\n\n/// Set to `true` to enable safe padding on the body for non-rectangular devices (i.e. phones with notches)\n/// @type Boolean\n$body-safe-padding: false !default;\n\n/// Set to `true` to enable antialiased type, using the `-webkit-font-smoothing` and `-moz-osx-font-smoothing` CSS properties.\n/// @type Boolean\n$body-antialiased: true !default;\n\n/// Global value used for margin on components.\n/// @type Number\n$global-margin: 1rem !default;\n\n/// Global value used for padding on components.\n/// @type Number\n$global-padding: 1rem !default;\n\n/// Global value used for positioning on components.\n/// @type Number\n$global-position: 1rem !default;\n\n/// Global font weight used for normal type.\n/// @type Keyword | Number\n$global-weight-normal: normal !default;\n\n/// Global font weight used for bold type.\n/// @type Keyword | Number\n$global-weight-bold: bold !default;\n\n/// Global value used for all elements that have a border radius.\n/// @type Number\n$global-radius: 0 !default;\n\n/// Global value used for all menu styles. Can be overwritten at individual menu component level.\n/// @type Number\n$global-menu-padding: 0.7rem 1rem !default;\n\n/// Global value used for all menu styles. Nested margin for submenu.\n$global-menu-nested-margin: 1rem !default;\n\n/// Sets the text direction of the CSS. Can be either `ltr` or `rtl`.\n/// @type Keyword\n$global-text-direction: ltr !default;\n\n/// Enables flexbox for components that support it.\n/// @type Boolean\n$global-flexbox: true !default;\n\n/// Enabled responsive breakpoints for prototypes if applicable\n/// @type Boolean\n$global-prototype-breakpoints: false !default;\n\n/// Button cursor's value, `auto` by default\n/// @type Keyword\n$global-button-cursor: auto !default;\n\n@if not map-has-key($foundation-palette, primary) {\n  @error 'In $foundation-palette, you must have a color named \"primary\".';\n}\n\n// Internal variables used for text direction\n$global-left: if($global-text-direction == rtl, right, left);\n$global-right: if($global-text-direction == rtl, left, right);\n\n// Internal variable that contains the flex justifying options\n$-zf-flex-justify: -zf-flex-justify($global-text-direction);\n\n/// Global tolerance for color pick contrast.\n/// @type Number\n$global-color-pick-contrast-tolerance: 0 !default;\n\n// Internal variables used for colors\n@include add-foundation-colors;\n\n@mixin foundation-global-styles {\n  @include foundation-normalize;\n\n  // These styles are applied to a <meta> tag, which is read by the Foundation JavaScript\n  .foundation-mq {\n    font-family: '#{-zf-bp-serialize($breakpoints)}';\n  }\n\n  html {\n    box-sizing: border-box;\n    font-size: $global-font-size;\n  }\n\n  // Set box-sizing globally to handle padding and border widths\n  *,\n  *::before,\n  *::after {\n    box-sizing: inherit;\n  }\n\n  // Default body styles\n  body {\n    margin: 0;\n    padding: 0;\n\n    @if ($body-safe-padding) {\n      // using environment variables to account for non-rectangular displays e.g. phones with notches\n      padding-top: env(safe-area-inset-top);\n      padding-right: env(safe-area-inset-right);\n      padding-bottom: env(safe-area-inset-bottom);\n      padding-left: env(safe-area-inset-left);\n    }\n\n    background: $body-background;\n\n    font-family: $body-font-family;\n    font-weight: $global-weight-normal;\n    line-height: $global-lineheight;\n    color: $body-font-color;\n\n    @if ($body-antialiased) {\n      -webkit-font-smoothing: antialiased; // sass-lint:disable-line no-vendor-prefixes\n      -moz-osx-font-smoothing: grayscale; // sass-lint:disable-line no-vendor-prefixes\n    }\n  }\n\n  img {\n    // Get rid of gap under images by making them display: inline-block; by default\n    display: inline-block;\n    vertical-align: middle;\n\n    // Grid defaults to get images and embeds to work properly\n    max-width: 100%;\n    height: auto;\n    -ms-interpolation-mode: bicubic;\n  }\n\n  // Make sure textarea takes on height automatically\n  textarea {\n    height: auto;\n    min-height: 50px;\n    border-radius: $global-radius;\n  }\n\n  // Make select elements are 100% width by default\n  select {\n    box-sizing: border-box;\n    width: 100%;\n    border-radius: $global-radius;\n  }\n\n  // Styles Google Maps and MapQuest embeds properly\n  // sass-lint:disable-line no-ids\n  .map_canvas,\n  .mqa-display {\n    img,\n    embed,\n    object {\n      max-width: none !important;\n    }\n  }\n\n  // Reset <button> styles created by most browsers\n  button {\n    @include disable-mouse-outline;\n    padding: 0;\n    appearance: none;\n    border: 0;\n    border-radius: $global-radius;\n    background: transparent;\n    line-height: 1;\n    cursor: $global-button-cursor;\n  }\n\n  // Prevent text overflow on pre\n  pre {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  // Make reset inherit font-family instead of settings sans-serif\n  button,\n  input,\n  optgroup,\n  select,\n  textarea {\n    font-family: inherit;\n  }\n\n  // Internal classes to show/hide elements in JavaScript\n  .is-visible {\n    display: block !important;\n  }\n\n  .is-hidden {\n    display: none !important;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group functions\n////\n\n// Patch to fix issue #12080\n$-zf-bp-value: null;\n\n/// Creates an inner box-shadow for only one side\n///\n/// @param {Keyword} $side - Side the shadow is supposed to appear. Can be `top`, `left`, `right` or `bottom`.\n/// @param {Number} $size - Width for the target side.\n/// @param {Color} $color - Color of the shadow.\n@mixin inner-side-shadow(\n  $side: bottom,\n  $size: 20px,\n  $color: rgba($black, 0.25)\n) {\n\n  $helper: round($size * 0.65);\n\n  @if ($side == top) {\n    box-shadow: inset 0 $helper $size (-1)*$helper $color;\n  } @else if ($side == left) {\n    box-shadow: inset $helper 0 $size (-1)*$helper $color;\n  } @else if ($side == right) {\n    box-shadow: inset (-1)*$helper 0 $size (-1)*$helper $color;\n  } @else if ($side == bottom) {\n    box-shadow: inset 0 (-1)*$helper $size (-1)*$helper $color;\n  }\n}\n\n/// Creates a CSS triangle, which can be used for dropdown arrows, dropdown pips, and more. Use this mixin inside a `&::before` or `&::after` selector, to attach the triangle to an existing element.\n///\n/// @param {Number} $triangle-size - Width of the triangle.\n/// @param {Color} $triangle-color - Color of the triangle.\n/// @param {Keyword} $triangle-direction - Direction the triangle points. Can be `up`, `right`, `down`, or `left`.\n@mixin css-triangle(\n  $triangle-size,\n  $triangle-color,\n  $triangle-direction\n) {\n  display: block;\n  width: 0;\n  height: 0;\n\n  border-style: solid;\n  border-width: $triangle-size;\n\n  content: '';\n\n  @if ($triangle-direction == down) {\n    border-bottom-width: 0;\n    border-color: $triangle-color transparent transparent;\n  }\n  @if ($triangle-direction == up) {\n    border-top-width: 0;\n    border-color: transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == right) {\n    border-right-width: 0;\n    border-color: transparent transparent transparent $triangle-color;\n  }\n  @if ($triangle-direction == left) {\n    border-left-width: 0;\n    border-color: transparent $triangle-color transparent transparent;\n  }\n}\n\n/// Creates a menu icon with a set width, height, number of bars, and colors. The mixin uses the height of the icon and the weight of the bars to determine spacing. <div class=\"docs-example-burger\"></div>\n///\n/// @param {Color} $color [$black] - Color to use for the icon.\n/// @param {Color} $color-hover [$dark-gray] - Color to use when the icon is hovered over.\n/// @param {Number} $width [20px] - Width of the icon.\n/// @param {Number} $height [16px] - Height of the icon.\n/// @param {Number} $weight [2px] - Height of individual bars in the icon.\n/// @param {Number} $bars [3] - Number of bars in the icon.\n@mixin hamburger(\n  $color: $black,\n  $color-hover: $dark-gray,\n  $width: 20px,\n  $height: 16px,\n  $weight: 2px,\n  $bars: 3\n) {\n  // box-shadow CSS output\n  $shadow: ();\n  $hover-shadow: ();\n\n  // Spacing between bars is calculated based on the total height of the icon and the weight of each bar\n  $spacing: divide($height - ($weight * $bars), $bars - 1);\n\n  @if unit($spacing) == 'px' {\n    $spacing: floor($spacing);\n  }\n\n  @for $i from 2 through $bars {\n    $offset: ($weight + $spacing) * ($i - 1);\n    $shadow: append($shadow, 0 $offset 0 $color, comma);\n  }\n\n  // Icon container\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n  width: $width;\n  height: $height;\n  cursor: pointer;\n\n  // Icon bars\n  &::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    display: block;\n    width: 100%;\n    height: $weight;\n\n    background: $color;\n    box-shadow: $shadow;\n\n    content: '';\n  }\n\n  // Hover state\n  @if $color-hover {\n    // Generate CSS\n    @for $i from 2 through $bars {\n      $offset: ($weight + $spacing) * ($i - 1);\n      $hover-shadow: append($hover-shadow, 0 $offset 0 $color-hover, comma);\n    }\n\n    &:hover::after {\n      background: $color-hover;\n      box-shadow: $hover-shadow;\n    }\n  }\n}\n\n/// Adds a downward-facing triangle as a background image to an element. The image is formatted as an SVG, making it easy to change the color. Because Internet Explorer doesn't support encoded SVGs as background images, a PNG fallback is also included.\n/// There are two PNG fallbacks: a black triangle and a white triangle. The one used depends on the lightness of the input color.\n///\n/// @param {Color} $color [$black] - Color to use for the triangle.\n@mixin background-triangle($color: $black) {\n  $rgb: 'rgb%28#{round(red($color))}, #{round(green($color))}, #{round(blue($color))}%29';\n\n  background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"32\" height=\"24\" viewBox=\"0 0 32 24\"><polygon points=\"0,0 32,0 16,24\" style=\"fill: #{$rgb}\"></polygon></svg>');\n\n  @media screen and (min-width: 0\\0) {\n    @if lightness($color) < 60% {\n      // White triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==');\n    }\n    @else {\n      // Black triangle\n      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMBJREFUeNrEllsOhCAMRVszC9IlzU7KCmVHTJsoMWYMUtpyv9BgbuXQB5ZSdgBYYY4ycgBivk8KYFsQMfMiTTBP4o3nUzCKzOabLJbLy2/g31evGkAginR4/ZegKH5qX3bJCscA3t0x3kgO5tQFyhhFf50xRqFLbyMUNJQzgyjGS/wgCpvKqkRBpuWrE4V9d+1E4dPUXqIg107SQOE/2DRQxMwTDygIInVDET9T3lCoj/6j/VCmGjZOl2lKpZ8AAwDQP7zIimDGFQAAAABJRU5ErkJggg==');\n    }\n  }\n}\n\n/// Applies the micro clearfix hack popularized by Nicolas Gallagher. Include this mixin on a container if its children are all floated, to give the container a proper height.\n/// The clearfix is augmented with specific styles to prevent borders in flexbox environments\n/// @link http://nicolasgallagher.com/micro-clearfix-hack/ Micro Clearfix Hack\n/// @link http://danisadesigner.com/blog/flexbox-clear-fix-pseudo-elements/ Flexbox fix\n@mixin clearfix {\n  &::before,\n  &::after {\n    display: table;\n    content: ' ';\n\n    @if $global-flexbox {\n      flex-basis: 0;\n      order: 1;\n    }\n  }\n\n  &::after {\n    clear: both;\n  }\n}\n\n/// Adds CSS for a \"quantity query\" selector that automatically sizes elements based on how many there are inside a container.\n/// @link http://alistapart.com/article/quantity-queries-for-css Quantity Queries for CSS\n///\n/// @param {Number} $max - Maximum number of items to detect. The higher this number is, the more CSS that's required to cover each number of items.\n/// @param {Keyword} $elem [li] - Tag to use for sibling selectors.\n@mixin auto-width($max, $elem: li) {\n  @for $i from 2 through $max {\n    &:nth-last-child(#{$i}):first-child,\n    &:nth-last-child(#{$i}):first-child ~ #{$elem} {\n      width: percentage(divide(1, $i));\n    }\n  }\n}\n\n/// Removes the focus ring around an element when a mouse input is detected.\n@mixin disable-mouse-outline {\n  [data-whatinput='mouse'] & {\n    outline: 0;\n  }\n}\n\n/// Makes an element visually hidden, but still accessible to keyboards and assistive devices.\n/// @link http://snook.ca/archives/html_and_css/hiding-content-for-accessibility Hiding Content for Accessibility\n/// @link http://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n///\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: absolute #{$important};\n  width: 1px #{$important};\n  height: 1px #{$important};\n  padding: 0 #{$important};\n  overflow: hidden #{$important};\n  clip: rect(0, 0, 0, 0) #{$important};\n  white-space: nowrap #{$important};\n  border: 0 #{$important};\n}\n\n/// Reverses the CSS output created by the `element-invisible()` mixin.\n/// @param {Boolean} $enforce - If `true`, use `!important` on applied properties\n@mixin element-invisible-off(\n  $enforce: true\n) {\n  $important: if($enforce, '!important', null);\n\n  position: static #{$important};\n  width: auto #{$important};\n  height: auto #{$important};\n  overflow: visible #{$important};\n  clip: auto #{$important};\n  white-space: normal #{$important};\n}\n\n/// Vertically centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin vertical-center {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Horizontally centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin horizontal-center {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n}\n\n/// Absolutely centers the element inside of its first non-static parent,\n/// @link http://www.sitepoint.com/centering-with-sass/ Centering With Sass\n@mixin absolute-center {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\n/// Iterates through breakpoints defined in `$breakpoint-classes` and prints the CSS inside the mixin at each breakpoint's media query. Use this with the grid, or any other component that has responsive classes.\n///\n/// @param {Boolean} $small [true] - If `false`, the mixin will skip the `small` breakpoint. Use this with components that don't prefix classes with `small-`, only `medium-` and up.\n/// @param {Boolean} $auto-insert-breakpoints [true] - If `false`, the mixin will iterate over breakpoints without doing the media query itself. Useful for more complex media query generation as in the margin grid.\n@mixin -zf-each-breakpoint(\n  $small: true,\n  $auto-insert-breakpoints: true\n) {\n  @include -zf-each-breakpoint-in(auto, -zf-bool($small), -zf-bool($auto-insert-breakpoints)) {\n    @content\n  };\n}\n\n/// Iterates with `@content` through the given list of breakpoints `$breakpoints`.\n///\n/// @access private\n///\n/// @param {Keyword|List} $breakpoints [auto] - Breakpoints to iterates on. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints.\n/// @param {Boolean|Null} $zero-breakpoint [null] - Whether the zero-breakpoint (often `small`) must be included. If `true`, it will always be added to the list if not already there. If `false`, it will always be removed. Does nothing by default.\n/// @param {Boolean|Keyword} $media-queries [true] - Whether media-queries must be generated. If `for-lists`, only generate media-queries when `$breakpoints` is a list.\n@mixin -zf-each-breakpoint-in(\n  $breakpoints: auto,\n  $zero-breakpoint: null,\n  $media-queries: true\n) {\n  $-list: ();\n  $-breakpoints-is-a-list: true;\n\n  // Retrieve the list of breakpoint(s) to iterate on.\n  @if $breakpoints == auto {\n    $-list: $breakpoint-classes;\n  }\n  @else if type-of($breakpoints) == 'list' {\n    $-list: $breakpoints;\n  }\n  @else if type-of($breakpoints) == 'string' {\n    $-list: ($breakpoints);\n    $-breakpoints-is-a-list: false;\n  }\n  @else {\n    @error 'Wrong syntax for \"$breakpoints\" in \"-zf-each-breakpoint-in()\". Got \"#{$breakpoints}\" (#{type-of($breakpoints)}). Expected a breakpoint name, a list of breakpoints or \"auto\"';\n  }\n\n  // Add or remove the zero breakpoint according to `$zero-breakpoint`\n  @if $zero-breakpoint == true {\n    $-list: join(($-zf-zero-breakpoint), sl-remove($-list, $-zf-zero-breakpoint));\n  }\n  @else if $zero-breakpoint == false {\n    $-list: sl-remove($-list, $-zf-zero-breakpoint);\n  }\n\n  // Iterate on breakpoint(s)\n  @each $bp in $-list {\n    $old-zf-size: null;\n    @if global-variable-exists(-zf-size) {\n      $old-zf-size: $-zf-size;\n    }\n    $-zf-size: $bp !global;\n\n    @if ($media-queries == true or ($media-queries == 'for-lists' and $-breakpoints-is-a-list)) {\n      @include breakpoint($bp) {\n        @content;\n      }\n    }\n    @else {\n      @content;\n    }\n\n    $-zf-size: $old-zf-size !global;\n  }\n}\n\n/// Generate the `@content` passed to the mixin with a value `$-zf-bp-value` related to a breakpoint, depending on the `$name` parameter:\n/// - For a single value, `$-zf-bp-value` is this value.\n/// - For a breakpoint name, `$-zf-bp-value` is the corresponding breakpoint value in `$map`.\n/// - For \"auto\", `$-zf-bp-value` is the corresponding breakpoint value in `$map` and is passed to `@content`, which is made responsive for each breakpoint of `$map`.\n/// @param {Number|Array|Keyword} $name [auto] - Single value, breakpoint name, or list of breakpoint names to use. \"auto\" by default.\n/// @param {Number|Map} $map - Map of breakpoints and values or single value to use.\n@mixin -zf-breakpoint-value(\n  $name: auto,\n  $map: null\n) {\n  @if $name == auto and type-of($map) == 'map' {\n    // \"auto\"\n    @each $k, $v in $map {\n      @include breakpoint($k) {\n        @include -zf-breakpoint-value($v, $map) {\n          @content;\n        }\n      }\n    }\n  }\n  @else {\n    // breakpoint name\n    @if type-of($name) == 'string' {\n      $bp-value: -zf-get-bp-val($map, $name);\n      @if $bp-value != null {\n        $name: $bp-value;\n      }\n    }\n\n    // breakpoint value\n    $-zf-bp-value: $name !global;\n    @content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Font color of text inputs.\n/// @type Color\n$input-color: $black !default;\n\n/// Font color of placeholder text within text inputs.\n/// @type Color\n$input-placeholder-color: $medium-gray !default;\n\n/// Font family of text inputs.\n/// @type Font\n$input-font-family: inherit !default;\n\n/// Font size of text inputs.\n/// @type Number\n$input-font-size: rem-calc(16) !default;\n\n/// Font weight of text inputs.\n/// @type Keyword\n$input-font-weight: $global-weight-normal !default;\n\n/// Line height of text inputs.\n/// @type Keyword\n$input-line-height: $global-lineheight !default;\n\n/// Background color of text inputs.\n/// @type Color\n$input-background: $white !default;\n\n/// Background color of focused of text inputs.\n/// @type Color\n$input-background-focus: $white !default;\n\n/// Background color of disabled text inputs.\n/// @type Color\n$input-background-disabled: $light-gray !default;\n\n/// Border around text inputs.\n/// @type Border\n$input-border: 1px solid $medium-gray !default;\n\n/// Border around focused text inputs.\n/// @type Color\n$input-border-focus: 1px solid $dark-gray !default;\n\n/// Padding of text inputs.\n/// @type Color\n$input-padding: $form-spacing * 0.5 !default;\n\n/// Box shadow inside text inputs when not focused.\n/// @type Shadow\n$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default;\n\n/// Box shadow outside text inputs when focused.\n/// @type Shadow\n$input-shadow-focus: 0 0 5px $medium-gray !default;\n\n/// Cursor to use when hovering over a disabled text input.\n/// @type Cursor\n$input-cursor-disabled: not-allowed !default;\n\n/// Properties to transition on text inputs.\n/// @type Transition\n$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out !default;\n\n/// Enables the up/down buttons that Chrome and Firefox add to `<input type='number'>` elements.\n/// @type Boolean\n$input-number-spinners: true !default;\n\n/// Radius for text inputs.\n/// @type Border\n$input-radius: $global-radius !default;\n\n/// Border radius for form buttons, defaulted to global-radius.\n/// @type Number\n$form-button-radius: $global-radius !default;\n\n@mixin form-element {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  display: block;\n  box-sizing: border-box;\n  width: 100%;\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  border: $input-border;\n  border-radius: $input-radius;\n  background-color: $input-background;\n  box-shadow: $input-shadow;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n}\n\n@mixin foundation-form-text {\n  // Text inputs\n  #{text-inputs()},\n  textarea {\n    @include form-element;\n    appearance: none;\n  }\n\n  // Text areas\n  textarea {\n    max-width: 100%;\n\n    &[rows] {\n      height: auto;\n    }\n  }\n\n  input,\n  textarea {\n    // Disabled/readonly state\n    &:disabled,\n    &[readonly] {\n      background-color: $input-background-disabled;\n      cursor: $input-cursor-disabled;\n    }\n  }\n\n  // Reset styles on button-like inputs\n  [type='submit'],\n  [type='button'] {\n    appearance: none;\n    border-radius: $form-button-radius;\n  }\n\n  // Reset Normalize setting content-box to search elements\n  input[type='search'] { // sass-lint:disable-line no-qualifying-elements\n    box-sizing: border-box;\n  }\n\n  // Number input styles\n  [type='number'] {\n    @if not $input-number-spinners {\n      -moz-appearance: textfield; // sass-lint:disable-line no-vendor-prefixes\n\n      &::-webkit-inner-spin-button,\n      &::-webkit-outer-spin-button {\n        -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n        margin: 0;\n      }\n    }\n  }\n\n  // Placeholder text\n  ::placeholder {\n    color: $input-placeholder-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n@mixin foundation-form-checkbox {\n  [type='file'],\n  [type='checkbox'],\n  [type='radio'] {\n    margin: 0 0 $form-spacing;\n  }\n\n  // Styles for input/label siblings\n  [type='checkbox'] + label,\n  [type='radio'] + label {\n    display: inline-block;\n    vertical-align: baseline;\n\n    margin-#{$global-left}: $form-spacing * 0.5;\n    margin-#{$global-right}: $form-spacing;\n    margin-bottom: 0;\n\n    &[for] {\n      cursor: pointer;\n    }\n  }\n\n  // Styles for inputs inside labels\n  label > [type='checkbox'],\n  label > [type='radio'] {\n    margin-#{$global-right}: $form-spacing * 0.5;\n  }\n\n  // Normalize file input width\n  [type='file'] {\n    width: 100%;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color for form labels.\n/// @type Color\n$form-label-color: $black !default;\n\n/// Font size for form labels.\n/// @type Number\n$form-label-font-size: rem-calc(14) !default;\n\n/// Font weight for form labels.\n/// @type Keyword\n$form-label-font-weight: $global-weight-normal !default;\n\n/// Line height for form labels. The higher the number, the more space between the label and its input field.\n/// @type Number\n$form-label-line-height: 1.8 !default;\n\n@mixin form-label {\n  display: block;\n  margin: 0;\n\n  font-size: $form-label-font-size;\n  font-weight: $form-label-font-weight;\n  line-height: $form-label-line-height;\n  color: $form-label-color;\n}\n\n@mixin form-label-middle {\n  $input-border-width: get-border-value($input-border, width);\n\n  margin: 0 0 $form-spacing;\n  line-height: $global-lineheight;\n  padding: ($form-spacing * 0.5 + rem-calc($input-border-width)) 0;\n}\n\n@mixin foundation-form-label {\n  label {\n    @include form-label;\n\n    &.middle {\n      @include form-label-middle;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default color for help text.\n/// @type Color\n$helptext-color: $black !default;\n\n/// Default font size for help text.\n/// @type Number\n$helptext-font-size: rem-calc(13) !default;\n\n/// Default font style for help text.\n/// @type Keyword\n$helptext-font-style: italic !default;\n\n@mixin foundation-form-helptext {\n  .help-text {\n    $margin-top: ($form-spacing * 0.5) * -1;\n\n    margin-top: $margin-top;\n    font-size: $helptext-font-size;\n    font-style: $helptext-font-style;\n    color: $helptext-color;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Color of labels prefixed to an input.\n/// @type Color\n$input-prefix-color: $black !default;\n\n/// Background color of labels prefixed to an input.\n/// @type Color\n$input-prefix-background: $light-gray !default;\n\n/// Border around labels prefixed to an input.\n/// @type Border\n$input-prefix-border: 1px solid $medium-gray !default;\n\n/// Left/right padding of an pre/postfixed input label\n$input-prefix-padding: 1rem !default;\n\n@mixin foundation-form-prepostfix {\n  $height: ($input-font-size * $input-line-height) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  .input-group {\n    display: if($global-flexbox, flex, table);\n    width: 100%;\n    margin-bottom: $form-spacing;\n\n    @if $global-flexbox {\n      align-items: stretch;\n    }\n\n    > :first-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, 0 $input-radius $input-radius 0, $input-radius 0 0 $input-radius);\n      }\n    }\n\n    > :last-child {\n      &, &.input-group-button > * {\n        border-radius: if($global-text-direction == rtl, $input-radius 0 0 $input-radius, 0 $input-radius $input-radius 0);\n      }\n    }\n  }\n\n  %input-group-child {\n    margin: 0;\n    white-space: nowrap;\n\n    @if not $global-flexbox {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n\n  .input-group-label {\n    @extend %input-group-child;\n    padding: 0 $input-prefix-padding;\n    border: $input-prefix-border;\n    background: $input-prefix-background;\n\n    color: $input-prefix-color;\n    text-align: center;\n    white-space: nowrap;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n      align-items: center;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    @if has-value($input-prefix-border) {\n      &:first-child {\n        border-#{$global-right}: 0;\n      }\n\n      &:last-child {\n        border-#{$global-left}: 0;\n      }\n    }\n  }\n\n  .input-group-field {\n    @extend %input-group-child;\n    border-radius: 0;\n\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n      min-width: 0;\n    }\n  }\n\n  .input-group-button {\n    @extend %input-group-child;\n    padding-top: 0;\n    padding-bottom: 0;\n    text-align: center;\n\n    @if $global-flexbox {\n      display: flex;\n      flex: 0 0 auto;\n    }\n    @else {\n      width: 1%;\n      height: 100%;\n    }\n\n    a,\n    input,\n    button,\n    label {\n      @extend %input-group-child;\n\n      @if $global-flexbox {\n        align-self: stretch;\n        height: auto;\n      }\n      @else {\n        height: $height;\n      }\n      padding-top: 0;\n      padding-bottom: 0;\n      font-size: $input-font-size;\n    }\n  }\n\n  // Specificity bump needed to prevent override by buttons\n  @if not $global-flexbox {\n    .input-group {\n      .input-group-button {\n        display: table-cell;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Default border around custom fieldsets.\n/// @type Border\n$fieldset-border: 1px solid $medium-gray !default;\n\n/// Default padding inside custom fieldsets.\n/// @type Number\n$fieldset-padding: rem-calc(20) !default;\n\n/// Default margin around custom fieldsets.\n/// @type Number\n$fieldset-margin: rem-calc(18 0) !default;\n\n/// Default padding between the legend text and fieldset border.\n/// @type Number\n$legend-padding: rem-calc(0 3) !default;\n\n@mixin fieldset {\n  margin: $fieldset-margin;\n  padding: $fieldset-padding;\n  border: $fieldset-border;\n\n  legend {\n    // Covers up the fieldset's border to create artificial padding\n    margin: 0;\n    margin-#{$global-left}: rem-calc(-3);\n    padding: $legend-padding;\n  }\n}\n\n@mixin foundation-form-fieldset {\n  fieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n  }\n\n  legend {\n    max-width: 100%;\n    margin-bottom: $form-spacing * 0.5;\n  }\n\n  .fieldset {\n    @include fieldset;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group forms\n////\n\n/// Background color for select menus.\n/// @type Color\n$select-background: $white !default;\n\n/// Color of the dropdown triangle inside select menus. Set to `transparent` to remove it entirely.\n/// @type Color\n$select-triangle-color: $dark-gray !default;\n\n/// Default radius for select menus.\n/// @type Color\n$select-radius: $global-radius !default;\n\n@mixin form-select {\n  $height: ($input-font-size * unitless-calc($input-line-height)) + (get-side($input-padding, 'top') + get-side($input-padding, 'bottom')) - rem-calc(1);\n\n  height: $height;\n  margin: 0 0 $form-spacing;\n  padding: $input-padding;\n\n  appearance: none;\n  border: $input-border;\n  border-radius: $select-radius;\n  background-color: $select-background;\n\n  font-family: $input-font-family;\n  font-size: $input-font-size;\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n\n  @if $select-triangle-color != transparent {\n    @include background-triangle($select-triangle-color);\n    background-origin: content-box;\n    background-position: $global-right (-$form-spacing) center;\n    background-repeat: no-repeat;\n    background-size: 9px 6px;\n\n    padding-#{$global-right}: ($form-spacing * 1.5);\n  }\n\n  @if has-value($input-transition) {\n    transition: $input-transition;\n  }\n\n  // Focus state\n  &:focus {\n    outline: none;\n    border: $input-border-focus;\n    background-color: $input-background-focus;\n    box-shadow: $input-shadow-focus;\n\n    @if has-value($input-transition) {\n      transition: $input-transition;\n    }\n  }\n\n  // Disabled state\n  &:disabled {\n    background-color: $input-background-disabled;\n    cursor: $input-cursor-disabled;\n  }\n\n  // Hide the dropdown arrow shown in newer IE versions\n  &::-ms-expand {\n    display: none;\n  }\n\n  &[multiple] {\n    height: auto;\n    background-image: none;\n  }\n  &:not([multiple]) {\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n}\n\n@mixin foundation-form-select {\n  select {\n    @include form-select;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group abide\n////\n\n/// Sets if error styles should be added to inputs.\n/// @type Boolean\n$abide-inputs: true !default;\n\n/// Sets if error styles should be added to labels.\n/// @type Boolean\n$abide-labels: true !default;\n\n/// Background color to use for invalid text inputs.\n/// @type Color\n$input-background-invalid: get-color(alert) !default;\n\n/// Color to use for labels of invalid inputs.\n/// @type Color\n$form-label-color-invalid: get-color(alert) !default;\n\n/// Default font color for form error text.\n/// @type Color\n$input-error-color: get-color(alert) !default;\n\n/// Default font size for form error text.\n/// @type Number\n$input-error-font-size: rem-calc(12) !default;\n\n/// Default font weight for form error text.\n/// @type Keyword\n$input-error-font-weight: $global-weight-bold !default;\n\n/// Styles the background and border of an input field to have an error state.\n///\n/// @param {Color} $background [$alert-color] - Color to use for the background and border.\n/// @param {Number} $background-lighten [10%] - Lightness level of the background color.\n@mixin form-input-error(\n  $background: $input-background-invalid,\n  $background-lighten: 10%\n) {\n  &:not(:focus) {\n    border-color: $background;\n    background-color: mix($background, $white, $background-lighten);\n\n    &::placeholder {\n      color: $background;\n    }\n  }\n}\n\n/// Adds error styles to a form element, using the values in the settings file.\n@mixin form-error {\n  display: none;\n  margin-top: $form-spacing * -0.5;\n  margin-bottom: $form-spacing;\n\n  font-size: $input-error-font-size;\n  font-weight: $input-error-font-weight;\n  color: $input-error-color;\n}\n\n@mixin foundation-form-error {\n  @if $abide-inputs {\n    // Error class for invalid inputs\n    .is-invalid-input {\n      @include form-input-error;\n    }\n  }\n\n  @if $abide-labels {\n    // Error class for labels of invalid outputs\n    .is-invalid-label {\n      color: $form-label-color-invalid;\n    }\n  }\n\n  // Form error element\n  .form-error {\n    @include form-error;\n\n    &.is-visible {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-base\n////\n\n// Base Typography\n// - - - - - - - - - - - - - - -\n// These are styles applied to basic HTML tags, including:\n//   - Paragraphs <p>\n//   - Bold/italics <b> <strong> <i> <em>\n//   - Small text <small>\n//   - Headings <h1>-<h6>\n//   - Anchors <a>\n//   - Dividers <hr>\n//   - Lists <ul> <ol> <dl>\n//   - Blockquotes <blockquote>\n//   - Code blocks <code>\n//   - Abbreviations <abbr>\n//   - Citations <cite>\n//   - Keystrokes <kbd>\n\n/// Font family for header elements.\n/// @type String | List\n$header-font-family: $body-font-family !default;\n\n/// Font weight of headers.\n/// @type String\n$header-font-weight: $global-weight-normal !default;\n\n/// Font style (e.g. italicized) of headers.\n/// @type String\n$header-font-style: normal !default;\n\n/// Font stack used for elements that use monospaced type, such as code samples\n/// @type String | List\n$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace !default;\n\n/// Color of headers.\n/// @type Color\n$header-color: inherit !default;\n\n/// Line height of headers.\n/// @type Number\n$header-lineheight: 1.4 !default;\n\n/// Bottom margin of headers.\n/// @type Number\n$header-margin-bottom: 0.5rem !default;\n\n/// Styles for headings at various screen sizes. Each key is a breakpoint, and each value is a map of heading styles.\n/// @type Map\n$header-styles: (\n  small: (\n    'h1': ('font-size': 24),\n    'h2': ('font-size': 20),\n    'h3': ('font-size': 19),\n    'h4': ('font-size': 18),\n    'h5': ('font-size': 17),\n    'h6': ('font-size': 16),\n  ),\n  medium: (\n    'h1': ('font-size': 48),\n    'h2': ('font-size': 40),\n    'h3': ('font-size': 31),\n    'h4': ('font-size': 25),\n    'h5': ('font-size': 20),\n    'h6': ('font-size': 16),\n  ),\n) !default;\n\n// $header-styles map is built from $header-sizes in order to ensure downward compatibility\n// when $header-sizes is depreciated, $header-styles needs to get !default values like settings.scss\n@function build-from-header-sizes($header-sizes) {\n  @warn 'Note, that $header-sizes has been replaced with $header-styles. $header-sizes still works, but it is going to be depreciated.';\n  $header-styles: ();\n  @each $size, $headers in $header-sizes {\n    $header-map: ();\n    @each $header, $font-size in $headers {\n      $header-map: map-merge($header-map, ($header: ('font-size': $font-size)));\n    }\n    $header-styles: map-merge($header-styles, ($size: $header-map));\n  }\n  @return $header-styles;\n}\n\n// If it exists $headers-sizes is used to build $header-styles. See the documentation.\n@if variable-exists(header-sizes) {\n  $header-styles: build-from-header-sizes($header-sizes);\n}\n\n/// Text rendering method of headers.\n/// @type String\n$header-text-rendering: optimizeLegibility !default;\n\n/// Font size of `<small>` elements.\n/// @type Number\n$small-font-size: 80% !default;\n\n/// Color of `<small>` elements when placed inside headers.\n/// @type Color\n$header-small-font-color: $medium-gray !default;\n\n/// Line height of text inside `<p>` elements.\n/// @type Number\n$paragraph-lineheight: 1.6 !default;\n\n/// Bottom margin of paragraphs.\n/// @type Number\n$paragraph-margin-bottom: 1rem !default;\n\n/// Text rendering method for paragraph text.\n/// @type String\n$paragraph-text-rendering: optimizeLegibility !default;\n\n/// Use the `.code-inline` component as default for `<code>` elements.\n/// @type Boolean\n$enable-code-inline: true !default;\n\n/// Default color for links.\n/// @type Color\n$anchor-color: $primary-color !default;\n\n/// Default color for links on hover.\n/// @type Color\n$anchor-color-hover: scale-color($anchor-color, $lightness: -14%) !default;\n\n/// Default text decoration for links.\n/// @type String\n$anchor-text-decoration: none !default;\n\n/// Default text decoration for links on hover.\n/// @type String\n$anchor-text-decoration-hover: none !default;\n\n/// Maximum width of a divider.\n/// @type Number\n$hr-width: $global-width !default;\n\n/// Default border for a divider.\n/// @type List\n$hr-border: 1px solid $medium-gray !default;\n\n/// Default margin for a divider.\n/// @type Number | List\n$hr-margin: rem-calc(20) auto !default;\n\n/// Line height for items in a list.\n/// @type Number\n$list-lineheight: $paragraph-lineheight !default;\n\n/// Bottom margin for items in a list.\n/// @type Number\n$list-margin-bottom: $paragraph-margin-bottom !default;\n\n/// Bullet type to use for unordered lists (e.g., `square`, `circle`, `disc`).\n/// @type String\n$list-style-type: disc !default;\n\n/// Positioning for bullets on unordered list items.\n/// @type String\n$list-style-position: outside !default;\n\n/// Left (or right) margin for lists.\n/// @type Number\n$list-side-margin: 1.25rem !default;\n\n/// Left (or right) margin for a list inside a list.\n/// @type Number\n$list-nested-side-margin: 1.25rem !default;\n\n/// Bottom margin for `<dl>` elements.\n/// @type Number\n$defnlist-margin-bottom: 1rem !default;\n\n/// Font weight for `<dt>` elements.\n/// @type String\n$defnlist-term-weight: $global-weight-bold !default;\n\n/// Spacing between `<dt>` and `<dd>` elements.\n/// @type Number\n$defnlist-term-margin-bottom: 0.3rem !default;\n\n/// Text color of `<blockquote>` elements.\n/// @type Color\n$blockquote-color: $dark-gray !default;\n\n/// Padding inside a `<blockquote>` element.\n/// @type Number | List\n$blockquote-padding: rem-calc(9 20 0 19) !default;\n\n/// Side border for `<blockquote>` elements.\n/// @type List\n$blockquote-border: 1px solid $medium-gray !default;\n\n/// Use the `.cite-block` component as default for `<cite>` elements.\n/// @type Boolean\n$enable-cite-block: true !default;\n\n/// Font family for `<kbd>` elements.\n/// @type String | List\n$keystroke-font: $font-family-monospace !default;\n\n/// Text color for `<kbd>` elements.\n/// @type Color\n$keystroke-color: $black !default;\n\n/// Background color for `<kbd>` elements.\n/// @type Color\n$keystroke-background: $light-gray !default;\n\n/// Padding for `<kbd>` elements.\n/// @type Number | List\n$keystroke-padding: rem-calc(2 4 0) !default;\n\n/// Border radius for `<kbd>` elements.\n/// @type Number | List\n$keystroke-radius: $global-radius !default;\n\n/// Bottom border style for `<abbr>` elements.\n/// @type List\n$abbr-underline: 1px dotted $black !default;\n\n@mixin foundation-typography-base {\n  // Typography resets\n  div,\n  dl,\n  dt,\n  dd,\n  ul,\n  ol,\n  li,\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6,\n  pre,\n  form,\n  p,\n  blockquote,\n  th,\n  td {\n    margin: 0;\n    padding: 0;\n  }\n\n  // Paragraphs\n  p {\n    margin-bottom: $paragraph-margin-bottom;\n\n    font-size: inherit;\n    line-height: $paragraph-lineheight;\n    text-rendering: $paragraph-text-rendering;\n  }\n\n  // Emphasized text\n  em,\n  i {\n    font-style: italic;\n    line-height: inherit;\n  }\n\n  // Strong text\n  strong,\n  b {\n    font-weight: $global-weight-bold;\n    line-height: inherit;\n  }\n\n  // Small text\n  small {\n    font-size: $small-font-size;\n    line-height: inherit;\n  }\n\n  // Headings\n  h1, .h1,\n  h2, .h2,\n  h3, .h3,\n  h4, .h4,\n  h5, .h5,\n  h6, .h6 {\n    font-family: $header-font-family;\n    font-style: $header-font-style;\n    font-weight: $header-font-weight;\n    color: $header-color;\n    text-rendering: $header-text-rendering;\n\n    small {\n      line-height: 0;\n      color: $header-small-font-color;\n    }\n  }\n\n  // Heading styles\n  @each $size, $headers in $header-styles {\n    @include breakpoint($size) {\n      @each $header, $header-defs in $headers {\n        $font-size-temp: 1rem;\n        #{$header}, .#{$header} {\n\n          @if map-has-key($header-defs, font-size) {\n            $font-size-temp: rem-calc(map-get($header-defs, font-size));\n            font-size: $font-size-temp;\n          } @else if map-has-key($header-defs, fs) {\n            $font-size-temp: rem-calc(map-get($header-defs, fs));\n            font-size: $font-size-temp;\n          } @else if $size == $-zf-zero-breakpoint {\n            font-size: $font-size-temp;\n          }\n          @if map-has-key($header-defs, line-height) {\n            line-height: unitless-calc(map-get($header-defs, line-height), $font-size-temp);\n          } @else if map-has-key($header-defs, lh) {\n            line-height: unitless-calc(map-get($header-defs, lh), $font-size-temp);\n          } @else if $size == $-zf-zero-breakpoint {\n            line-height: unitless-calc($header-lineheight, $font-size-temp);\n          }\n\n          @if map-has-key($header-defs, margin-top) {\n            margin-top: rem-calc(map-get($header-defs, margin-top));\n          } @else if map-has-key($header-defs, mt) {\n            margin-top: rem-calc(map-get($header-defs, mt));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-top: 0;\n          }\n          @if map-has-key($header-defs, margin-bottom) {\n            margin-bottom: rem-calc(map-get($header-defs, margin-bottom));\n          } @else if map-has-key($header-defs, mb) {\n            margin-bottom: rem-calc(map-get($header-defs, mb));\n          } @else if $size == $-zf-zero-breakpoint {\n            margin-bottom: rem-calc($header-margin-bottom);\n          }\n        }\n      }\n    }\n  }\n\n  // Links\n  a {\n    line-height: inherit;\n    color: $anchor-color;\n    text-decoration: $anchor-text-decoration;\n\n    cursor: pointer;\n\n    &:hover,\n    &:focus {\n      color: $anchor-color-hover;\n      @if $anchor-text-decoration-hover != $anchor-text-decoration {\n        text-decoration: $anchor-text-decoration-hover;\n      }\n    }\n\n    img {\n      border: 0;\n    }\n  }\n\n  // Horizontal rule\n  hr {\n    clear: both;\n\n    max-width: $hr-width;\n    height: 0;\n    margin: $hr-margin;\n\n    border-top: 0;\n    border-right: 0;\n    border-bottom: $hr-border;\n    border-left: 0;\n  }\n\n  // Lists\n  ul,\n  ol,\n  dl {\n    margin-bottom: $list-margin-bottom;\n    list-style-position: $list-style-position;\n    line-height: $list-lineheight;\n  }\n\n  // List items\n  li {\n    font-size: inherit;\n  }\n\n  // Unordered lists\n  ul {\n    margin-#{$global-left}: $list-side-margin;\n    list-style-type: $list-style-type;\n  }\n\n  // Ordered lists\n  ol {\n    margin-#{$global-left}: $list-side-margin;\n  }\n\n  // Nested unordered/ordered lists\n  ul, ol {\n    & & {\n      margin-#{$global-left}: $list-nested-side-margin;\n      margin-bottom: 0;\n    }\n  }\n\n  // Definition lists\n  dl {\n    margin-bottom: $defnlist-margin-bottom;\n\n    dt {\n      margin-bottom: $defnlist-term-margin-bottom;\n      font-weight: $defnlist-term-weight;\n    }\n  }\n\n  // Blockquotes\n  blockquote {\n    margin: 0 0 $paragraph-margin-bottom;\n    padding: $blockquote-padding;\n    border-#{$global-left}: $blockquote-border;\n\n    &, p {\n      line-height: $paragraph-lineheight;\n      color: $blockquote-color;\n    }\n  }\n\n  // Inline Citations\n  @if ($enable-cite-block == true) {\n    cite {\n      // Extending a class is not recommended.\n      // TODO: Break the typography-base/typography-helpers separation\n      @extend %cite-block;\n    }\n  }\n\n  // Abbreviations\n  abbr, abbr[title] {\n    border-bottom: $abbr-underline;\n    cursor: help;\n    text-decoration: none;\n  }\n\n  // Figures\n  figure {\n    margin: 0;\n  }\n\n  // Code\n  @if ($enable-code-inline == true) {\n    code {\n      @extend %code-inline;\n    }\n  }\n\n  // Keystrokes\n  kbd {\n    margin: 0;\n    padding: $keystroke-padding;\n\n    background-color: $keystroke-background;\n\n    font-family: $keystroke-font;\n    color: $keystroke-color;\n\n    @if has-value($keystroke-radius) {\n      border-radius: $keystroke-radius;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group typography-helpers\n////\n\n/// Default font size for lead paragraphs.\n/// @type Number\n$lead-font-size: $global-font-size * 1.25 !default;\n\n/// Default line height for lead paragraphs.\n/// @type String\n$lead-lineheight: 1.6 !default;\n\n/// Default line height for subheaders.\n/// @type Number\n$subheader-lineheight: 1.4 !default;\n\n/// Default font color for subheaders.\n/// @type Color\n$subheader-color: $dark-gray !default;\n\n/// Default font weight for subheaders.\n/// @type String\n$subheader-font-weight: $global-weight-normal !default;\n\n/// Default top margin for subheaders.\n/// @type Number\n$subheader-margin-top: 0.2rem !default;\n\n/// Default bottom margin for subheaders.\n/// @type Number\n$subheader-margin-bottom: 0.5rem !default;\n\n/// Default font size for statistic numbers.\n/// @type Number\n$stat-font-size: 2.5rem !default;\n\n/// Text color for `.cite-block` component.\n/// @type Color\n$cite-color: $dark-gray !default;\n\n/// Font size for `.cite-block` component.\n/// @type Number\n$cite-font-size: rem-calc(13) !default;\n\n/// Pseudo content for `.cite-block` component.\n/// @type String\n$cite-pseudo-content: '\\2014 \\0020' !default;\n\n/// Text color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-color: $black !default;\n\n/// Font family of `.code-inline` and `.code-block` components.\n/// @type String | List\n$code-font-family: $font-family-monospace !default;\n\n/// Font weight of text in `.code-inline` and `.code-block` components.\n/// @type String\n$code-font-weight: $global-weight-normal !default;\n\n/// Background color of `.code-inline` and `.code-block` components.\n/// @type Color\n$code-background: $light-gray !default;\n\n/// Border around `.code-inline` and `.code-block` components.\n/// @type List\n$code-border: 1px solid $medium-gray !default;\n\n/// Padding around text of the `.code-inline` component.\n/// @type Number | List\n$code-padding: rem-calc(2 5 1) !default;\n\n/// Padding around text of the `.code-block` component.\n/// @type Number | List\n$code-block-padding: 1rem !default;\n\n/// Margin under the `.code-block` component.\n/// @type Number\n$code-block-margin-bottom: 1.5rem !default;\n\n@mixin cite-block {\n  display: block;\n  color: $cite-color;\n  font-size: $cite-font-size;\n\n  &:before {\n    content: $cite-pseudo-content;\n  }\n}\n\n/// Add basic styles for a code helper.\n/// See `code-inline` and `code-block` mixins.\n@mixin code-style {\n  border: $code-border;\n  background-color: $code-background;\n\n  font-family: $code-font-family;\n  font-weight: $code-font-weight;\n  color: $code-color;\n}\n\n/// Make code helper from the `code-style` mixin inline.\n/// Used to generate `.code-inline`\n@mixin code-inline {\n  display: inline;\n  max-width: 100%;\n  word-wrap: break-word;\n\n  padding: $code-padding;\n}\n\n/// Make code helper from the `code-style` mixin a block.\n/// Used to generate `.code-block`\n@mixin code-block {\n  display: block;\n  overflow: auto;\n  white-space: pre;\n\n  padding: $code-block-padding;\n  margin-bottom: $code-block-margin-bottom;\n}\n\n@mixin foundation-typography-helpers {\n  // Use to create a subheading under a main header\n  // Make sure you pair the two elements in a <header> element, like this:\n  // <header>\n  //   <h1>Heading</h1>\n  //   <h2>Subheading</h2>\n  // </header>\n  .subheader {\n    margin-top: $subheader-margin-top;\n    margin-bottom: $subheader-margin-bottom;\n\n    font-weight: $subheader-font-weight;\n    line-height: $subheader-lineheight;\n    color: $subheader-color;\n  }\n\n  // Use to style an introductory lead, deck, blurb, etc.\n  .lead {\n    font-size: $lead-font-size;\n    line-height: $lead-lineheight;\n  }\n\n  // Use to style a large number to display a statistic\n  .stat {\n    font-size: $stat-font-size;\n    line-height: 1;\n\n    p + & {\n      margin-top: -1rem;\n    }\n  }\n\n  ul, ol {\n    // Use to remove numbers from ordered list & bullets from unordered list\n    &.no-bullet {\n      margin-#{$global-left}: 0;\n      list-style: none;\n    }\n  }\n\n  %cite-block {\n    @include cite-block;\n  }\n\n  .cite-block {\n    @extend %cite-block;\n  }\n\n  %code-inline {\n    @include code-style;\n    @include code-inline;\n  }\n\n  .code-inline {\n    @extend %code-inline;\n  }\n\n  .code-block {\n    @include code-style;\n    @include code-block;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-text-alignment {\n  @each $size in $breakpoint-classes {\n    @include breakpoint($size) {\n      @each $align in (left, right, center, justify) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-text-#{$align} {\n            text-align: $align;\n          }\n        }\n        @else {\n          .text-#{$align} {\n            text-align: $align;\n          }\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// If `true`, all elements will have transparent backgrounds when printed, to save on ink.\n/// @type Boolean\n/// @group global\n$print-transparent-backgrounds: true !default;\n\n/// If `true`, displays next to all links their \"href\" when printed.\n/// @type Boolean\n/// @group global\n$print-hrefs: true !default;\n\n// sass-lint:disable-all\n\n@mixin foundation-print-styles {\n  .show-for-print { display: none !important; }\n\n  @media print {\n    * {\n      // Ensure a \"black-on-white\" print by removing backgrounds,\n      // using black text everywhere and forcing the browser to economize ink.\n      @if $print-transparent-backgrounds {\n        background: transparent !important;\n        color: black !important; // Black prints faster: h5bp.com/s\n        print-color-adjust: economy;\n      }\n      // Otherwise, prevent any economy by the browser.\n      @else {\n        print-color-adjust: exact;\n      }\n\n      box-shadow: none !important;\n      text-shadow: none !important;\n    }\n\n    .show-for-print { display: block !important; }\n    .hide-for-print { display: none !important; }\n\n    table.show-for-print { display: table !important; }\n    thead.show-for-print { display: table-header-group !important; }\n    tbody.show-for-print { display: table-row-group !important; }\n    tr.show-for-print { display: table-row !important; }\n    td.show-for-print { display: table-cell !important; }\n    th.show-for-print { display: table-cell !important; }\n\n    // Display the URL of a link after the text\n    a,\n    a:visited { text-decoration: underline;}\n    @if $print-hrefs {\n      a[href]:after { content: ' (' attr(href) ')'; }\n    }\n\n    // Don't display the URL for images or JavaScript/internal links\n    .ir a:after,\n    a[href^='javascript:']:after,\n    a[href^='#']:after { content: ''; }\n\n    // Display what an abbreviation stands for after the text\n    abbr[title]:after { content: ' (' attr(title) ')'; }\n\n    // Prevent page breaks in the middle of a blockquote or preformatted text block\n    pre,\n    blockquote {\n      border: 1px solid $dark-gray;\n      page-break-inside: avoid;\n    }\n\n    // h5bp.com/t\n    thead { display: table-header-group; }\n\n    tr,\n    img { page-break-inside: avoid; }\n\n    img { max-width: 100% !important; }\n\n    @page { margin: 0.5cm; }\n\n    p,\n    h2,\n    h3 {\n      orphans: 3;\n      widows: 3;\n    }\n\n    // Avoid page breaks after a heading\n    h2,\n    h3 { page-break-after: avoid; }\n\n    // Helper to re-allow page breaks in the middle of certain elements (e.g. pre, blockquote, tr)\n    .print-break-inside {\n      page-break-inside: auto;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n// Margin Grid classes\n@mixin xy-base-grid-classes {\n\n  // Grid Container\n  .grid-container {\n    @include xy-grid-container;\n\n    &.fluid {\n      @include xy-grid-container(100%);\n    }\n\n    &.full {\n      @include xy-grid-container(100%, 0);\n    }\n  }\n\n  // Base grid styles\n  .grid-x {\n    @include xy-grid;\n  }\n\n  .cell {\n    @include xy-cell(full, $gutter-type: none);\n\n    &.auto {\n      @include xy-cell-base(auto);\n    }\n\n    &.shrink {\n      @include xy-cell-base(shrink);\n    }\n\n  }\n  .grid-x {\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none);\n    }\n  }\n\n  // Auto width\n  @include -zf-each-breakpoint() {\n    // This is a bit of a hack/workaround, see these issues & PRs for the backstory:\n    // https://github.com/foundation/foundation-sites/issues/10244\n    // https://github.com/foundation/foundation-sites/pull/10222 and\n    // https://github.com/foundation/foundation-sites/pull/10164\n    .grid-x {\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n  }\n\n  @include -zf-each-breakpoint() {\n    // Responsive \"auto\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-auto {\n        @include xy-cell(auto, $gutter-type: none);\n      }\n    }\n\n    %-xy-cell-base-shrink-horizontal-#{$-zf-size} {\n      @include xy-cell-base(shrink);\n    }\n\n    // Responsive \"shrink\" modifier\n    @if not($-zf-size == $-zf-zero-breakpoint) {\n      .grid-x > .#{$-zf-size}-shrink {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size(shrink, $gutter-type: none);\n      }\n    }\n\n    // Responsive width modifiers\n    @for $i from 1 through $grid-columns {\n      // Sizing (percentage)\n      .grid-x > .#{$-zf-size}-#{$i} {\n        @extend %-xy-cell-base-shrink-horizontal-#{$-zf-size};\n        @include xy-cell-size($i, $gutter-type: none);\n      }\n    }\n  }\n\n  // Reset width when using `.grid-margin-x` not on `.grid-x`\n  .grid-margin-x:not(.grid-x) > .cell {\n    width: auto;\n  }\n\n  // Reset height when using `.grid-margin-y` not on `.grid-y`\n  .grid-margin-y:not(.grid-y) > .cell {\n    height: auto;\n  }\n}\n\n@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) {\n  $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-');\n  > .#{$prefix}auto {\n    @include xy-cell-size(auto, $vertical: $vertical);\n  }\n\n  > .#{$prefix}shrink {\n    @include xy-cell-size(shrink, $vertical: $vertical);\n  }\n\n  @for $i from 1 through $grid-columns {\n    // Sizing (percentage)\n    $classname: if($vertical, '.#{$class-breakpoint}-#{$i}', '.#{$class-breakpoint}-#{$i}');\n\n    > #{$classname} {\n      @include xy-cell-size($i, $vertical: $vertical);\n    }\n  }\n}\n\n// Margin Grid classes\n@mixin xy-margin-grid-classes(\n  $gutter-position: left right,\n  $vertical: false,\n  $wrapping-selector: '.grid-margin-x'\n){\n  #{$wrapping-selector} {\n    @include xy-gutters($negative: true, $gutter-position: $gutter-position);\n\n    // Base cell styles\n    > .cell {\n      @include xy-cell($vertical: $vertical, $output: (size gutters));\n    }\n\n    // base styles need to all be before the auto and shrink styles\n    @include -zf-each-breakpoint() {\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) {\n        > .cell {\n          @include xy-cell($vertical: $vertical, $output: (size gutters));\n        }\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n\n      // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n      // for all prior breakpoints.\n      // As their gutter is defined with their width/height, even breakpoint without a new margin must be\n      // generated to not having their width/height overrided by re-adjusted smaller breakpoints.\n      @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n        @each $bp in -zf-breakpoints-less-than($-zf-size) {\n          @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical);\n        }\n      }\n\n      @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical);\n    }\n  }\n}\n\n// Padding Grid classes\n@mixin xy-padding-grid-classes {\n  .grid-padding-x {\n\n    // Negative margin for nested grids\n    .grid-padding-x {\n      @include xy-gutters($negative: true);\n    }\n\n    // Negative margin for grids within `grid-container/grid-container.fluid`\n    // This allows margin and padding grids to line up with eachother\n    .grid-container:not(.full) > & {\n      @include xy-gutters($negative: true);\n    }\n\n    // Base cell styles\n    > .cell {\n      @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding);\n    }\n  }\n}\n\n// Block Grid classes\n@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) {\n  @if $padding-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        .#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: padding, $output: (size));\n        }\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include -zf-each-breakpoint {\n      @for $i from 1 through $xy-block-grid-max {\n        // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights)\n        // for prior breakpoints based on the responsive gutter.\n        @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) {\n          @each $bp in -zf-breakpoints-less-than($-zf-size) {\n            @if(map-has-key($grid-margin-gutters, $bp)) {\n              .grid-margin-x.#{$bp}-up-#{$i} {\n                @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n              }\n            }\n          }\n        }\n      }\n      @for $i from 1 through $xy-block-grid-max {\n        .grid-margin-x.#{$-zf-size}-up-#{$i} {\n          @include xy-grid-layout($n: $i, $selector: '.cell', $gutter-type: margin, $output: (size));\n        }\n      }\n    }\n  }\n}\n\n// Collapse classes\n@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) {\n  @each $bp in $breakpoint-classes {\n    @if $margin-grid {\n      .#{$bp}-margin-collapse {\n        @include xy-grid-collapse($gutter-type: margin, $min-breakpoint: $bp);\n      }\n    }\n\n    @if $padding-grid {\n      .#{$bp}-padding-collapse {\n        @include xy-grid-collapse($gutter-type: padding, $min-breakpoint: $bp);\n      }\n    }\n  }\n}\n\n// Offset classes\n@mixin xy-offset-cell-classes {\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $grid-columns {\n      // Offsets\n      $o: $i - 1;\n\n      .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding);\n      }\n\n      .grid-margin-x > .#{$-zf-size}-offset-#{$o} {\n        @include xy-cell-offset($o);\n      }\n    }\n  }\n}\n\n// Vertical Grid classes\n@mixin xy-vertical-grid-classes(\n  $margin-grid: true,\n  $padding-grid: true\n) {\n\n  // @include -zf-each-breakpoint() {\n  //   @if not($-zf-size == $-zf-zero-breakpoint) {\n  //   }\n  // }\n\n  .grid-y {\n    @include xy-grid(vertical, false);\n\n\n    > .cell {\n      @include xy-cell-reset();\n    }\n\n    > .auto {\n      @include xy-cell-size(auto, $gutter-type: none, $vertical: true);\n    }\n\n    > .shrink {\n      @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n    }\n\n\n    @include -zf-each-breakpoint() {\n      // This is a bit of a hack/workaround, see these issues and PRs for the backstory:\n      // https://github.com/foundation/foundation-sites/issues/10244\n      // https://github.com/foundation/foundation-sites/pull/10222 and\n      // https://github.com/foundation/foundation-sites/pull/10164\n      $str: \"> .#{$-zf-size}-shrink, > .#{$-zf-size}-full\";\n      @for $i from 1 through $grid-columns {\n        $str: $str + \", > .#{$-zf-size}-#{$i}\";\n      }\n      #{$str} {\n        flex-basis: auto;\n      }\n    }\n\n    @include -zf-each-breakpoint() {\n      // Responsive \"auto\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-auto {\n          @include xy-cell(auto, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      %-xy-cell-base-shrink-vertical-#{$-zf-size} {\n        @include xy-cell-base(shrink);\n      }\n\n      // Responsive \"shrink\" modifier\n      @if not($-zf-size == $-zf-zero-breakpoint) {\n        > .#{$-zf-size}-shrink {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size(shrink, $gutter-type: none, $vertical: true);\n        }\n      }\n\n      // Responsive width modifiers\n      @for $i from 1 through $grid-columns {\n        // Sizing (percentage)\n        > .#{$-zf-size}-#{$i} {\n          @extend %-xy-cell-base-shrink-vertical-#{$-zf-size};\n          @include xy-cell-size($i, $gutter-type: none, $vertical: true);\n        }\n      }\n\n    }\n  }\n\n  @if $padding-grid {\n    .grid-padding-y {\n      // Negative margin for nested grids\n      .grid-padding-y {\n        @include xy-gutters($negative: true, $gutter-position: top bottom);\n      }\n\n      // Base cell styles\n      > .cell {\n        @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom);\n      }\n    }\n  }\n\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n  }\n\n}\n\n@mixin xy-frame-grid-classes($vertical-grid: true, $margin-grid: true) {\n  // Framed grid styles\n  .grid-frame {\n    @include xy-grid-frame;\n  }\n\n  .cell .grid-frame {\n    width: 100%; // Same as include with $nested, but with less css\n  }\n\n  .cell-block {\n    @include xy-cell-block();\n  }\n\n  .cell-block-y {\n    @include xy-cell-block(true);\n  }\n\n\n  .cell-block-container {\n    @include xy-cell-block-container();\n  }\n\n\n  @include -zf-each-breakpoint(false) {\n\n    .#{$-zf-size}-grid-frame {\n      @include xy-grid-frame;\n    }\n\n    .cell .#{$-zf-size}-grid-frame {\n      width: 100%; // Same as include with $nested, but with less css\n    }\n\n    .#{$-zf-size}-cell-block {\n      @include xy-cell-block();\n    }\n\n    .#{$-zf-size}-cell-block-container {\n      @include xy-cell-block-container();\n    }\n\n    .#{$-zf-size}-cell-block-y {\n      @include xy-cell-block(true);\n    }\n  }\n\n  @if $vertical-grid {\n    .grid-y {\n      &.grid-frame {\n        @include xy-grid-frame(true);\n        width: auto;\n      }\n\n      @include -zf-each-breakpoint(false) {\n        &.#{$-zf-size}-grid-frame {\n          @include xy-grid-frame(true);\n          width: auto;\n        }\n\n      }\n    }\n    .cell {\n      .grid-y.grid-frame {\n        height: 100%; // Same as include with $nested, but with less css\n      }\n      @include -zf-each-breakpoint(false) {\n        .grid-y.#{$-zf-size}-grid-frame {\n          height: 100%; // Same as include with $nested, but with less css\n        }\n      }\n    }\n  }\n  @if $margin-grid {\n    @include xy-margin-grid-classes(top bottom, true, '.grid-margin-y');\n    .grid-frame.grid-margin-y {\n      @include xy-grid-frame(true, false, $grid-margin-gutters, $include-base: false);\n    }\n    @include -zf-each-breakpoint(false) {\n      .grid-margin-y.#{$-zf-size}-grid-frame {\n        @include xy-grid-frame(true, false, $grid-margin-gutters, $-zf-size, false);\n      }\n    }\n  }\n}\n\n// Final classes\n@mixin foundation-xy-grid-classes(\n  $base-grid: true,\n  $margin-grid: true,\n  $padding-grid: true,\n  $block-grid: true,\n  $collapse: true,\n  $offset: true,\n  $vertical-grid: true,\n  $frame-grid: true\n) {\n\n  // Base grid styles\n  @if($base-grid) {\n    @include xy-base-grid-classes();\n  }\n\n  // Margin grid\n  @if($margin-grid) {\n    @include xy-margin-grid-classes();\n  }\n\n  // Padding grid\n  @if($padding-grid) {\n    @include xy-padding-grid-classes();\n  }\n\n  // Block grid\n  @if($block-grid) {\n    @include xy-block-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Collapse gutters\n  @if($collapse) {\n    @include xy-collapse-grid-classes($margin-grid, $padding-grid);\n  }\n\n  // Offset gutters\n  @if($offset) {\n    @include xy-offset-cell-classes();\n  }\n\n  // Vertical grid\n  @if($vertical-grid) {\n    @include xy-vertical-grid-classes($margin-grid, $padding-grid);\n  }\n\n  @if ($frame-grid) {\n    @include xy-frame-grid-classes($vertical-grid, $margin-grid)\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Create gutters for a cell/container.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding.\n/// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids.\n@mixin xy-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $negative: false\n) {\n  $operator: if($negative, '-', '');\n\n  // If we have declared negative gutters, force type to `margin.\n  $gutter-type: if($negative, 'margin', $gutter-type);\n\n  // Output our margin gutters.\n  @if (type-of($gutters) == 'map') {\n    @include -zf-breakpoint-value(auto, $gutters) {\n      $gutter: rem-calc($-zf-bp-value) * 0.5;\n\n      // Loop through each gutter position\n      @each $value in $gutter-position {\n        #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n      }\n    }\n  }\n  @else if (type-of($gutters) == 'number') {\n    $gutter: rem-calc($gutters) * 0.5;\n\n    // Loop through each gutter position\n    @each $value in $gutter-position {\n      #{$gutter-type}-#{$value}: unquote(\"#{$operator}#{$gutter}\");\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Creates a max width container, designed to house your grid content.\n///\n/// @param {Number} $width [$grid-container] - a width to limit the container to.\n/// @param {Number} $padding [$grid-container-padding] - paddings of the container.\n@mixin xy-grid-container(\n  $width: $grid-container,\n  $padding: $grid-container-padding\n) {\n  @include xy-gutters($gutters: $padding, $gutter-type: padding);\n\n  max-width: $width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/// Creates a container for your flex cells.\n///\n/// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within.\n/// @param {Boolean} $wrap [true] - If the cells within should wrap or not.\n@mixin xy-grid(\n  $direction: horizontal,\n  $wrap: true\n) {\n  $direction: if($direction == 'horizontal', row, column);\n  $wrap: if($wrap, wrap, nowrap);\n\n  display: flex;\n  flex-flow: $direction $wrap;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS flex value for a cell base.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n///\n/// @returns {List} The cell flex property value.\n@function xy-cell-base($size: full) {\n  @if ($size == 'auto') {\n    @return 1 1 0;\n  }\n  @else if ($size == 'grow') {\n    @return 1 0 auto;\n  }\n  @else if ($size == 'shrink' or $size == 'full' or zf-is-fraction($size, $allow-no-denominator: true)) {\n    @return 0 0 auto;\n  }\n  @return null;\n}\n\n/// Calculate the size of a cell gutters.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns the responsive gutters map `$gutters`. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|Map} The cell gutter size or the responsive gutters map.\n@function xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $breakpoint: null\n) {\n  // For `auto`, returns the responsive map `$gutters`.\n  @if ($breakpoint == 'auto') {\n    @return $gutters;\n  }\n\n  // Use the contextual breakpoint by default.\n  $breakpoint: -zf-current-breakpoint($breakpoint);\n\n  @if ($breakpoint) {\n    @return -zf-get-bp-val($gutters, $breakpoint);\n  }\n  @else {\n    @return -zf-get-bp-val($gutters, $-zf-zero-breakpoint) or 0;\n  }\n}\n\n/// Returns the percentage size of a cell.\n///\n/// @param {Number|List} $size [$grid-columns] - Size to make the cell. You can pass a value in multiple formats, such as `6`, `50%`, `1 of 2` or `1/3`.\n///\n/// @returns {Number} Size of the cell (in percent).\n@function xy-cell-size(\n  $size: $grid-columns\n) {\n  @return fraction-to-percentage($size, $denominator: $grid-columns);\n}\n\n/// Returns the appropriate CSS value for a cell size.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full`, `auto`, `shrink` or any fraction like `6`, `50%`, `1 of 2` or `1/2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, returns a map of sizes adapted to responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String|Map} The cell sizing property value, or a responsive map of them.\n@function xy-cell-size-css(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $margin-gutter: 0;\n\n  @if ($size == 'auto' or $size == 'shrink') {\n    @return auto;\n  }\n\n  // For cells with margin gutters, the gutter is included in the width.\n  @if ($gutter-type == 'margin') {\n    $margin-gutter: xy-cell-gutters($gutters, $breakpoint);\n    @if ($margin-gutter == null) {\n      @error 'xy-cell-size: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n    }\n  }\n\n  // Calculate the cell size (number)\n  $size-raw: if($size == 'full', 100%, xy-cell-size($size));\n\n  // Calculate the cell CSS size including gutters (string)\n  // If the cell has responsive margin gutters, return a responsive map of sizes.\n  @if type-of($margin-gutter) == 'map' {\n    $responsive-css-sizes: ();\n\n    @each $bp, $mg in $margin-gutter {\n      $mgc: rem-calc($mg);\n      @if $mgc == 0 {\n        $mgc: 0rem;\n      }\n      $size-css: if($mg == 0, $size-raw, calc(#{$size-raw} - #{$mg}));\n      $responsive-css-sizes: map-merge($responsive-css-sizes, ($bp: $size-css));\n    }\n\n    @return $responsive-css-sizes;\n  }\n  // Otherwise, return a single CSS size.\n  @else {\n    // Make sure that 0 is translated in 0rem for calc()\n    $mgc: rem-calc($margin-gutter);\n    @if $mgc == 0 {\n      $mgc: 0rem;\n    }\n    $css-size: if($margin-gutter == 0, $size-raw, calc(#{$size-raw} - #{$mgc}));\n    @return $css-size;\n  }\n}\n\n/// Sets base flex properties for cells.\n///\n/// @param {Keyword} $size [full] - The size of your cell. Accepts `full`, `auto`, `shrink`, `grow`, or any other value representing a cell size (it will be treated as `shrink`).\n@mixin xy-cell-base($size: full) {\n  $base: xy-cell-base($size);\n\n  flex: #{$base};\n\n  // Set base styles for \"full\" only\n  @if($size == 'full') {\n    min-height: 0;\n    min-width: 0;\n  }\n}\n\n/// Resets a cells width (or height if vertical is true) as well as strips its gutters.\n///\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-reset($vertical: true) {\n  $direction: if($vertical == true, height, width);\n  #{$direction}: auto;\n  max-#{$direction}: none;\n}\n\n/// Sets sizing properties for cells.\n///\n/// Gutters-related arguments are required for cells with margin gutters (by default) as the gutter is included in the width.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates sizes adapted for responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-size(\n  $size: full,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $sizes: xy-cell-size-css($size, $gutters, $gutter-type, $breakpoint);\n  $direction: if($vertical == true, height, width);\n\n  @if (type-of($sizes) == 'map') {\n    @include -zf-breakpoint-value(auto, $sizes) {\n      #{$direction}: $-zf-bp-value;\n    }\n  }\n  @else {\n    #{$direction}: $sizes;\n  }\n}\n\n/// Sets gutters properties for cells.\n///\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Direction of the gutters to output. See `$gutter-position`.\n@mixin xy-cell-gutters(\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false\n) {\n  // Get the default gutter position according to cell direction\n  @if($gutter-position == null) {\n    $gutter-position: if($vertical == true, top bottom, left right);\n  }\n\n  // Get the gutter width for this breakpoint\n  $gutter-width: xy-cell-gutters($gutters, $breakpoint);\n  @if ($gutter-width == null) {\n    @error 'xy-cell-gutters: no gutters were found in `$gutters` for \"$breakpoint: #{$breakpoint}\"';\n  }\n\n  @if ($gutter-type and $gutter-type != none) {\n    @include xy-gutters($gutter-width, $gutter-type, $gutter-position);\n  }\n}\n\n/// Creates a cell for your grid.\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If `auto`, generates responsive gutters. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work properly otherwise.\n@mixin xy-cell(\n  $size: full,\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  // Default for $gutter-output\n  @if ($gutter-output != null) {\n    @warn 'xy-cell: $gutter-output is deprecated and will be removed. See migration notes at https://git.io/foundation-6-6-0';\n    @if ($gutter-output == false) {\n      $output: sl-remove($output, gutters);\n    }\n  }\n\n  @if (index($output, base)) {\n    @include xy-cell-base($size);\n  }\n  @if (index($output, size)) {\n    @include xy-cell-size($size, $gutters, $gutter-type, $breakpoint, $vertical);\n  }\n  @if (index($output, gutters)) {\n    @include xy-cell-gutters($gutters, $gutter-type, $gutter-position, $breakpoint, $vertical);\n  }\n}\n\n/// Creates a single breakpoint sized grid. Used to generate our grid classes.\n///\n/// `xy-cell-static()` is deprecated and will be removed.\n/// Use `xy-cell()` instead with `$output: (size gutters)` to not generate the cell base.\n/// See migration notes at https://git.io/foundation-6-6-0\n///\n/// @deprecated v6.6.0\n///\n/// @param {Keyword|Number} $size [full] - The size of your cell. Can be `full` (100% width), `auto` (use all available space), `shrink` (use only the required space) or any fraction (`6`, `50%`, `1 of 2` or `1/2`...).\n/// @param {Boolean} $gutter-output [true] - Whether or not to output gutters. Always `true` for margin gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n@mixin xy-cell-static(\n  $size: full,\n  $gutter-output: true,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: $-zf-zero-breakpoint,\n  $vertical: false\n) {\n  @warn 'xy-cell-static() mixin is deprecated and will be removed. Use \"xy-cell()\" instead. See migration notes at https://git.io/foundation-6-6-0';\n\n  $gutter: -zf-get-bp-val($gutters, $breakpoint);\n  $gutter-position: if($vertical == true, top bottom, left right);\n\n  $-gutter-output: if($gutter-type == 'margin', true, $gutter-output);\n  $-gutter-margin: if($gutter-type == 'margin', $gutter, 0);\n\n  @include -xy-cell-properties($size, $-gutter-margin, $vertical);\n  @if ($-gutter-output) {\n    @include xy-gutters($gutter, $gutter-type, $gutter-position);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Sizes child elements so that `$n` number of items appear on each row.\n///\n/// @param {Number} $n - Number of elements to display per row.\n/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements.\n/// @param {Boolean} $gutter-output [null] - [DEPRECATED] Whether or not to output gutters.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters.\n/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin`, `padding` or `none`.\n/// @param {List} $gutter-position [null] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. By default `right left` for horizontal cells and `top bottom` for vertical cells.\n/// @param {String} $breakpoint [null] - The breakpoint to use for the cell generation. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths.\n/// @param {List} $output [(base size gutters)] - Cell parts to output. You will need to generate others parts of the cell seperately, it may not work correctly otherwise.\n@mixin xy-grid-layout(\n  $n,\n  $selector: '.cell',\n  $gutter-output: null,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $gutter-position: null,\n  $breakpoint: null,\n  $vertical: false,\n  $output: (base size gutters)\n) {\n  $size: percentage(divide(1, $n));\n\n  & > #{$selector} {\n    @include xy-cell($size, $gutter-output, $gutters, $gutter-type, $gutter-position, $breakpoint, $vertical, $output);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Collapses the grid a cells within it.\n///\n/// @param {String} $selector [.cell] - The child element to remove the gutter from.\n/// @param {Keyword} $gutter-type [margin] - The type of gutter to remove.\n/// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination.\n/// @param {Keyword} $min-breakpoint [$-zf-zero-breakpoint] - Minimum breakpoint in `$breakpoint-classes` for which to collapse the gutter.\n@mixin xy-grid-collapse(\n  $selector: '.cell',\n  $gutter-type: margin,\n  $gutter-position: right left,\n  $min-breakpoint: $-zf-zero-breakpoint\n) {\n  // First, lets negate any margins on the top level\n  @if ($gutter-type == 'margin') {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          margin-#{$value}: 0;\n        }\n      }\n    }\n\n    $excluded-bps: -zf-breakpoints-less-than($min-breakpoint);\n\n    // Output new widths to not include gutters\n    @each $bp in $breakpoint-classes {\n      @if(sl-contain($excluded-bps, $bp)) {\n        @include breakpoint($min-breakpoint) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      } @else {\n        @include breakpoint($bp) {\n          @for $i from 1 through $grid-columns {\n            // Sizing (percentage)\n            > .#{$bp}-#{$i} {\n              @include xy-cell-size($i, $gutter-type: none);\n            }\n          }\n        }\n      }\n    }\n  }\n  @else {\n\n    @include breakpoint($min-breakpoint) {\n      @each $value in $gutter-position {\n        margin-#{$value}: 0;\n      }\n\n      > #{$selector} {\n        @each $value in $gutter-position {\n          padding-#{$value}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group xy-grid\n////\n\n/// Returns the appropriate CSS value to offset a cell.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n///\n/// @returns {Number|String} The cell offset property value.\n@function xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $size: xy-cell-size($n);\n\n  $offset: $size;\n  @if ($gutter-type == 'margin') {\n    // Make sure that 0 is translated in 0rem for calc()\n    $gutter: rem-calc(xy-cell-gutters($gutters, $breakpoint));\n    @if $gutter == 0 {\n      $gutter: 0rem;\n    }\n    $offset: if($gutter == 0, $size, calc(#{$size} + #{$gutter} / 2));\n  }\n  @return $offset;\n}\n\n/// Offsets a column to the right/bottom by `$n` columns.\n///\n/// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `xy-cell()` mixin, such as `6`, `50%`, or `1 of 2`.\n/// @param {Number|Map} $gutters [$grid-margin-gutters] Map of gutters or single value to use for responsive gutters.\n/// @param {Keyword} $gutter-type [margin] The type of gutter to use. Can be `margin` or `padding`\n/// @param {Number|Array|Keyword} $breakpoint [null] - Breakpoint to use for `$gutters`. It can be a breakpoint name, list of breakpoints or `auto` for all breakpoints. If a list is given, media-queries will be generated. If using with the `breakpoint()` mixin this will be set automatically unless manually entered.\n/// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead.\n@mixin xy-cell-offset(\n  $n,\n  $gutters: $grid-margin-gutters,\n  $gutter-type: margin,\n  $breakpoint: null,\n  $vertical: false\n) {\n  $breakpoint: -zf-current-breakpoint($breakpoint, $default: $-zf-zero-breakpoint);\n  $direction: if($vertical, 'top', $global-left);\n\n  @include -zf-each-breakpoint-in($breakpoint, $media-queries: 'for-lists') {\n    $offset: xy-cell-offset($n, $gutters, $gutter-type);\n    margin-#{$direction}: #{$offset};\n  }\n}\n","// sass-lint:disable no-vendor-prefixes\n\n/// Modifies a grid to give it \"frame\" behavior (no overflow, no wrap, stretch behavior)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh.\n/// @param {Number|Map} $gutters [null] - Map or single value for gutters.\n/// @param {String} $breakpoint [null] - The name of the breakpoint size in your gutters map to get the size from.\n/// @param {Boolean} $include-base [true] - Include the base styles that don't vary per breakpoint.\n@mixin xy-grid-frame(\n  $vertical: false,\n  $nested: false,\n  $gutters: null,\n  $breakpoint: null,\n  $include-base: true\n) {\n\n  @if $include-base {\n    overflow: hidden;\n    position: relative;\n    flex-wrap: nowrap;\n    align-items: stretch;\n  }\n\n  @if $breakpoint == null and type-of($gutters) == 'map' {\n    @include -zf-each-breakpoint() {\n      @include xy-grid-frame($vertical, $nested, $gutters, $-zf-size, false);\n    }\n  } @else {\n    // Get our gutters if applicable\n    $gutter: -zf-get-bp-val($gutters, $breakpoint);\n\n    // If we have a gutter, add it to the width/height\n    @if $gutter {\n      @if $vertical == true {\n        $unit: if($nested == true, 100%, 100vh);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        height: calc(#{$unit} + #{$gutter});\n      } @else {\n        $unit: if($nested == true, 100%, 100vw);\n        $gutter: rem-calc($gutter);\n        // Make sure that 0 is translated in 0rem for calc()\n        @if $gutter == 0 {\n          $gutter: 0rem;\n        }\n        width: calc(#{$unit} + #{$gutter});\n      }\n    }\n    @else {\n      @if $vertical == true {\n        height: if($nested == true, 100%, 100vh);\n      } @else {\n        width: if($nested == true, 100%, 100vw);\n      }\n    }\n  }\n}\n\n/// Modifies a cell to give it \"block\" behavior (overflow auto, inertial scrolling)\n///\n/// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid.\n@mixin xy-cell-block(\n  $vertical: false\n) {\n  $property: if($vertical == true, 'overflow-y', 'overflow-x');\n\n  @if $vertical == true {\n    overflow-y: auto;\n    max-height: 100%;\n    min-height: 100%;\n  } @else {\n    overflow-x: auto;\n    max-width: 100%;\n  }\n\n  -webkit-overflow-scrolling: touch;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n/// Container for inside a grid frame containing multiple blocks. Typically used\n/// as a modifier for a `.cell` to allow the cell to pass along flex sizing\n/// constraints / from parents to children.\n@mixin xy-cell-block-container() {\n  display: flex;\n  flex-direction: column;\n  max-height: 100%;\n\n  > .grid-x {\n    max-height: 100%;\n    flex-wrap: nowrap;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button\n////\n\n/// Font family for button elements.\n/// @type Font\n$button-font-family: inherit !default;\n\n/// Font weight for button elements.\n/// Ignored if null (default)\n/// @type Font-Weight\n$button-font-weight: null !default;\n\n/// Padding inside buttons.\n/// @type List\n$button-padding: 0.85em 1em !default;\n\n/// Margin around buttons.\n/// @type List\n$button-margin: 0 0 $global-margin 0 !default;\n\n/// Default fill for buttons. Can either be `solid` or `hollow`.\n/// @type Keyword\n$button-fill: solid !default;\n\n/// Default background color for buttons.\n/// @type Color\n$button-background: $primary-color !default;\n\n/// Background color on hover for buttons.\n/// @type Color\n$button-background-hover: scale-color($button-background, $lightness: -15%) !default;\n\n/// Font color for buttons.\n/// @type List\n$button-color: $white !default;\n\n/// Alternative font color for buttons.\n/// @type List\n$button-color-alt: $black !default;\n\n/// Border radius for buttons, defaulted to global-radius.\n/// @type Number\n$button-radius: $global-radius !default;\n\n/// Border for buttons, transparent by default\n/// @type List\n$button-border: 1px solid transparent !default;\n\n/// Border width for hollow outline buttons\n/// @type Number\n$button-hollow-border-width: 1px !default;\n\n/// Sizes for buttons.\n/// @type Map\n$button-sizes: (\n  tiny: 0.6rem,\n  small: 0.75rem,\n  default: 0.9rem,\n  large: 1.25rem,\n) !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$button-palette: $foundation-palette !default;\n\n/// opacity for a disabled button.\n/// @type List\n$button-opacity-disabled: 0.25 !default;\n\n/// Background color lightness on hover for buttons.\n/// @type Number\n$button-background-hover-lightness: -20% !default;\n\n/// Color lightness on hover for hollow buttons.\n/// @type Number\n$button-hollow-hover-lightness: -50% !default;\n\n// Internal: flip from margin-right to margin-left for defaults\n@if $global-text-direction == 'rtl' {\n  $button-margin: 0 0 $global-margin $global-margin !default;\n}\n\n/// transitions for buttons.\n/// @type List\n$button-transition: background-color 0.25s ease-out, color 0.25s ease-out !default;\n\n/// Additional responsive classes for .expanded\n/// @type Boolean\n$button-responsive-expanded: false !default;\n\n// TODO: Document button-base() mixin\n@mixin button-base {\n  @include disable-mouse-outline;\n  display: inline-block;\n  vertical-align: middle;\n  margin: $button-margin;\n\n  @if (type-of($button-padding) == 'map') {\n    @each $size, $padding in $button-padding {\n      @include breakpoint($size) {\n        padding: $padding;\n      }\n    }\n  }\n  @else {\n    padding: $button-padding;\n  }\n\n  border: $button-border;\n  border-radius: $button-radius;\n  transition: $button-transition;\n  font-family: $button-font-family;\n  font-size: map-get($button-sizes, default);\n  font-weight: $button-font-weight;\n  -webkit-appearance: none; // sass-lint:disable-line no-vendor-prefixes\n  line-height: 1;\n  text-align: center;\n  cursor: pointer;\n}\n\n/// Expands a button to make it full-width.\n/// @param {Boolean} $expand [true] - Set to `true` to enable the expand behavior. Set to `false` to reverse this behavior.\n@mixin button-expand($expand: true) {\n  @if $expand {\n    display: block;\n    width: 100%;\n    margin-right: 0;\n    margin-left: 0;\n  }\n  @else {\n    display: inline-block;\n    width: auto;\n    margin: $button-margin;\n  }\n}\n\n/// Sets the base styles of a hollow or clear button filling according to `$fill`.\n/// See mixin `button-fill-style` for the filling styles.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`. `solid` has no effects.\n@mixin button-fill(\n  $fill: $button-fill\n) {\n  @if $fill == hollow {\n    @include button-hollow;\n  }\n  @else if $fill == clear {\n    @include button-clear;\n  }\n}\n\n/// Sets the visual styles of a solid/hollow/clear button filling according to `$fill`.\n/// See mixins `button-style`, `button-hollow-style` and `button-clear-style` for effects of visual styling parameters.\n/// @param {Keyword} $fill [$button-fill] - Type of filling between `hollow` and `clear`.\n/// @param {Color} $background [$button-background] - -\n/// @param {Color} $background-hover [$button-background-hover] - -\n/// @param {Color} $color [$button-color] - -\n@mixin button-fill-style(\n  $fill: $button-fill,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color\n) {\n  @if $fill == solid {\n    @include button-style($background, $background-hover, $color);\n  }\n  @else if $fill == hollow {\n    @include button-hollow-style($background);\n  }\n  @else if $fill == clear {\n    @include button-clear-style($background);\n  }\n}\n\n/// Sets the visual style of a button.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n@mixin button-style(\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $background-hover-lightness: $button-background-hover-lightness\n) {\n  @if $color == auto {\n    $color: color-pick-contrast($background, ($button-color, $button-color-alt));\n  }\n\n  @if $background-hover == auto {\n    $background-hover: scale-color($background, $lightness: $background-hover-lightness);\n  }\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    background-color: $background;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    background-color: $background-hover;\n    color: $color;\n  }\n}\n\n/// Sets the base styles of a hollow button.\n/// See mixin `button-hollow-style` for the filling styles.\n@mixin button-hollow {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a hollow button.\n/// @param {Color} $color [$button-background] - Text and border color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n/// @param {Color} $border-width [$button-hollow-border-width] - Border width of the button.\n@mixin button-hollow-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness,\n  $border-width: $button-hollow-border-width\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    border: $border-width solid $color;\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    border-color: $color-hover;\n    color: $color-hover;\n  }\n}\n\n/// Sets the base styles of a clear button.\n/// See mixin `button-clear-style` for the filling styles.\n@mixin button-clear {\n  &, &.disabled, &[disabled] {\n    &, &:hover, &:focus {\n      border-color: transparent;\n      background-color: transparent;\n    }\n  }\n}\n\n/// Sets the visual style of a clear button.\n/// @param {Color} $color [$button-background] - Text color of the button.\n/// @param {Color} $hover-lightness [$button-hollow-hover-lightness] - Color lightness on hover.\n@mixin button-clear-style(\n  $color: $button-background,\n  $hover-lightness: $button-hollow-hover-lightness\n) {\n  $color-hover: scale-color($color, $lightness: $hover-lightness);\n\n  // Default and disabled states\n  &,\n  &.disabled, &[disabled],\n  &.disabled:hover, &[disabled]:hover,\n  &.disabled:focus, &[disabled]:focus {\n    color: $color;\n  }\n\n  &:hover, &:focus {\n    color: $color-hover;\n  }\n}\n\n/// Adds disabled styles to a button by fading the element and reseting the cursor.\n/// @param {Number} $opacity [$button-opacity-disabled] - Opacity of the disabled button.\n@mixin button-disabled(\n  $opacity: $button-opacity-disabled\n) {\n  opacity: $button-opacity-disabled;\n  cursor: not-allowed;\n}\n\n/// Adds a dropdown arrow to a button.\n/// @param {Number} $size [0.4em] - Size of the arrow. We recommend using an `em` value so the triangle scales when used inside different sizes of buttons.\n/// @param {Color} $color [white] - Color of the arrow.\n/// @param {Number} $offset [$button-padding] - Distance between the arrow and the text of the button. Defaults to whatever the right padding of a button is.\n@mixin button-dropdown(\n  $size: 0.4em,\n  $color: $white,\n  $offset: get-side($button-padding, right)\n) {\n  &::after {\n    @include css-triangle($size, $color, down);\n    position: relative;\n    top: 0.4em; // Aligns the arrow with the text of the button\n\n    display: inline-block;\n    float: #{$global-right};\n    margin-#{$global-left}: $offset;\n  }\n}\n\n/// Adds all styles for a button. For more granular control over styles, use the individual button mixins.\n/// @param {Boolean} $expand [false] - Set to `true` to make the button full-width.\n/// @param {Color} $background [$button-background] - Background color of the button.\n/// @param {Color} $background-hover [$button-background-hover] - Background color of the button on hover. Set to `auto` to have the mixin automatically generate a hover color.\n/// @param {Color} $color [$button-color] - Text color of the button. Set to `auto` to automatically generate a color based on the background color.\n/// @param {Keyword} $style [solid] - Set to `hollow` to create a hollow button. The color defined in `$background` will be used as the primary color of the button.\n@mixin button(\n  $expand: false,\n  $background: $button-background,\n  $background-hover: $button-background-hover,\n  $color: $button-color,\n  $style: $button-fill\n) {\n  @include button-base;\n  @include button-fill($style);\n  @include button-fill-style($style, $background, $background-hover, $color);\n\n  @if $expand {\n    @include button-expand;\n  }\n}\n\n@mixin foundation-button {\n  .button {\n    @include button($style: none);\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} {\n        font-size: $value;\n      }\n    }\n\n    &.expanded { @include button-expand; }\n\n    @if $button-responsive-expanded {\n      @each $size in $breakpoint-classes {\n        @include breakpoint(#{$size} only) {\n          &.#{$size}-only-expanded {\n            @include button-expand;\n          }\n        }\n        @if $size != $-zf-zero-breakpoint {\n          @include breakpoint(#{$size} down) {\n            &.#{$size}-down-expanded {\n              @include button-expand;\n            }\n          }\n\n          @include breakpoint(#{$size}) {\n            &.#{$size}-expanded {\n              @include button-expand;\n            }\n          }\n        }\n      }\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$selector} {\n        @include button-fill($filling);\n        @include button-fill-style($filling);\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            @include button-fill-style($filling, $color, auto, auto);\n          }\n        }\n      }\n    }\n\n    // Disabled state\n    &.disabled, &[disabled] {\n      @include button-disabled;\n    }\n\n    // Dropdown arrow\n    &.dropdown {\n      @include button-dropdown;\n\n      @if $button-fill == hollow {\n        &::after {\n          border-top-color: $button-background;\n        }\n      }\n\n      &.hollow, &.clear {\n        &::after {\n          border-top-color: $button-background;\n        }\n\n        @each $name, $color in $button-palette {\n          &.#{$name} {\n            &::after {\n              border-top-color: $color;\n            }\n          }\n        }\n      }\n    }\n\n    // Button with dropdown arrow only\n    &.arrow-only::after {\n      top: -0.1em;\n      float: none;\n      margin-#{$global-left}: 0;\n    }\n  }\n\n  a.button { // sass-lint:disable-line no-qualifying-elements\n    &:hover,\n    &:focus {\n      text-decoration: none;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group button-group\n////\n\n/// Margin for button groups.\n/// @type Number\n$buttongroup-margin: 1rem !default;\n\n/// Margin between buttons in a button group.\n/// @type Number\n$buttongroup-spacing: 1px !default;\n\n/// Selector for the buttons inside a button group.\n/// @type String\n$buttongroup-child-selector: '.button' !default;\n\n/// Maximum number of buttons that can be in an even-width button group. (Only needed when $global-flexbox: false;)\n/// @type Number\n$buttongroup-expand-max: 6 !default;\n\n/// Determines if $button-radius is applied to each button or the button group as a whole. Use $global-radius in _settings.scss to change radius.\n/// @type Boolean\n$buttongroup-radius-on-each: true !default;\n\n/// Add styles for a button group container.\n/// @param {String} $child-selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group(\n  $child-selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing\n) {\n  @include clearfix;\n  margin-bottom: $buttongroup-margin;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: stretch;\n    flex-grow: 1;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n  @else {\n    font-size: 0;\n  }\n\n  #{$child-selector} {\n    margin: 0;\n    margin-#{$global-right}: $spacing;\n    margin-bottom: $spacing;\n    font-size: map-get($button-sizes, default);\n\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n\n    &:last-child {\n      margin-#{$global-right}: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $button-radius;\n        border-bottom-#{$global-left}-radius: $button-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $button-radius;\n        border-bottom-#{$global-right}-radius: $button-radius;\n      }\n    }\n  }\n}\n\n/// Make buttons bonded without gap between them. Borders between buttons are merged\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n@mixin button-group-no-gaps(\n  $selector: $buttongroup-child-selector,\n  $border-width: $button-hollow-border-width\n) {\n  #{$selector} {\n    margin-#{$global-right}: rem-calc(-$border-width);\n\n    + #{$selector} {\n      border-#{$global-left}-color: transparent;\n    }\n  }\n}\n\n/// Creates a full-width button group, making each button equal width.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside a button group.\n/// @param {Number} $spacing [$buttongroup-spacing] - Spacing between buttons in a button group.\n@mixin button-group-expand(\n  $selector: $buttongroup-child-selector,\n  $spacing: $buttongroup-spacing,\n  $count: null\n) {\n  @if not $global-flexbox {\n    margin-#{$global-right}: -$spacing;\n\n    &::before,\n    &::after {\n      display: none; // Disable clearfix\n    }\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n    @else {\n      // One child\n      &:first-child {\n        &:last-child {\n          width: calc(100% - #{$spacing});\n        }\n      }\n\n      // Two or more childreen\n      @for $i from 2 through $buttongroup-expand-max {\n        &:first-child:nth-last-child(#{$i}) {\n          &, &:first-child:nth-last-child(#{$i}) ~ #{$selector} {\n            display: inline-block;\n            width: calc(#{percentage(divide(1, $i))} - #{$spacing});\n            margin-#{$global-right}: $spacing;\n\n            &:last-child {\n              margin-#{$global-right}: $spacing * -$buttongroup-expand-max;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-stack(\n  $selector: $buttongroup-child-selector\n) {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n  }\n\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 100%;\n    }\n    @else {\n      width: 100%;\n    }\n\n    &:last-child {\n      margin-bottom: 0;\n    }\n\n    @if not $buttongroup-radius-on-each {\n      border-radius: 0;\n\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-bottom-#{$global-left}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n      }\n    }\n  }\n}\n\n/// Un-stacks the buttons in a button group.\n/// @param {String} $selector [$buttongroup-child-selector] - Selector for the buttons inside the button group.\n@mixin button-group-unstack(\n  $selector: $buttongroup-child-selector\n) {\n  #{$selector} {\n    @if $global-flexbox {\n      flex: 0 0 auto;\n    }\n    @else {\n      width: auto;\n    }\n    margin-bottom: 0;\n\n    @if not $buttongroup-radius-on-each {\n      &:first-child {\n        border-top-#{$global-left}-radius: $global-radius;\n        border-top-#{$global-right}-radius: 0;\n        border-bottom-#{$global-left}-radius: $global-radius;\n      }\n\n      &:last-child {\n        border-top-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-right}-radius: $global-radius;\n        border-bottom-#{$global-left}-radius: 0;\n      }\n    }\n\n  }\n}\n\n@mixin foundation-button-group {\n  .button-group {\n    @include button-group;\n\n    // Sizes\n    @each $size, $value in map-remove($button-sizes, default) {\n      &.#{$size} #{$buttongroup-child-selector} {\n        font-size: $value;\n      }\n    }\n\n    // Even-width Group\n    &.expanded {\n      @include button-group-expand;\n    }\n\n    // Solid, hollow & clear styles\n    @each $filling in (solid hollow clear) {\n      $base-selector: if($button-fill == $filling, null, '.#{$filling}');\n\n      &#{$base-selector} {\n        // Do not generate button base styles for the default filling\n        @if($button-fill != $filling) {\n          #{$buttongroup-child-selector} {\n            @include button-fill($filling);\n            @include button-fill-style($filling);\n          }\n        }\n\n        @each $name, $color in $button-palette {\n          @if($button-fill != $filling) {\n            $individual-selector: ' #{$buttongroup-child-selector}.#{$name}';\n            &.#{$name} #{$buttongroup-child-selector}, &#{$individual-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n          @else {\n            &.#{$name} #{$buttongroup-child-selector} {\n              @include button-fill-style($filling, $color, auto, auto);\n            }\n          }\n        }\n      }\n\n    }\n\n    &.no-gaps {\n      @include button-group-no-gaps;\n    }\n\n    &.stacked,\n    &.stacked-for-small,\n    &.stacked-for-medium {\n      @include button-group-stack;\n\n      &.expanded {\n        @include button-group-expand;\n      }\n    }\n\n    &.stacked-for-small {\n      @include breakpoint(medium) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-medium {\n      @include breakpoint(large) {\n        @include button-group-unstack;\n      }\n    }\n\n    &.stacked-for-small.expanded {\n      @include breakpoint(small only) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n\n    &.stacked-for-medium.expanded {\n      @include breakpoint(medium down) {\n        display: block;\n\n        #{$buttongroup-child-selector} {\n          display: block;\n          margin-#{$global-right}: 0;\n        }\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group close-button\n////\n\n/// Default position of the close button. The first value should be `right` or `left`, and the second value should be `top` or `bottom`.\n/// @type List\n$closebutton-position: right top !default;\n\n/// Default z-index for a close button.\n/// @type Number\n$closebutton-z-index: 10 !default;\n\n/// Button size to use as default\n/// @type String\n/// @see $closebutton-size\n/// @see $closebutton-offset-horizontal\n/// @see $closebutton-offset-vertical\n$closebutton-default-size: medium !default;\n\n/// Right (or left) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-horizontal: (\n  small: 0.66rem,\n  medium: 1rem,\n) !default;\n\n/// Top (or bottom) offset(s) for a close button.\n/// @type Number|Map\n$closebutton-offset-vertical: (\n  small: 0.33em,\n  medium: 0.5rem,\n) !default;\n\n/// Size(s) of the close button. Used to generate sizing modifiers.\n/// @type Number|Map\n$closebutton-size: (\n  small: 1.5em,\n  medium: 2em,\n) !default;\n\n/// The line-height of the close button. It affects the spacing of the element.\n/// @type Number\n$closebutton-lineheight: 1 !default;\n\n/// Default color of the close button.\n/// @type Color\n$closebutton-color: $dark-gray !default;\n\n/// Default color of the close button when being hovered on.\n/// @type Color\n$closebutton-color-hover: $black !default;\n\n\n/// Get the size and position for a close button. If the input value is a number, the number is returned. If the input value is a config map and the map has the key `$size`, the value is returned.\n///\n/// @param {Number|Map} $value - A number or map that represents the size or position value(s) of the close button.\n/// @param {Keyword} $size - The size of the close button to use.\n///\n/// @return {Number} The given number or the value found in the map.\n@function -zf-get-size-val($value, $size) {\n  // Check if the value is a number\n  @if type-of($value) == 'number' {\n    // If it is, just return the number\n    @return $value;\n  }\n\n  // Check if the size name exists in the value map\n  @else if map-has-key($value, $size) {\n    // If it does, return the value\n    @return map-get($value, $size);\n  }\n}\n\n/// Sets the size and position of a close button.\n/// @param {Keyword} $size [medium] - The size to use. Set to `small` to create a small close button. The 'medium' values defined in `$closebutton-*` variables will be used as the default size and position of the close button.\n@mixin close-button-size($size) {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  #{$x}: -zf-get-size-val($closebutton-offset-horizontal, $size);\n  #{$y}: -zf-get-size-val($closebutton-offset-vertical, $size);\n  font-size: -zf-get-size-val($closebutton-size, $size);\n  line-height: -zf-get-size-val($closebutton-lineheight, $size);\n}\n\n/// Adds styles for a close button, using the styles in the settings variables.\n@mixin close-button {\n  $x: nth($closebutton-position, 1);\n  $y: nth($closebutton-position, 2);\n\n  @include disable-mouse-outline;\n  position: absolute;\n  z-index: $closebutton-z-index;\n  color: $closebutton-color;\n  cursor: pointer;\n\n  &:hover,\n  &:focus {\n    color: $closebutton-color-hover;\n  }\n}\n\n@mixin foundation-close-button {\n  .close-button {\n    // Use by default the placeholder of the default size\n    @extend %zf-close-button--#{$closebutton-default-size};\n\n    @include close-button;\n\n    // Generate a placeholder and a class for each size\n    @each $name, $size in $closebutton-size {\n      @at-root {\n        %zf-close-button--#{$name} {\n          @include close-button-size($name);\n        }\n      }\n\n      &.#{$name} {\n        @extend %zf-close-button--#{$name};\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group label\n////\n\n/// Default background color for labels.\n/// @type Color\n$label-background: $primary-color !default;\n\n/// Default text color for labels.\n/// @type Color\n$label-color: $white !default;\n\n/// Alternate text color for labels.\n/// @type Color\n$label-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$label-palette: $foundation-palette !default;\n\n/// Default font size for labels.\n/// @type Number\n$label-font-size: 0.8rem !default;\n\n/// Default padding inside labels.\n/// @type Number\n$label-padding: 0.33333rem 0.5rem !default;\n\n/// Default radius of labels.\n/// @type Number\n$label-radius: $global-radius !default;\n\n/// Generates base styles for a label.\n@mixin label {\n  display: inline-block;\n  padding: $label-padding;\n\n  border-radius: $label-radius;\n\n  font-size: $label-font-size;\n  line-height: 1;\n  white-space: nowrap;\n  cursor: default;\n}\n\n@mixin foundation-label {\n  .label {\n    @include label;\n\n    background: $label-background;\n    color: $label-color;\n\n    @each $name, $color in $label-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($label-color, $label-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Adds styles for a progress bar container.\n@mixin progress-container {\n  height: $progress-height;\n  margin-bottom: $progress-margin-bottom;\n  border-radius: $progress-radius;\n  background-color: $progress-background;\n}\n\n/// Adds styles for the inner meter of a progress bar.\n@mixin progress-meter {\n  position: relative;\n  display: block;\n  width: 0%;\n  height: 100%;\n  background-color: $progress-meter-background;\n\n  @if has-value($progress-radius) {\n    border-radius: $global-radius;\n  }\n}\n\n/// Adds styles for text in the progress meter.\n@mixin progress-meter-text {\n  @include absolute-center;\n  margin: 0;\n  font-size: 0.75rem;\n  font-weight: bold;\n  color: $white;\n  white-space: nowrap;\n\n  @if has-value($progress-radius) {\n    border-radius: $progress-radius;\n  }\n}\n\n@mixin foundation-progress-bar {\n  // Progress bar\n  .progress {\n    @include progress-container;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        .progress-meter {\n          background-color: $color;\n        }\n      }\n    }\n  }\n\n  // Inner meter\n  .progress-meter {\n    @include progress-meter;\n  }\n\n  // Inner meter text\n  .progress-meter-text {\n    @include progress-meter-text;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// [TODO] Check how plugin confirms disabled or vertical status\n// [TODO] Check if transition: all; is necessary\n\n////\n/// @group slider\n////\n\n/// Default slider width of a vertical slider. (Doesn't apply to the native slider.)\n/// @type Number\n$slider-width-vertical: 0.5rem !default;\n\n/// Transition properties to apply to the slider handle and fill. (Doesn't apply to the native slider.)\n/// @type Transition\n$slider-transition: all 0.2s ease-in-out !default;\n\n/// Adds the general styles for sliders.\n@mixin slider-container {\n  position: relative;\n  height: $slider-height;\n  margin-top: 1.25rem;\n  margin-bottom: 2.25rem;\n\n  background-color: $slider-background;\n  cursor: pointer;\n  user-select: none;\n  touch-action: none;\n}\n\n/// Adds the general styles for active fill for sliders.\n@mixin slider-fill {\n  position: absolute;\n  top: 0;\n  left: 0;\n\n  display: inline-block;\n  max-width: 100%;\n  height: $slider-height;\n\n  background-color: $slider-fill-background;\n  transition: $slider-transition;\n\n  &.is-dragging {\n    transition: all 0s linear;\n  }\n}\n\n/// Adds the general styles for the slider handles.\n@mixin slider-handle {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  left: 0;\n  z-index: 1;\n  cursor: grab;\n\n  display: inline-block;\n  width: $slider-handle-width;\n  height: $slider-handle-height;\n\n  border-radius: $slider-radius;\n  background-color: $slider-handle-background;\n  transition: $slider-transition;\n  touch-action: manipulation;\n\n  &:hover {\n    background-color: scale-color($slider-handle-background, $lightness: -15%);\n  }\n\n  &.is-dragging {\n    transition: all 0s linear;\n    cursor: grabbing;\n  }\n}\n\n@mixin slider-disabled {\n  opacity: $slider-opacity-disabled;\n  cursor: not-allowed;\n}\n\n@mixin slider-vertical {\n  display: inline-block;\n  width: $slider-width-vertical;\n  height: 12.5rem;\n  margin: 0 1.25rem;\n  transform: scale(1, -1);\n\n  .slider-fill {\n    top: 0;\n    width: $slider-width-vertical;\n    max-height: 100%;\n  }\n\n  .slider-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: $slider-handle-height;\n    height: $slider-handle-width;\n    transform: translateX(-50%);\n  }\n}\n\n@mixin foundation-slider {\n  // Container\n  .slider {\n    @include slider-container;\n  }\n\n  // Fill area\n  .slider-fill {\n    @include slider-fill;\n  }\n\n  // Draggable handle\n  .slider-handle {\n    @include slider-handle;\n  }\n\n  // Disabled state\n  .slider.disabled,\n  .slider[disabled] {\n    @include slider-disabled;\n  }\n\n  // Vertical slider\n  .slider.vertical {\n    @include slider-vertical;\n  }\n\n  // RTL support\n  @if $global-text-direction == rtl {\n    .slider:not(.vertical) {\n      transform: scale(-1, 1);\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group switch\n////\n\n/// Background color of a switch.\n/// @type Color\n$switch-background: $medium-gray !default;\n\n/// Background active color of a switch.\n/// @type Color\n$switch-background-active: $primary-color !default;\n\n/// Height of a switch, with no class applied.\n/// @type Number\n$switch-height: 2rem !default;\n\n/// Height of a switch with .tiny class.\n/// @type Number\n$switch-height-tiny: 1.5rem !default;\n\n/// Height of a switch with .small class.\n/// @type Number\n$switch-height-small: 1.75rem !default;\n\n/// Height of a switch with .large class.\n/// @type Number\n$switch-height-large: 2.5rem !default;\n\n/// Border radius of the switch\n/// @type Number\n$switch-radius: $global-radius !default;\n\n/// border around a modal.\n/// @type Number\n$switch-margin: $global-margin !default;\n\n/// Background color for the switch container and paddle.\n/// @type Color\n$switch-paddle-background: $white !default;\n\n/// Spacing between a switch paddle and the edge of the body.\n/// @type Number\n$switch-paddle-offset: 0.25rem !default;\n\n/// border radius of the switch paddle\n/// @type Number\n$switch-paddle-radius: $global-radius !default;\n\n/// switch transition.\n/// @type Number\n$switch-paddle-transition: all 0.25s ease-out !default;\n\n/// Opacity of a disabled switch.\n/// @type Number\n$switch-opacity-disabled: 0.5 !default;\n\n/// Cursor for a disabled switch.\n/// @type Cursor\n$switch-cursor-disabled: not-allowed !default;\n\n// make them variables\n// ask about accessibility on label\n// change class name for text\n\n/// Adds styles for a switch container. Apply this to a container class.\n@mixin switch-container {\n  position: relative;\n  margin-bottom: $switch-margin;\n  outline: 0;\n\n  // These properties cascade down to the switch text\n  font-size: rem-calc(14);\n  font-weight: bold;\n  color: $white;\n\n  user-select: none;\n}\n\n/// Adds styles for a switch input. Apply this to an `<input>` within a switch.\n@mixin switch-input {\n  position: absolute;\n  margin-bottom: 0;\n  opacity: 0;\n}\n\n/// Adds styles for the background and paddle of a switch. Apply this to a `<label>` within a switch.\n@mixin switch-paddle {\n  $switch-width: $switch-height * 2;\n  $paddle-height: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-width: $switch-height - ($switch-paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $switch-paddle-offset;\n\n  position: relative;\n  display: block;\n  width: $switch-width;\n  height: $switch-height;\n\n  border-radius: $switch-radius;\n  background: $switch-background;\n  transition: $switch-paddle-transition;\n\n  // Resetting these <label> presets so type styles cascade down\n  font-weight: inherit;\n  color: inherit;\n\n  cursor: pointer;\n\n  // Needed to override specificity\n  input + & {\n    margin: 0;\n  }\n\n  // The paddle itself\n  &::after {\n    position: absolute;\n    top: $switch-paddle-offset;\n    #{$global-left}: $switch-paddle-offset;\n\n    display: block;\n    width: $paddle-width;\n    height: $paddle-height;\n\n    transform: translate3d(0, 0, 0);\n    border-radius: $switch-paddle-radius;\n    background: $switch-paddle-background;\n    transition: $switch-paddle-transition;\n    content: '';\n  }\n\n  // Change the visual style when the switch is active\n  input:checked ~ & {\n    background: $switch-background-active;\n\n    &::after {\n      #{$global-left}: $paddle-active-offest;\n    }\n  }\n\n  // indicate a disabled switch\n  input:disabled ~ & {\n    cursor: $switch-cursor-disabled;\n    opacity: $switch-opacity-disabled;\n  }\n\n  input:focus ~ & {\n    @include disable-mouse-outline;\n  }\n}\n\n/// Adds base styles for active/inactive text inside a switch. Apply this to text elements inside the switch `<label>`.\n@mixin switch-text {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n}\n\n/// Adds styles for the active state text within a switch.\n@mixin switch-text-active {\n  #{$global-left}: 8%;\n  display: none;\n\n  input:checked + label > & {\n    display: block;\n  }\n}\n\n/// Adds styles for the inactive state text within a switch.\n@mixin switch-text-inactive {\n  #{$global-right}: 15%;\n\n  input:checked + label > & {\n    display: none;\n  }\n}\n\n/// Changes the size of a switch by modifying the size of the body and paddle. Apply this to a switch container.\n/// @param {Number} $font-size [1rem] - Font size of label text within the switch.\n/// @param {Number} $switch-height [2rem] - Height of the switch body.\n/// @param {Number} $paddle-offset [0.25rem] - Spacing between the switch paddle and the edge of the switch body.\n@mixin switch-size(\n  $font-size: 1rem,\n  $switch-height: 2rem,\n  $paddle-offset: 0.25rem\n) {\n\n  $switch-width: $switch-height * 2;\n  $paddle-width: $switch-height - ($paddle-offset * 2);\n  $paddle-height: $switch-height - ($paddle-offset * 2);\n  $paddle-active-offest: $switch-width - $paddle-width - $paddle-offset;\n\n  height: $switch-height;\n\n  .switch-paddle {\n    width: $switch-width;\n    height: $switch-height;\n    font-size: $font-size;\n  }\n\n  .switch-paddle::after {\n    top: $paddle-offset;\n    #{$global-left}: $paddle-offset;\n    width: $paddle-width;\n    height: $paddle-height;\n  }\n\n  input:checked ~ .switch-paddle::after {\n    #{$global-left}: $paddle-active-offest;\n  }\n}\n\n@mixin foundation-switch {\n  // Container class\n  .switch {\n    @include switch-container;\n    height: $switch-height;\n  }\n\n  // <input> element\n  .switch-input {\n    @include switch-input;\n  }\n\n  // <label> element\n  .switch-paddle {\n    @include switch-paddle;\n  }\n\n  // Base label text styles\n  %switch-text {\n    @include switch-text;\n  }\n\n  // Active label text styles\n  .switch-active {\n    @extend %switch-text;\n    @include switch-text-active;\n  }\n\n  // Inactive label text styles\n  .switch-inactive {\n    @extend %switch-text;\n    @include switch-text-inactive;\n  }\n\n  // Switch sizes\n  .switch.tiny {\n    @include switch-size(rem-calc(10), $switch-height-tiny, $switch-paddle-offset);\n  }\n\n  .switch.small {\n    @include switch-size(rem-calc(12), $switch-height-small, $switch-paddle-offset);\n  }\n\n  .switch.large {\n    @include switch-size(rem-calc(16), $switch-height-large, $switch-paddle-offset);\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n// sass-lint:disable no-qualifying-elements\n\n////\n/// @group table\n////\n\n/// Default color for table background.\n/// @type Color\n$table-background: $white  !default;\n\n/// Default scale for darkening the striped table rows and the table border.\n/// @type Number\n$table-color-scale: 5% !default;\n\n/// Default style for table border.\n/// @type List\n$table-border: 1px solid smart-scale($table-background, $table-color-scale) !default;\n\n/// Default padding for table.\n/// @type Number\n$table-padding: rem-calc(8 10 10) !default;\n\n/// Default scale for darkening the table rows on hover.\n/// @type Number\n$table-hover-scale: 2% !default;\n\n/// Default color of standard rows on hover.\n/// @type List\n$table-row-hover: darken($table-background, $table-hover-scale) !default;\n\n/// Default color of striped rows on hover.\n/// @type List\n$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale) !default;\n\n/// If `true`, tables are striped by default and an .unstriped class is created. If `false`, a .striped class is created.\n/// @type Boolean\n$table-is-striped: true !default;\n\n/// Default background color for striped rows.\n/// @type Color\n$table-striped-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default value for showing the stripe on rows of the tables, excluding the header and footer. If even, the even rows will have a background color. If odd, the odd rows will have a background color. If empty, or any other value, the table rows will have no striping.\n/// @type Keyword\n$table-stripe: even !default;\n\n/// Default color for header background.\n/// @type Color\n$table-head-background: smart-scale($table-background, $table-color-scale * 0.5) !default;\n\n/// Default color of header rows on hover.\n/// @type List\n$table-head-row-hover: darken($table-head-background, $table-hover-scale) !default;\n\n/// Default color for footer background.\n/// @type Color\n$table-foot-background: smart-scale($table-background, $table-color-scale) !default;\n\n/// Default color of footer rows on hover.\n/// @type List\n$table-foot-row-hover: darken($table-foot-background, $table-hover-scale) !default;\n\n/// Default font color for header.\n/// @type Color\n$table-head-font-color: $body-font-color !default;\n\n/// Default font color for footer.\n/// @type Color\n$table-foot-font-color: $body-font-color !default;\n\n/// Default value for showing the header when using stacked tables.\n/// @type Boolean\n$show-header-for-stacked: false !default;\n\n/// Breakpoint at which stacked table switches from mobile to desktop view.\n/// @type Breakpoint\n$table-stack-breakpoint: medium !default;\n\n@mixin -zf-table-stripe($stripe: $table-stripe) {\n  tr {\n    // If stripe is set to even, darken the even rows.\n    @if $stripe == even {\n      &:nth-child(even) {\n        border-bottom: 0;\n        background-color: $table-striped-background;\n      }\n    }\n\n    // If stripe is set to odd, darken the odd rows.\n    @else if $stripe == odd {\n      &:nth-child(odd) {\n        background-color: $table-striped-background;\n      }\n    }\n  }\n}\n\n@mixin -zf-table-unstripe() {\n  tr {\n    border-bottom: $table-border;\n    background-color: $table-background;\n  }\n}\n\n@mixin -zf-table-children-styles($stripe: $table-stripe, $is-striped: $table-is-striped) {\n  thead,\n  tbody,\n  tfoot {\n    border: $table-border;\n    background-color: $table-background;\n  }\n\n  // Caption\n  caption {\n    padding: $table-padding;\n    font-weight: $global-weight-bold;\n  }\n\n  // Table head\n  thead {\n    background: $table-head-background;\n    color: $table-head-font-color;\n  }\n\n  // Table foot\n  tfoot {\n    background: $table-foot-background;\n    color: $table-foot-font-color;\n  }\n\n  // Table head and foot\n  thead,\n  tfoot {\n    // Rows within head and foot\n    tr {\n      background: transparent;\n    }\n\n    // Cells within head and foot\n    th,\n    td {\n      padding: $table-padding;\n      font-weight: $global-weight-bold;\n      text-align: #{$global-left};\n    }\n  }\n\n  // Table rows\n  tbody {\n    th,\n    td {\n      padding: $table-padding;\n    }\n  }\n\n  // If tables are striped\n  @if $is-striped == true {\n    tbody {\n      @include -zf-table-stripe($stripe);\n    }\n\n    &.unstriped {\n      tbody {\n        @include -zf-table-unstripe();\n        background-color: $table-background;\n      }\n    }\n  }\n\n  // If tables are not striped\n  @else if $is-striped == false {\n    tbody {\n      @include -zf-table-unstripe();\n    }\n\n    &.striped {\n      tbody {\n        @include -zf-table-stripe($stripe);\n      }\n    }\n  }\n}\n\n/// Adds the general styles for tables.\n/// @param {Keyword} $stripe [$table-stripe] - Uses keywords even, odd, or none to darken rows of the table. The default value is even.\n/// @param {Boolean} $nest [false] - Needed if you only want to apply this to a specific table.\n@mixin table(\n  $stripe: $table-stripe,\n  $nest: false\n) {\n  border-collapse: collapse;\n  width: 100%;\n  margin-bottom: $global-margin;\n  border-radius: $global-radius;\n\n  @if $nest {\n    @include -zf-table-children-styles($stripe);\n  }\n  @else {\n    @at-root {\n      @include -zf-table-children-styles($stripe);\n    }\n  }\n}\n\n/// Adds the ability to horizontally scroll the table when the content overflows horizontally.\n@mixin table-scroll {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n}\n\n/// Slightly darkens the table rows on hover.\n@mixin table-hover {\n  thead tr {\n    //Darkens the table header rows on hover.\n    &:hover {\n      background-color: $table-head-row-hover;\n    }\n  }\n\n  tfoot tr {\n    //Darkens the table footer rows on hover.\n    &:hover {\n      background-color: $table-foot-row-hover;\n    }\n  }\n\n  tbody tr {\n    //Darkens the non-striped table rows on hover.\n    &:hover {\n      background-color: $table-row-hover;\n    }\n  }\n\n  @if $table-is-striped == true {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &:not(.unstriped) tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &:not(.unstriped) tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n\n  @else if $table-is-striped == false {\n    // Darkens the even striped table rows.\n    @if($table-stripe == even) {\n      &.striped tr:nth-of-type(even):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n\n    // Darkens the odd striped table rows.\n    @else if($table-stripe == odd) {\n      &.striped tr:nth-of-type(odd):hover {\n        background-color: $table-row-stripe-hover;\n      }\n    }\n  }\n}\n\n/// Adds styles for a stacked table. Useful for small-screen layouts.\n/// @param {Boolean} $header [$show-header-for-stacked] - Show the first th of header when stacked.\n@mixin table-stack($header: $show-header-for-stacked) {\n  @if $header {\n    thead {\n      th {\n        display: block;\n      }\n    }\n  }\n  @else {\n    thead {\n      display: none;\n    }\n  }\n\n  tfoot {\n    display: none;\n  }\n\n  tr,\n  th,\n  td {\n    display: block;\n  }\n\n  td {\n    border-top: 0;\n  }\n}\n\n@mixin foundation-table($nest: false) {\n  table {\n    @include table($nest: $nest);\n  }\n\n  table.stack {\n    @include breakpoint($table-stack-breakpoint down) {\n      @include table-stack;\n    }\n  }\n\n  table.scroll {\n    @include table-scroll;\n  }\n\n  table.hover {\n    @include table-hover;\n  }\n\n  .table-scroll {\n    overflow-x: auto;\n\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group badge\n////\n\n/// Default background color for badges.\n/// @type Color\n$badge-background: $primary-color !default;\n\n/// Default text color for badges.\n/// @type Color\n$badge-color: $white !default;\n\n/// Alternate text color for badges.\n/// @type Color\n$badge-color-alt: $black !default;\n\n/// Coloring classes. A map of classes to output in your CSS, like `.secondary`, `.success`, and so on.\n/// @type Map\n$badge-palette: $foundation-palette !default;\n\n/// Default padding inside badges.\n/// @type Number\n$badge-padding: 0.3em !default;\n\n/// Minimum width of a badge.\n/// @type Number\n$badge-minwidth: 2.1em !default;\n\n/// Default font size for badges.\n/// @type Number\n$badge-font-size: 0.6rem !default;\n\n/// Generates the base styles for a badge.\n@mixin badge {\n  display: inline-block;\n  min-width: $badge-minwidth;\n  padding: $badge-padding;\n\n  border-radius: 50%;\n\n  font-size: $badge-font-size;\n  text-align: center;\n}\n\n@mixin foundation-badge {\n  .badge {\n    @include badge;\n\n    background: $badge-background;\n    color: $badge-color;\n\n    @each $name, $color in $badge-palette {\n      &.#{$name} {\n        background: $color;\n        color: color-pick-contrast($color, ($badge-color, $badge-color-alt));\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group breadcrumbs\n////\n\n/// Margin around a breadcrumbs container.\n/// @type Number\n$breadcrumbs-margin: 0 0 $global-margin 0 !default;\n\n/// Font size of breadcrumb links.\n/// @type Number\n$breadcrumbs-item-font-size: rem-calc(11) !default;\n\n/// Color of breadcrumb links.\n/// @type Color\n$breadcrumbs-item-color: $primary-color !default;\n\n/// Color of the active breadcrumb link.\n/// @type Color\n$breadcrumbs-item-color-current: $black !default;\n\n/// Opacity of disabled breadcrumb links.\n/// @type Number\n$breadcrumbs-item-color-disabled: $medium-gray !default;\n\n/// Margin between breadcrumb items.\n/// @type Number\n$breadcrumbs-item-margin: 0.75rem !default;\n\n/// If `true`, makes breadcrumb links uppercase.\n/// @type Boolean\n$breadcrumbs-item-uppercase: true !default;\n\n/// If `true`, adds a seperator between breadcrumb links.\n/// @type Boolean\n$breadcrumbs-item-separator: true !default;\n\n// If it exists $breadcrumbs-item-slash is used to build $breadcrumbs-item-separator. See the documentation.\n@if variable-exists(breadcrumbs-item-slash) {\n  $breadcrumbs-item-separator: $breadcrumbs-item-slash;\n}\n\n/// Used character for the breadcrumb separator.\n/// @type Content\n$breadcrumbs-item-separator-item: '/' !default;\n\n/// Used character for the breadcrumb separator in rtl mode.\n/// @type Content\n$breadcrumbs-item-separator-item-rtl: '\\\\' !default;\n\n/// Color of breadcrumb item.\n/// @type Color\n$breadcrumbs-item-separator-color: $medium-gray !default;\n\n// If it exists $breadcrumbs-item-slash-color is used to build $breadcrumbs-item-separator-color. See the documentation.\n@if variable-exists(breadcrumbs-item-slash-color) {\n  $breadcrumbs-item-separator-color: $breadcrumbs-item-slash-color;\n}\n\n/// Adds styles for a breadcrumbs container, along with the styles for the `<li>` and `<a>` elements inside of it.\n@mixin breadcrumbs-container {\n  @include clearfix;\n  margin: $breadcrumbs-margin;\n  list-style: none;\n\n  // Item wrapper\n  li {\n    float: #{$global-left};\n\n    font-size: $breadcrumbs-item-font-size;\n    color: $breadcrumbs-item-color-current;\n    cursor: default;\n\n    @if $breadcrumbs-item-uppercase {\n      text-transform: uppercase;\n    }\n\n    @if $breadcrumbs-item-separator {\n      // Need to escape the backslash\n      $separator: if($global-text-direction == 'ltr', $breadcrumbs-item-separator-item, $breadcrumbs-item-separator-item-rtl);\n\n      &:not(:last-child) {\n        &::after {\n          position: relative;\n          margin: 0 $breadcrumbs-item-margin;\n          opacity: 1;\n          content: $separator;\n          color: $breadcrumbs-item-separator-color;\n        }\n      }\n    }\n    @else {\n      margin-#{$global-right}: $breadcrumbs-item-margin;\n    }\n  }\n\n  // Page links\n  a {\n    color: $breadcrumbs-item-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n}\n\n@mixin foundation-breadcrumbs {\n  .breadcrumbs {\n    @include breadcrumbs-container;\n\n    .disabled {\n      color: $breadcrumbs-item-color-disabled;\n      cursor: not-allowed;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group callout\n////\n\n/// Default background color.\n/// @type Color\n$callout-background: $white !default;\n\n/// Default fade value for callout backgrounds.\n/// @type Number\n$callout-background-fade: 85% !default;\n\n/// Default border style for callouts.\n/// @type List\n$callout-border: 1px solid rgba($black, 0.25) !default;\n\n/// Default bottom margin for callouts.\n/// @type Number\n$callout-margin: 0 0 1rem 0 !default;\n\n/// Sizes for Callout paddings.\n/// @type Map\n$callout-sizes: (\n  small: 0.5rem,\n  default: 1rem,\n  large: 3rem,\n) !default;\n\n/// Default font color for callouts.\n/// @type Color\n$callout-font-color: $body-font-color !default;\n\n/// Default font color for callouts, if the callout has a dark background.\n/// @type Color\n$callout-font-color-alt: $body-background !default;\n\n/// Default border radius for callouts.\n/// @type Color\n$callout-radius: $global-radius !default;\n\n/// Amount to tint links used within colored panels. Set to `false` to disable this feature.\n/// @type Number | Boolean\n$callout-link-tint: 30% !default;\n\n/// Adds basic styles for a callout, including padding and margin.\n@mixin callout-base() {\n  position: relative;\n  margin: $callout-margin;\n  padding: map-get($callout-sizes, default);\n\n  border: $callout-border;\n  border-radius: $callout-radius;\n\n  // Respect the padding, fool.\n  > :first-child {\n    margin-top: 0;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Generate quick styles for a callout using a single color as a baseline.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout-style($color: $callout-background) {\n  $background: scale-color($color, $lightness: $callout-background-fade);\n\n  background-color: $background;\n  color: color-pick-contrast($background, ($callout-font-color, $callout-font-color-alt));\n}\n\n@mixin callout-size($padding) {\n  padding-top: $padding;\n  padding-right: $padding;\n  padding-bottom: $padding;\n  padding-left: $padding;\n}\n\n\n/// Adds styles for a callout.\n/// @param {Color} $color [$callout-background] - Color to use.\n@mixin callout($color: $callout-background) {\n  @include callout-base;\n  @include callout-style($color);\n}\n\n@mixin foundation-callout {\n  .callout {\n    @include callout;\n\n    @each $name, $color in $foundation-palette {\n      &.#{$name} {\n        @include callout-style($color);\n      }\n    }\n\n    @each $size, $padding in map-remove($callout-sizes, default) {\n      &.#{$size} {\n        @include callout-size($padding);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group card\n////\n\n/// Default background color.\n/// @type Color\n$card-background: $white !default;\n\n/// Default font color for cards.\n/// @type Color\n$card-font-color: $body-font-color !default;\n\n/// Default background.\n/// @type Color\n$card-divider-background: $light-gray !default;\n\n/// Default border style.\n/// @type List\n$card-border: 1px solid $light-gray !default;\n\n/// Default card shadow.\n/// @type List\n$card-shadow: none !default;\n\n/// Default border radius.\n/// @type List\n$card-border-radius: $global-radius !default;\n\n/// Default padding.\n/// @type Number\n$card-padding: $global-padding !default;\n\n/// Default bottom margin.\n/// @type number\n$card-margin-bottom: $global-margin !default;\n\n/// Adds styles for a card container.\n/// @param {Color} $background - Background color of the card.\n/// @param {Color} $color - font color of the card.\n/// @param {Number} $margin - Bottom margin of the card.\n/// @param {List} $border - Border around the card.\n/// @param {List} $radius - border radius of the card.\n/// @param {List} $shadow - box shadow of the card.\n@mixin card-container(\n  $background: $card-background,\n  $color: $card-font-color,\n  $margin: $card-margin-bottom,\n  $border: $card-border,\n  $radius: $card-border-radius,\n  $shadow: $card-shadow\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n  }\n\n  margin-bottom: $margin;\n\n  border: $border;\n  border-radius: $radius;\n\n  background: $background;\n  box-shadow: $shadow;\n\n  overflow: hidden;\n  color: $color;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card divider.\n@mixin card-divider(\n  $background: $card-divider-background,\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    display: flex;\n    flex: 0 1 auto;\n  }\n\n  padding: $padding;\n  background: $background;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n/// Adds styles for a card section.\n@mixin card-section(\n  $padding: $card-padding\n) {\n  @if $global-flexbox {\n    flex: 1 0 auto;\n  }\n\n  padding: $padding;\n\n  & > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n@mixin foundation-card {\n  .card {\n    @include card-container;\n  }\n\n  .card-divider {\n    @include card-divider;\n  }\n\n  .card-section {\n    @include card-section;\n  }\n\n  // For IE 11 - Flexbug\n  // https://github.com/philipwalton/flexbugs/issues/75\n  .card-image {\n    min-height: 1px;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown\n////\n\n/// Padding for dropdown panes.\n/// @type List\n$dropdown-padding: 1rem !default;\n\n/// Background for dropdown panes.\n/// @type Color\n$dropdown-background: $body-background !default;\n\n/// Border for dropdown panes.\n/// @type List\n$dropdown-border: 1px solid $medium-gray !default;\n\n/// Font size for dropdown panes.\n/// @type List\n$dropdown-font-size: 1rem !default;\n\n/// Width for dropdown panes.\n/// @type Number\n$dropdown-width: 300px !default;\n\n/// Border radius dropdown panes.\n/// @type Number\n$dropdown-radius: $global-radius !default;\n\n/// Sizes for dropdown panes. Each size is a CSS class you can apply.\n/// @type Map\n$dropdown-sizes: (\n  tiny: 100px,\n  small: 200px,\n  large: 400px,\n) !default;\n\n/// Applies styles for a basic dropdown.\n@mixin dropdown-container {\n  position: absolute;\n  z-index: 10;\n\n  display: none;\n\n  width: $dropdown-width;\n  padding: $dropdown-padding;\n\n  visibility: hidden;\n  border: $dropdown-border;\n  border-radius: $dropdown-radius;\n  background-color: $dropdown-background;\n\n  font-size: $dropdown-font-size;\n\n\n  // Allow an intermittent state to do positioning before making visible.\n  &.is-opening {\n    display: block;\n  }\n\n  &.is-open {\n    display: block;\n    visibility: visible;\n  }\n}\n\n@mixin foundation-dropdown {\n  .dropdown-pane {\n    @include dropdown-container;\n  }\n\n  @each $name, $size in $dropdown-sizes {\n    .dropdown-pane {\n      &.#{$name} {\n        width: $size;\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group pagination\n////\n\n/// Font size of pagination items.\n/// @type Number\n$pagination-font-size: rem-calc(14) !default;\n\n/// Default bottom margin of the pagination object.\n/// @type Number\n$pagination-margin-bottom: $global-margin !default;\n\n/// Text color of pagination items.\n/// @type Color\n$pagination-item-color: $black !default;\n\n/// Padding inside of pagination items.\n/// @type Number\n$pagination-item-padding: rem-calc(3 10) !default;\n\n/// Right margin to separate pagination items.\n/// @type Number\n$pagination-item-spacing: rem-calc(1) !default;\n\n/// Default radius for pagination items.\n/// @type Number\n$pagination-radius: $global-radius !default;\n\n/// Background color of pagination items on hover.\n/// @type Color\n$pagination-item-background-hover: $light-gray !default;\n\n/// Background color of pagination item for the current page.\n/// @type Color\n$pagination-item-background-current: $primary-color !default;\n\n/// Text color of the pagination item for the current page.\n/// @type Color\n$pagination-item-color-current: $white !default;\n\n/// Text color of a disabled pagination item.\n/// @type Color\n$pagination-item-color-disabled: $medium-gray !default;\n\n/// Color of the ellipsis in a pagination menu.\n/// @type Color\n$pagination-ellipsis-color: $black !default;\n\n/// If `false`, don't display page number links on mobile, only next/previous links\n/// and optionally current page number.\n/// @type Boolean\n$pagination-mobile-items: false !default;\n\n/// If `true`, display the current page number on mobile even if `$pagination-mobile-items` is set to `false`.\n/// This parameter will only override the visibility setting of the current item for `$pagination-mobile-items: false;`,\n/// it will not affect the current page number visibility when `$pagination-mobile-items` is set to `true`.\n/// @type Boolean\n$pagination-mobile-current-item: false !default;\n\n/// If `true`, arrows are added to the next and previous links of pagination.\n/// @type Boolean\n$pagination-arrows: true !default;\n\n/// Content for the previous arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-previous: '\\00AB' !default;\n\n/// Content for the next arrow when `$pagination-arrows` is `true`\n/// @type String\n$pagination-arrow-next: '\\00BB' !default;\n\n/// Adds styles for a pagination container. Apply this to a `<ul>`.\n@mixin pagination-container (\n  $margin-bottom: $pagination-margin-bottom,\n  $font-size: $pagination-font-size,\n  $spacing: $pagination-item-spacing,\n  $radius: $pagination-radius,\n  $color: $pagination-item-color,\n  $padding: $pagination-item-padding,\n  $background-hover: $pagination-item-background-hover\n) {\n  @include clearfix;\n  margin-#{$global-left}: 0;\n  margin-bottom: $margin-bottom;\n\n  // List item\n  li {\n    margin-#{$global-right}: $spacing;\n    border-radius: $radius;\n    font-size: $font-size;\n\n    @if $pagination-mobile-items {\n      display: inline-block;\n    }\n    @else {\n      display: none;\n\n      &:last-child,\n      &:first-child {\n        display: inline-block;\n      }\n\n      @if $pagination-mobile-current-item {\n        &.current {\n          display: inline-block;\n        }\n      }\n\n      @include breakpoint(medium) {\n        display: inline-block;\n      }\n    }\n  }\n\n  // Page links\n  a,\n  button {\n    display: block;\n    padding: $padding;\n    border-radius: $radius;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n    }\n  }\n}\n\n/// Adds styles for the current pagination item. Apply this to an `<a>`.\n@mixin pagination-item-current (\n  $padding: $pagination-item-padding,\n  $background-current: $pagination-item-background-current,\n  $color-current: $pagination-item-color-current\n) {\n  padding: $padding;\n  background: $background-current;\n  color: $color-current;\n  cursor: default;\n}\n\n/// Adds styles for a disabled pagination item. Apply this to an `<a>`.\n@mixin pagination-item-disabled (\n  $padding: $pagination-item-padding,\n  $color: $pagination-item-color-disabled\n) {\n  padding: $padding;\n  color: $color;\n  cursor: not-allowed;\n\n  &:hover {\n    background: transparent;\n  }\n}\n\n/// Adds styles for an ellipsis for use in a pagination list.\n@mixin pagination-ellipsis (\n  $padding: $pagination-item-padding,\n  $color: $pagination-ellipsis-color\n) {\n  padding: $padding;\n  content: '\\2026';\n  color: $color;\n}\n\n@mixin foundation-pagination {\n  .pagination {\n    @include pagination-container;\n\n    .current {\n      @include pagination-item-current;\n    }\n\n    .disabled {\n      @include pagination-item-disabled;\n    }\n\n    .ellipsis::after {\n      @include pagination-ellipsis;\n    }\n  }\n\n  @if $pagination-arrows {\n    .pagination-previous a::before,\n    .pagination-previous.disabled::before {\n      display: inline-block;\n      margin-#{$global-right}: 0.5rem;\n      content: $pagination-arrow-previous;\n    }\n\n    .pagination-next a::after,\n    .pagination-next.disabled::after {\n      display: inline-block;\n      margin-#{$global-left}: 0.5rem;\n      content: $pagination-arrow-next;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tooltip\n////\n\n/// Default cursor of the defined term.\n/// @type Keyword\n$has-tip-cursor: help !default;\n\n/// Default font weight of the defined term.\n/// @type Keyword | Number\n$has-tip-font-weight: $global-weight-bold !default;\n\n/// Default border bottom of the defined term.\n/// @type List\n$has-tip-border-bottom: dotted 1px $dark-gray !default;\n\n/// Default color of the tooltip background.\n/// @type Color\n$tooltip-background-color: $black !default;\n\n/// Default color of the tooltip font.\n/// @type Color\n$tooltip-color: $white !default;\n\n/// Default padding of the tooltip background.\n/// @type Number\n$tooltip-padding: 0.75rem !default;\n\n/// Default max width for tooltips.\n/// @type Number\n$tooltip-max-width: 10rem !default;\n\n/// Default font size of the tooltip text. By default, we recommend a smaller font size than the body copy.\n/// @type Number\n$tooltip-font-size: $small-font-size !default;\n\n/// Default pip width for tooltips.\n/// @type Number\n$tooltip-pip-width: 0.75rem !default;\n\n/// Default pip height for tooltips. This is helpful for calculating the distance of the tooltip from the tooltip word.\n/// @type Number\n$tooltip-pip-height: $tooltip-pip-width * 0.866 !default;\n\n/// Default radius for tooltips.\n/// @type Number\n$tooltip-radius: $global-radius !default;\n\n@mixin has-tip {\n  position: relative;\n  display: inline-block;\n\n  border-bottom: $has-tip-border-bottom;\n  font-weight: $has-tip-font-weight;\n  cursor: $has-tip-cursor;\n}\n\n@mixin tooltip {\n  position: absolute;\n  top: calc(100% + #{$tooltip-pip-height});\n  z-index: 1200;\n\n  max-width: $tooltip-max-width;\n  padding: $tooltip-padding;\n\n  border-radius: $tooltip-radius;\n  background-color: $tooltip-background-color;\n  font-size: $tooltip-font-size;\n  color: $tooltip-color;\n\n  &::before {\n    position: absolute;\n  }\n\n  &.bottom {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, up);\n      bottom: 100%;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.top {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, down);\n      top: 100%;\n      bottom: auto;\n    }\n\n    &.align-center::before {\n      left: 50%;\n      transform: translateX(-50%);\n    }\n  }\n\n  &.left {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, right);\n      left: 100%;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.right {\n    &::before {\n      @include css-triangle($tooltip-pip-width, $tooltip-background-color, left);\n      right: 100%;\n      left: auto;\n    }\n\n    &.align-center::before {\n      bottom: auto;\n      top: 50%;\n      transform: translateY(-50%);\n    }\n  }\n\n  &.align-top::before {\n    bottom: auto;\n    top: 10%;\n  }\n\n  &.align-bottom::before {\n    bottom: 10%;\n    top: auto;\n  }\n\n  &.align-left::before {\n    left: 10%;\n    right: auto;\n  }\n\n  &.align-right::before {\n    left: auto;\n    right: 10%;\n  }\n}\n\n@mixin foundation-tooltip {\n  .has-tip {\n    @include has-tip;\n  }\n\n  .tooltip {\n    @include tooltip;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group accordion\n////\n\n/// Default background color of an accordion group.\n/// @type Color\n$accordion-background: $white !default;\n\n/// If `true`, adds plus and minus icons to the side of each accordion title.\n/// @type Boolean\n$accordion-plusminus: true !default;\n\n/// Content for the plus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-plus-content: '\\002B' !default;\n\n/// Content for the minus icon when `$accordion-plusminus` is `true`\n/// @type String\n$accordion-minus-content: '\\2013' !default;\n\n/// Font size of accordion titles.\n/// @type Number\n$accordion-title-font-size: rem-calc(12) !default;\n\n/// Default text color for items in a Menu.\n/// @type Color\n$accordion-item-color: $primary-color !default;\n\n/// Default background color on hover for items in a Menu.\n/// @type Color\n$accordion-item-background-hover: $light-gray !default;\n\n/// Default padding of an accordion item.\n/// @type Number | List\n$accordion-item-padding: 1.25rem 1rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$accordion-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$accordion-content-border: 1px solid $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$accordion-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$accordion-content-padding: 1rem !default;\n\n/// Adds styles for an accordion container. Apply this to the same element that gets `data-accordion`.\n@mixin accordion-container (\n  $background: $accordion-background\n) {\n  margin-#{$global-left}: 0;\n  background: $background;\n  list-style-type: none;\n\n  &[disabled] {\n    .accordion-title {\n      cursor: not-allowed;\n    }\n  }\n}\n\n/// Adds styles for the accordion item. Apply this to the list item within an accordion ul.\n@mixin accordion-item {\n  &:first-child > :first-child {\n    border-radius: $global-radius $global-radius 0 0;\n  }\n\n  &:last-child > :last-child {\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n}\n\n/// Adds styles for the title of an accordion item. Apply this to the link within an accordion item.\n@mixin accordion-title (\n  $padding: $accordion-item-padding,\n  $font-size: $accordion-title-font-size,\n  $color: $accordion-item-color,\n  $border: $accordion-content-border,\n  $background-hover: $accordion-item-background-hover\n) {\n  position: relative;\n  display: block;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n\n  font-size: $font-size;\n  line-height: 1;\n  color: $color;\n\n  :last-child:not(.is-active) > & {\n    border-bottom: $border;\n    border-radius: 0 0 $global-radius $global-radius;\n  }\n\n  &:hover,\n  &:focus {\n    background-color: $background-hover;\n  }\n\n  @if $accordion-plusminus {\n    &::before {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 1rem;\n      margin-top: -0.5rem;\n      content: $accordion-plus-content;\n    }\n\n    .is-active > &::before {\n      content: $accordion-minus-content;\n    }\n  }\n}\n\n/// Adds styles for accordion content. Apply this to the content pane below an accordion item's title.\n@mixin accordion-content (\n  $padding: $accordion-content-padding,\n  $border: $accordion-content-border,\n  $background: $accordion-content-background,\n  $color: $accordion-content-color\n) {\n  display: none;\n  padding: $padding;\n\n  border: $border;\n  border-bottom: 0;\n  background-color: $background;\n\n  color: $color;\n\n  :last-child > &:last-child {\n    border-bottom: $border;\n  }\n}\n\n@mixin foundation-accordion {\n  .accordion {\n    @include accordion-container;\n  }\n\n  .accordion-item {\n    @include accordion-item;\n  }\n\n  .accordion-title {\n    @include accordion-title;\n  }\n\n  .accordion-content {\n    @include accordion-content;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group media-object\n////\n\n/// Bottom margin of a media object.\n/// @type Number\n$mediaobject-margin-bottom: $global-margin !default;\n\n/// Left and right padding on sections within a media object.\n/// @type Number\n$mediaobject-section-padding: $global-padding !default;\n\n/// Width of images within a media object, when the object is stacked vertically. Set to 'auto' to use the image's natural width.\n/// @type Number\n$mediaobject-image-width-stacked: 100% !default;\n\n/// Adds styles for a media object container.\n@mixin media-object-container {\n  display: if($global-flexbox, flex, block);\n  margin-bottom: $mediaobject-margin-bottom;\n\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n  }\n\n  img {\n    max-width: none;\n  }\n\n  @if $global-flexbox {\n    &.stack-for-#{$-zf-zero-breakpoint} {\n      @include breakpoint($-zf-zero-breakpoint only) {\n        flex-wrap: wrap;\n      }\n    }\n  }\n}\n\n/// Adds styles for sections within a media object.\n/// @param {Number} $padding [$mediaobject-section-padding] - Padding between sections.\n@mixin media-object-section($padding: $mediaobject-section-padding) {\n  @if $global-flexbox {\n    flex: 0 1 auto;\n  }\n  @else {\n    display: table-cell;\n    vertical-align: top;\n  }\n\n  &:first-child {\n    padding-#{$global-right}: $padding;\n  }\n\n  &:last-child:not(:nth-child(2)) {\n    padding-#{$global-left}: $padding;\n  }\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n\n  .stack-for-#{$-zf-zero-breakpoint} & {\n    @include breakpoint($-zf-zero-breakpoint only) {\n      @include media-object-stack;\n    }\n  }\n\n  @if $global-flexbox {\n    &.main-section {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    &.middle {\n      vertical-align: middle;\n    }\n\n    &.bottom {\n      vertical-align: bottom;\n    }\n  }\n}\n\n/// Adds styles to stack sections of a media object. Apply this to the section elements, not the container.\n@mixin media-object-stack {\n  padding: 0;\n  padding-bottom: $mediaobject-section-padding;\n\n  @if $global-flexbox {\n    flex-basis: 100%;\n    max-width: 100%;\n  }\n  @else {\n    display: block;\n  }\n\n  img {\n    width: $mediaobject-image-width-stacked;\n  }\n}\n\n@mixin foundation-media-object {\n  .media-object {\n    @include media-object-container;\n  }\n\n  .media-object-section {\n    @include media-object-section;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group orbit\n////\n\n/// Default color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background: $medium-gray !default;\n\n/// Default active color for Orbit's bullets.\n/// @type Color\n$orbit-bullet-background-active: $dark-gray !default;\n\n/// Default diameter for Orbit's bullets.\n/// @type Number\n$orbit-bullet-diameter: 1.2rem !default;\n\n/// Default margin between Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin: 0.1rem !default;\n\n/// Default distance from slide region for Orbit's bullets.\n/// @type Number\n$orbit-bullet-margin-top: 0.8rem !default;\n\n/// Default bottom margin from Orbit's bullets to whatever content may lurk below it.\n/// @type Number\n$orbit-bullet-margin-bottom: 0.8rem !default;\n\n/// Default background color for Orbit's caption.\n/// @type Color\n$orbit-caption-background: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's caption.\n/// @type Number\n$orbit-caption-padding: 1rem !default;\n\n/// Default background color for Orbit's controls when hovered.\n/// @type Color\n$orbit-control-background-hover: rgba($black, 0.5) !default;\n\n/// Default padding for Orbit's controls.\n/// @type Number\n$orbit-control-padding: 1rem !default;\n\n/// Default z-index for Orbit's controls.\n/// @type Number\n$orbit-control-zindex: 10 !default;\n\n/// Adds styles for the outer Orbit wrapper. These styles are used on the `.orbit` class.\n@mixin orbit-wrapper {\n  position: relative;\n}\n\n/// Adds styles for the inner Orbit slide container. These styles are used on the `.orbit-container` class.\n@mixin orbit-container {\n  position: relative;\n  height: 0; // Prevent FOUC by not showing until JS sets height\n  margin: 0;\n  list-style: none;\n  overflow: hidden;\n}\n\n/// Adds styles for the individual slides of an Orbit slider. These styles are used on the `.orbit-slide` class.\n@mixin orbit-slide {\n  width: 100%;\n  position: absolute;\n\n  &.no-motionui {\n    &.is-active {\n      top: 0;\n      left: 0;\n    }\n  }\n}\n\n@mixin orbit-figure {\n  margin: 0;\n}\n\n/// Adds styles for a slide containing an image. These styles are used on the `.orbit-image` class.\n@mixin orbit-image {\n  width: 100%;\n  max-width: 100%;\n  margin: 0;\n}\n\n/// Adds styles for an orbit slide caption. These styles are used on the `.orbit-caption` class.\n@mixin orbit-caption {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n  margin-bottom: 0;\n  padding: $orbit-caption-padding;\n\n  background-color: $orbit-caption-background;\n  color: color-pick-contrast($orbit-caption-background);\n}\n\n/// Adds base styles for the next/previous buttons in an Orbit slider. These styles are shared between the `.orbit-next` and `.orbit-previous` classes in the default CSS.\n@mixin orbit-control {\n  @include disable-mouse-outline;\n  @include vertical-center;\n  z-index: $orbit-control-zindex;\n  padding: $orbit-control-padding;\n  color: $white;\n\n  &:hover,\n  &:active,\n  &:focus {\n    background-color: $orbit-control-background-hover;\n  }\n}\n\n/// Adds styles for the Orbit previous button. These styles are used on the `.orbit-previous` class.\n@mixin orbit-previous {\n  #{$global-left}: 0;\n}\n\n/// Adds styles for the Orbit next button. These styles are used on the `.orbit-next` class.\n@mixin orbit-next {\n  #{$global-left}: auto;\n  #{$global-right}: 0;\n}\n\n/// Adds styles for a container of Orbit bullets. /// Adds styles for the Orbit previous button. These styles are used on the `.orbit-bullets` class.\n@mixin orbit-bullets {\n  @include disable-mouse-outline;\n  position: relative;\n  margin-top: $orbit-bullet-margin-top;\n  margin-bottom: $orbit-bullet-margin-bottom;\n  text-align: center;\n\n  button {\n    width: $orbit-bullet-diameter;\n    height: $orbit-bullet-diameter;\n    margin: $orbit-bullet-margin;\n\n    border-radius: 50%;\n    background-color: $orbit-bullet-background;\n\n    &:hover {\n      background-color: $orbit-bullet-background-active;\n    }\n\n    &.is-active {\n      background-color: $orbit-bullet-background-active;\n    }\n  }\n}\n\n@mixin foundation-orbit {\n  .orbit {\n    @include orbit-wrapper;\n  }\n\n  .orbit-container {\n    @include orbit-container;\n  }\n\n  .orbit-slide {\n    @include orbit-slide;\n  }\n\n  .orbit-figure {\n    @include orbit-figure;\n  }\n\n  .orbit-image {\n    @include orbit-image;\n  }\n\n  .orbit-caption {\n    @include orbit-caption;\n  }\n\n  %orbit-control {\n    @include orbit-control;\n  }\n\n  .orbit-previous {\n    @extend %orbit-control;\n    @include orbit-previous;\n  }\n\n  .orbit-next {\n    @extend %orbit-control;\n    @include orbit-next;\n  }\n\n  .orbit-bullets {\n    @include orbit-bullets;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group responsive-embed\n////\n\n/// Margin below a responsive embed container.\n/// @type Number\n$responsive-embed-margin-bottom: rem-calc(16) !default;\n\n/// Aspect ratios used to determine padding-bottom of responsive embed containers.\n/// @type Map\n$responsive-embed-ratios: (\n  default: 4 by 3,\n  widescreen: 16 by 9,\n) !default;\n\n/// Creates a responsive embed container.\n/// @param {String|List} $ratio [default] - Ratio of the container. Can be a key from the `$responsive-embed-ratios` map or a list formatted as `x by y`.\n@mixin responsive-embed($ratio: default) {\n  @if type-of($ratio) == 'string' {\n    $ratio: map-get($responsive-embed-ratios, $ratio);\n  }\n  position: relative;\n  height: 0;\n  margin-bottom: $responsive-embed-margin-bottom;\n  padding-bottom: ratio-to-percentage($ratio);\n  overflow: hidden;\n\n  iframe,\n  object,\n  embed,\n  video {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@mixin foundation-responsive-embed {\n  .responsive-embed,\n  .flex-video {\n    @include responsive-embed($ratio: default);\n\n    $ratios: map-remove($responsive-embed-ratios, default);\n\n    @each $name, $ratio in $ratios {\n      &.#{$name} {\n        padding-bottom: ratio-to-percentage($ratio);\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group tabs\n////\n\n/// Default margin of the tab bar.\n/// @type Number\n$tab-margin: 0 !default;\n\n/// Default background color of a tab bar.\n/// @type Color\n$tab-background: $white !default;\n\n/// Font color of tab item.\n/// @type Color\n$tab-color: $primary-color !default;\n\n/// Active background color of a tab bar.\n/// @type Color\n$tab-background-active: $light-gray !default;\n\n/// Active font color of tab item.\n/// @type Color\n$tab-active-color: $primary-color !default;\n\n/// Font size of tab items.\n/// @type Number\n$tab-item-font-size: rem-calc(12) !default;\n\n/// Default background color on hover for items in a Menu.\n$tab-item-background-hover: $white !default;\n\n/// Default padding of a tab item.\n/// @type Number\n$tab-item-padding: 1.25rem 1.5rem !default;\n\n/// Default background color of tab content.\n/// @type Color\n$tab-content-background: $white !default;\n\n/// Default border color of tab content.\n/// @type Color\n$tab-content-border: $light-gray !default;\n\n/// Default text color of tab content.\n/// @type Color\n$tab-content-color: $body-font-color !default;\n\n/// Default padding for tab content.\n/// @type Number | List\n$tab-content-padding: 1rem !default;\n\n/// Adds styles for a tab container. Apply this to a `<ul>`.\n@mixin tabs-container (\n  $margin: $tab-margin,\n  $background: $tab-background,\n  $border-color: $tab-content-border\n) {\n  @include clearfix;\n  margin: $margin;\n  border: 1px solid $border-color;\n  background: $background;\n  list-style-type: none;\n}\n\n/// Augments a tab container to have vertical tabs. Use this in conjunction with `tabs-container()`.\n@mixin tabs-container-vertical {\n  > li {\n    display: block;\n    float: none;\n    width: auto;\n  }\n}\n\n/// Adds styles for the links within a tab container. Apply this to the `<li>` elements inside a tab container.\n@mixin tabs-title (\n  $padding: $tab-item-padding,\n  $font-size: $tab-item-font-size,\n  $color: $tab-color,\n  $color-active: $tab-active-color,\n  $background-hover: $tab-item-background-hover,\n  $background-active: $tab-background-active\n) {\n  float: #{$global-left};\n\n  > a {\n    @include disable-mouse-outline;\n    display: block;\n    padding: $padding;\n    font-size: $font-size;\n    line-height: 1;\n    color: $color;\n\n    &:hover {\n      background: $background-hover;\n      color: scale-color($color, $lightness: -14%);\n    }\n\n    &:focus,\n    &[aria-selected='true'] {\n      background: $background-active;\n      color: $color-active;\n    }\n  }\n}\n\n/// Adds styles for the wrapper that surrounds a tab group's content panes.\n@mixin tabs-content (\n  $background: $tab-content-background,\n  $color: $tab-content-color,\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-top: 0;\n  background: $background;\n  color: $color;\n  transition: all 0.5s ease;\n}\n\n/// Augments a tab content container to have a vertical style, by shifting the border around. Use this in conjunction with `tabs-content()`.\n@mixin tabs-content-vertical (\n  $border-color: $tab-content-border\n) {\n  border: 1px solid $border-color;\n  border-#{$global-left}: 0;\n}\n\n/// Adds styles for an individual tab content panel within the tab content container.\n@mixin tabs-panel (\n  $padding: $tab-content-padding\n) {\n  display: none;\n  padding: $padding;\n\n  &.is-active {\n    display: block;\n  }\n}\n\n@mixin foundation-tabs {\n  .tabs {\n    @include tabs-container;\n  }\n\n  // Vertical\n  .tabs.vertical {\n    @include tabs-container-vertical;\n  }\n\n  // Simple\n  .tabs.simple {\n    > li > a {\n      padding: 0;\n\n      &:hover {\n        background: transparent;\n      }\n    }\n  }\n\n  // Primary color\n  .tabs.primary {\n    background: $primary-color;\n\n    > li > a {\n      color: color-pick-contrast($primary-color);\n\n      &:hover,\n      &:focus {\n        background: smart-scale($primary-color);\n      }\n    }\n  }\n\n  .tabs-title {\n    @include tabs-title;\n  }\n\n  .tabs-content {\n    @include tabs-content;\n  }\n\n  .tabs-content.vertical {\n    @include tabs-content-vertical;\n  }\n\n  .tabs-panel {\n    @include tabs-panel;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group thumbnail\n////\n\n/// Border around thumbnail images.\n/// @type Border\n$thumbnail-border: 4px solid $white !default;\n\n/// Bottom margin for thumbnail images.\n/// @type Length\n$thumbnail-margin-bottom: $global-margin !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2) !default;\n\n/// Box shadow under thumbnail images.\n/// @type Shadow\n$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5) !default;\n\n/// Transition proprties for thumbnail images.\n/// @type Transition\n$thumbnail-transition: box-shadow 200ms ease-out !default;\n\n/// Default radius for thumbnail images.\n/// @type Number\n$thumbnail-radius: $global-radius !default;\n\n/// Adds thumbnail styles to an element.\n@mixin thumbnail {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: $thumbnail-margin-bottom;\n\n  border: $thumbnail-border;\n  border-radius: $thumbnail-radius;\n  box-shadow: $thumbnail-shadow;\n\n  line-height: 0;\n}\n\n@mixin thumbnail-link {\n  transition: $thumbnail-transition;\n\n  &:hover,\n  &:focus {\n    box-shadow: $thumbnail-shadow-hover;\n  }\n\n  image {\n    box-shadow: none;\n  }\n}\n\n@mixin foundation-thumbnail {\n  .thumbnail {\n    @include thumbnail;\n  }\n\n  a.thumbnail {\n    @include thumbnail-link;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group menu\n////\n\n/// Margin of a menu.\n/// @type Number\n$menu-margin: 0 !default;\n\n/// Left-hand margin of a nested menu.\n/// @type Number\n$menu-nested-margin: $global-menu-nested-margin !default;\n\n/// Padding for items in a pill menu.\n/// @type Number\n$menu-items-padding: $global-menu-padding !default;\n\n/// margin for items in a simple menu.\n/// @type Number\n$menu-simple-margin: 1rem !default;\n\n/// Text color of an active menu item.\n/// @type Color\n$menu-item-color-active: $white !default;\n\n/// Alternative text color of an active menu item..\n/// @type Color\n$menu-item-color-alt-active: $black !default;\n\n/// Background color of an active menu item.\n/// @type Color\n$menu-item-background-active: get-color(primary) !default;\n\n/// Spacing between an icon and text in a menu item.\n/// @type Number\n$menu-icon-spacing: 0.25rem !default;\n\n/// Backward compatibility for menu state. If true, this duplicate `active` with `is-active`.\n/// But please note that `active` will be removed in upcoming versions.\n/// @type Boolean\n$menu-state-back-compat: true !default;\n\n/// Backward compatibility for menu centered. If true, this duplicate `.menu-centered > .menu` with `.menu.align-center`.\n/// But please note that `menu-centered` will be removed in upcoming versions.\n/// @type Boolean\n$menu-centered-back-compat: true !default;\n\n/// Backward compatibility for using `icon-*` classes without `.icons` classes\n/// But please note that this backward compatibility will be removed in upcoming versions.\n/// @type Boolean\n$menu-icons-back-compat: true !default;\n\n/// Creates the base styles for a Menu.\n@mixin menu-base {\n  padding: 0;\n  margin: 0;\n  list-style: none;\n  position: relative;\n\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  li {\n    @include disable-mouse-outline;\n  }\n\n  a,\n  .button {\n    line-height: 1;\n    text-decoration: none;\n    display: block;\n    padding: $menu-items-padding;\n  }\n\n  // Reset styles of inner elements\n  input,\n  select,\n  a,\n  button {\n    margin-bottom: 0;\n  }\n\n  input {\n    display: inline-block;\n  }\n}\n\n/// Expands the items of a Menu, so each item is the same width.\n@mixin menu-expand {\n  @if $global-flexbox {\n    li {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n  }\n  @else {\n    display: table;\n    width: 100%;\n\n    > li {\n      display: table-cell;\n      vertical-align: middle;\n    }\n  }\n}\n\n/// Align menu items.\n@mixin menu-align($alignment) {\n  @if $alignment == left {\n    @if $global-flexbox {\n      justify-content: flex-start;\n    }\n    @else {\n      text-align: $global-left;\n    }\n  }\n  @else if $alignment == right {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: flex-end;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n\n      &.vertical li {\n        display: block;\n        text-align: $global-right;\n\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n    @else {\n      text-align: $global-right;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n\n      &.vertical {\n        .submenu li {\n          text-align: $global-right;\n        }\n      }\n    }\n  }\n  @else if $alignment == center {\n    @if $global-flexbox {\n      li {\n        display: flex;\n        justify-content: center;\n\n        .submenu li {\n          justify-content: flex-start;\n        }\n      }\n    }\n    @else {\n      text-align: center;\n\n      .submenu li {\n        text-align: $global-left;\n      }\n    }\n  }\n}\n\n/// Sets the direction of a Menu.\n/// @param {Keyword} $dir [horizontal] - Direction of the Menu. Can be `horizontal` or `vertical`.\n@mixin menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    @if $global-flexbox {\n      flex-wrap: wrap;\n      flex-direction: row;\n    }\n    @else {\n      li {\n        display: inline-block;\n      }\n    }\n  }\n  @else if $dir == vertical {\n    @if $global-flexbox {\n      flex-wrap: nowrap;\n      flex-direction: column;\n    }\n    @else {\n      li {\n        display: block;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for menu-direction() must be horizontal or vertical.';\n  }\n}\n\n/// Creates a simple Menu, which has no padding or hover state.\n/// @param {Keyword} $dir [$global-left] - Direction of the menu. This effects the side of the `<li>` that receives the margin.\n/// @param {Number} $margin [$menu-simple-margin] - The margin to apply to each `<li>`.\n@mixin menu-simple($dir: $global-left, $margin: $menu-simple-margin) {\n  @if $global-flexbox {\n    align-items: center;\n  }\n\n  li + li {\n    margin-#{$dir}: $margin;\n  }\n\n  a {\n    padding: 0;\n  }\n}\n\n/// Adds styles for a nested Menu, by adding `margin-left` to the menu.\n/// @param {Keyword|Number} $margin [$menu-nested-margin] - Length of the margin.\n/// @param {Keyword} $nested-alignment [left] - Alignment of the nested class\n@mixin menu-nested(\n  $margin: $menu-nested-margin,\n  $nested-alignment: left\n) {\n  @if $nested-alignment == right {\n    margin-#{$global-right}: $margin;\n    margin-#{$global-left}: 0;\n  }\n  @else {\n    margin-#{$global-right}: 0;\n    margin-#{$global-left}: $margin;\n  }\n\n}\n\n/// Adds basic styles for icons in menus.\n@mixin menu-icons() {\n  @if $global-flexbox {\n    a {\n      display: flex;\n    }\n  }\n  @else {\n    img,\n    i,\n    svg {\n      vertical-align: middle;\n\n      + span {\n        vertical-align: middle;\n      }\n    }\n  }\n}\n\n/// Align top/bottom icons within a menu.\n/// @param {Keyword} $alignment [center] - Alignment of the icon\n@mixin menu-icon-alignment($alignment: center) {\n  @if $global-flexbox {\n    &.icon-top,\n    &.icon-bottom {\n      li a {\n        img,\n        i,\n        svg {\n          @if $alignment == left {\n            text-align: left;\n          }\n\n          @else if $alignment == right {\n            text-align: right;\n          }\n\n          @else {\n            text-align: center;\n          }\n        }\n      }\n    }\n  }\n}\n\n/// Adds position classes for icons within a menu.\n@mixin menu-icon-position($position: left, $spacing: $menu-icon-spacing) {\n  @if $position == left {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-right}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    li a {\n      @if $global-flexbox {\n        flex-flow: row nowrap;\n      }\n\n      img,\n      i,\n      svg {\n        margin-#{$global-left}: $spacing;\n\n        @if not $global-flexbox {\n          display: inline-block;\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: 0 auto $spacing;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    li a {\n      @if $global-flexbox {\n        flex-flow: column nowrap;\n      }\n      @else {\n        text-align: center;\n      }\n\n      img,\n      i,\n      svg {\n        @if not $global-flexbox {\n          display: block;\n          margin: $spacing auto 0;\n        }\n        @else {\n          align-self: stretch;\n          margin-bottom: $spacing;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n\n@mixin menu-text {\n  padding: $global-menu-padding;\n\n  font-weight: bold;\n  line-height: 1;\n  color: inherit;\n}\n\n@mixin menu-state-active {\n  background: $menu-item-background-active;\n  color: color-pick-contrast($menu-item-background-active, ($menu-item-color-active, $menu-item-color-alt-active));\n}\n\n@mixin foundation-menu {\n  .menu {\n    @include menu-base;\n\n    // Default orientation: horizontal\n    &, &.horizontal {\n      @include menu-direction(horizontal);\n    }\n\n    // Vertical orientation modifier\n    &.vertical {\n      @include menu-direction(vertical);\n      @include menu-icon-alignment(left);\n    }\n\n    // Even-width modifier for horizontal orientation\n    &.expanded {\n      @include menu-expand;\n      @include menu-icon-alignment(left);\n    }\n\n    // Simple\n    &.simple {\n      @include menu-simple;\n    }\n\n    // Breakpoint specific versions\n    @include -zf-each-breakpoint($small: false) {\n      &.#{$-zf-size}-horizontal {\n        @include menu-direction(horizontal);\n      }\n\n      &.#{$-zf-size}-vertical {\n        @include menu-direction(vertical);\n      }\n\n      &.#{$-zf-size}-expanded {\n        @include menu-expand;\n      }\n\n      &.#{$-zf-size}-simple {\n        @include menu-expand;\n      }\n    }\n\n    // Nesting\n    &.nested {\n      @include menu-nested;\n    }\n\n    // Icon Base Styles\n    &.icons {\n      @include menu-icons;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-icons-back-compat {\n      &.icon-top,\n      &.icon-right,\n      &.icon-bottom,\n      &.icon-left {\n        @include menu-icons;\n      }\n    }\n\n    // Menu icon position\n    // Includes specificity to nested icons with a different position\n    &,\n    &.nested {\n      // Icon Left\n      &.icon-left {\n        @include menu-icon-position(left);\n      }\n\n      // Icon Right\n      &.icon-right {\n        @include menu-icon-position(right);\n      }\n\n      // Icon Top\n      &.icon-top {\n        @include menu-icon-position(top);\n      }\n\n      // Icon Bottom\n      &.icon-bottom {\n        @include menu-icon-position(bottom);\n      }\n    }\n\n    // Active state\n    .is-active > a {\n      @include menu-state-active;\n    }\n\n    // Backward Compatibility for active state\n    @if $menu-state-back-compat {\n      .active > a {\n        @include menu-state-active;\n      }\n    }\n\n    // Align left\n    &.align-#{$global-left} {\n      @include menu-align(left);\n    }\n\n    // Align right\n    &.align-#{$global-right} {\n      @include menu-align(right);\n      @include menu-icon-alignment(right);\n\n      .nested {\n        @include menu-nested($nested-alignment: right);\n      }\n    }\n\n    // Align center\n    &.align-center {\n      @include menu-align(center);\n    }\n\n    .menu-text {\n      @include menu-text;\n    }\n  }\n\n  @if $menu-centered-back-compat {\n    .menu-centered {\n      > .menu {\n        @if $global-flexbox {\n          justify-content: center;\n        }\n\n        @include menu-align(center);\n      }\n    }\n  }\n\n  // Prevent FOUC when using the Responsive Menu plugin\n  .no-js [data-responsive-menu] ul {\n    display: none;\n  }\n}\n","@mixin foundation-menu-icon {\n  .menu-icon {\n    @include hamburger($color: $titlebar-icon-color, $color-hover: $titlebar-icon-color-hover);\n  }\n\n  .menu-icon.dark {\n    @include hamburger;\n  }\n}\n","////\n/// @group accordion-menu\n////\n\n/// Sets accordion menu padding.\n/// @type Number\n$accordionmenu-padding: $global-menu-padding !default;\n\n/// Sets accordion menu nested margin\n/// @type Number\n$accordionmenu-nested-margin: $global-menu-nested-margin !default;\n\n/// Sets accordion menu submenu padding.\n/// @type Number\n$accordionmenu-submenu-padding: $accordionmenu-padding !default;\n\n/// Sets if accordion menus have the default arrow styles.\n/// @type Boolean\n$accordionmenu-arrows: true !default;\n\n/// Sets accordion menu arrow color if arrow is used.\n/// @type Color\n$accordionmenu-arrow-color: $primary-color !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-item-background: null !default;\n\n/// Sets accordion menu item border.\n/// @type Color\n$accordionmenu-border: null !default;\n\n/// Sets accordion menu item padding.\n/// @type Color\n$accordionmenu-submenu-toggle-background: null !default;\n\n/// Sets accordion menu item padding.\n/// @type List\n$accordion-submenu-toggle-border: $accordionmenu-border !default;\n\n/// Sets accordion menu submenu toggle background width.\n/// @type Number\n$accordionmenu-submenu-toggle-width: 40px !default;\n\n/// Sets accordion menu submenu toggle background height.\n/// @type Number\n$accordionmenu-submenu-toggle-height: $accordionmenu-submenu-toggle-width !default;\n\n/// Sets accordion menu arrow size if arrow is used.\n/// @type Length\n$accordionmenu-arrow-size: 6px !default;\n\n@mixin zf-accordion-menu-left-right-arrows {\n  .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * ($accordionmenu-arrow-size * 0.5);\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-accordion-submenu-parent > a::after {\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-accordion-submenu-parent > a::after {\n    right: auto;\n    left: 1rem;\n  }\n}\n@mixin foundation-accordion-menu {\n\n  .accordion-menu {\n    @if $accordionmenu-border {\n      border-bottom: $accordionmenu-border;\n    }\n\n    li {\n      @if $accordionmenu-border {\n        border-top: $accordionmenu-border;\n        border-right: $accordionmenu-border;\n        border-left: $accordionmenu-border;\n      }\n      width: 100%;\n    }\n\n    a {\n      @if $accordionmenu-item-background {\n        background: $accordionmenu-item-background;\n      }\n      padding: $accordionmenu-padding;\n    }\n\n    .is-accordion-submenu a {\n      padding: $accordionmenu-submenu-padding;\n    }\n\n    .nested.is-accordion-submenu {\n      @include menu-nested($accordionmenu-nested-margin);\n    }\n\n    &.align-#{$global-right} {\n      .nested.is-accordion-submenu {\n        @include menu-nested($accordionmenu-nested-margin, right);\n      }\n    }\n\n    @if $accordionmenu-arrows {\n      @include zf-accordion-menu-left-right-arrows;\n\n      .is-accordion-submenu-parent[aria-expanded='true'] > a::after {\n        transform: rotate(180deg);\n        transform-origin: 50% 50%;\n      }\n    }\n  }\n\n  .is-accordion-submenu li {\n    @if $accordionmenu-border {\n      border-right: 0;\n      border-left: 0;\n    }\n  }\n\n  .is-accordion-submenu-parent {\n    position: relative;\n  }\n\n  .has-submenu-toggle > a {\n    margin-#{$global-right}: $accordionmenu-submenu-toggle-width;\n  }\n\n  // Submenu toggle\n  .submenu-toggle {\n    position: absolute;\n    top: 0;\n    #{$global-right}: 0;\n\n    width: $accordionmenu-submenu-toggle-width;\n    height: $accordionmenu-submenu-toggle-height;\n\n    cursor: pointer;\n\n    border-#{$global-left}: $accordion-submenu-toggle-border;\n\n    @if $accordionmenu-submenu-toggle-background {\n      background: $accordionmenu-submenu-toggle-background;\n    }\n\n    // Add the arrow to the toggle\n    &::after {\n      @include css-triangle($accordionmenu-arrow-size, $accordionmenu-arrow-color, down);\n\n      top: 0;\n      bottom: 0;\n      margin: auto;\n    }\n  }\n\n  // Rotate the arrow when menu is open\n  .submenu-toggle[aria-expanded='true']::after {\n    transform: scaleY(-1);\n    transform-origin: 50% 50%;\n  }\n\n  .submenu-toggle-text {\n    @include element-invisible;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group drilldown\n////\n\n/// Transition property to use for animating menus.\n/// @type Transition\n$drilldown-transition: transform 0.15s linear !default;\n\n/// Adds arrows to drilldown items with submenus, as well as the back button.\n/// @type Boolean\n$drilldown-arrows: true !default;\n\n/// Sets drilldown menu item padding.\n/// @type Number\n$drilldown-padding: $global-menu-padding !default;\n\n/// Sets drilldown menu nested margin\n/// @type Number\n$drilldown-nested-margin: 0 !default;\n\n/// Background color for drilldown top level items.\n/// @type Color\n$drilldown-background: $white !default;\n\n/// Sets drilldown menu item padding in the submenu.\n/// @type Number\n$drilldown-submenu-padding: $drilldown-padding !default;\n\n/// Background color for drilldown submenus.\n/// @type Color\n$drilldown-submenu-background: $white !default;\n\n/// Sets drilldown arrow color if arrow is used.\n/// @type Color\n$drilldown-arrow-color: $primary-color !default;\n\n/// Sets drilldown arrow size if arrow is used.\n/// @type Length\n$drilldown-arrow-size: 6px !default;\n\n@mixin zf-drilldown-left-right-arrows {\n  .is-drilldown-submenu-parent > a {\n    position: relative;\n\n    &::after {\n      @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-right);\n      position: absolute;\n      top: 50%;\n      margin-top: -1 * $drilldown-arrow-size;\n      #{$global-right}: 1rem;\n    }\n  }\n\n  &.align-left .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n    right: 1rem;\n    left: auto;\n  }\n\n  &.align-right .is-drilldown-submenu-parent > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 1rem;\n  }\n\n}\n\n@mixin foundation-drilldown-menu {\n  // Applied to the Menu container\n  .is-drilldown {\n    position: relative;\n    overflow: hidden;\n\n    li {\n      display: block;\n    }\n\n    &.animate-height {\n      transition: height 0.5s;\n    }\n  }\n\n  // The top level <ul>\n  .drilldown {\n    a {\n      padding: $drilldown-padding;\n      background: $drilldown-background;\n    }\n\n    // Applied to submenu <ul>s\n    .is-drilldown-submenu {\n      position: absolute;\n      top: 0;\n      #{$global-left}: 100%;\n      z-index: -1;\n\n      width: 100%;\n      background: $drilldown-submenu-background;\n      transition: $drilldown-transition;\n\n      &.is-active {\n        z-index: 1;\n        display: block;\n        transform: translateX(if($global-text-direction == ltr, -100%, 100%));\n      }\n\n      &.is-closing {\n        transform: translateX(if($global-text-direction == ltr, 100%, -100%));\n      }\n\n      // Submenu item padding\n      a {\n        padding: $drilldown-submenu-padding;\n      }\n    }\n\n    .nested.is-drilldown-submenu {\n      @include menu-nested($drilldown-nested-margin);\n    }\n\n    .drilldown-submenu-cover-previous {\n      min-height: 100%;\n    }\n\n    @if $drilldown-arrows {\n      @include zf-drilldown-left-right-arrows;\n\n      .js-drilldown-back > a::before {\n        @include css-triangle($drilldown-arrow-size, $drilldown-arrow-color, $global-left);\n        display: inline-block;\n        vertical-align: middle;\n        margin-#{$global-right}: 0.75rem; // Creates space between the arrow and the text\n      }\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group dropdown-menu\n////\n\n/// Enables arrows for items with dropdown menus.\n/// @type Boolean\n$dropdownmenu-arrows: true !default;\n\n/// Sets dropdown menu arrow color if arrow is used.\n/// @type Color\n$dropdownmenu-arrow-color: $anchor-color !default;\n\n/// Sets dropdown menu arrow size if arrow is used.\n/// @type Length\n$dropdownmenu-arrow-size: 6px !default;\n\n/// Sets dropdown menu arrow padding for aligning the arrow correctly.\n/// @type Length\n$dropdownmenu-arrow-padding: 1.5rem !default;\n\n/// Minimum width of dropdown sub-menus.\n/// @type Length\n$dropdownmenu-min-width: 200px !default;\n\n/// Background color for top level items.\n/// @type Color\n$dropdownmenu-background: null !default;\n\n/// Background color for dropdowns.\n/// @type Color\n$dropdownmenu-submenu-background: $white !default;\n\n/// Padding for top level items.\n/// @type Number\n$dropdownmenu-padding: $global-menu-padding !default;\n\n/// Sets dropdown menu nested margin\n/// @type Number\n$dropdownmenu-nested-margin: 0 !default;\n\n/// Padding for sub-menu items.\n/// @type Number\n$dropdownmenu-submenu-padding: $dropdownmenu-padding !default;\n\n/// Border for dropdown sub-menus.\n/// @type List\n$dropdownmenu-border: 1px solid $medium-gray !default;\n\n// Border width for dropdown sub-menus.\n// Used to adjust top margin of a sub-menu if a border is used.\n// @type Length\n$dropdownmenu-border-width: nth($dropdownmenu-border, 1);\n\n/// Text color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-color-active: get-color(primary) !default;\n\n/// Background color of an active dropdown menu item. Explicit override for menu defaults\n/// @type Color\n$dropdown-menu-item-background-active: transparent !default;\n\n@mixin zf-dropdown-left-right-arrows {\n  > a::after {\n    #{$global-right}: 14px;\n  }\n\n  &.opens-left > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, left);\n    right: auto;\n    left: 5px;\n  }\n\n  &.opens-right > a::after {\n    @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, right);\n  }\n}\n\n@mixin dropdown-menu-direction($dir: horizontal) {\n  @if $dir == horizontal {\n    > li.opens-left { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n\n    > li.opens-right { // sass-lint:disable-line no-qualifying-elements\n      > .is-dropdown-submenu {\n        top: 100%;\n        right: auto;\n        left: 0;\n      }\n    }\n\n    @if $dropdownmenu-arrows {\n      > li.is-dropdown-submenu-parent > a { // sass-lint:disable-line no-qualifying-elements\n        position: relative;\n        padding-#{$global-right}: $dropdownmenu-arrow-padding;\n      }\n\n      > li.is-dropdown-submenu-parent > a::after { // sass-lint:disable-line no-qualifying-elements\n        @include css-triangle($dropdownmenu-arrow-size, $dropdownmenu-arrow-color, down);\n        #{$global-right}: 5px;\n        #{$global-left}: auto;\n        margin-top: -1 * ($dropdownmenu-arrow-size * 0.5);\n      }\n    }\n  }\n  @else if $dir == vertical {\n    > li {\n      .is-dropdown-submenu {\n        top: 0;\n      }\n\n      &.opens-left {\n        > .is-dropdown-submenu {\n          top: 0;\n          right: 100%;\n          left: auto;\n        }\n      }\n\n      &.opens-right {\n        > .is-dropdown-submenu {\n          right: auto;\n          left: 100%;\n        }\n      }\n\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n  }\n  @else {\n    @warn 'The direction used for dropdown-menu-direction() must be horizontal or vertical.';\n  }\n}\n\n@mixin foundation-dropdown-menu {\n  .dropdown.menu {\n    @include dropdown-menu-direction(horizontal);\n\n    a {\n      @include disable-mouse-outline;\n    }\n\n    // Top-level item\n    > li > a {\n      background: $dropdownmenu-background;\n      padding: $dropdownmenu-padding;\n    }\n\n    // Top-level item active state\n    > li.is-active > a {\n      background: $dropdown-menu-item-background-active;\n      color: $dropdown-menu-item-color-active;\n    }\n\n    .no-js & ul {\n      display: none;\n    }\n\n    .nested.is-dropdown-submenu {\n      @include menu-nested($dropdownmenu-nested-margin);\n    }\n\n    &.vertical {\n      @include dropdown-menu-direction(vertical);\n    }\n\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        @include breakpoint($size) {\n          &.#{$size}-horizontal {\n            @include dropdown-menu-direction(horizontal);\n          }\n\n          &.#{$size}-vertical {\n            @include dropdown-menu-direction(vertical);\n          }\n        }\n      }\n    }\n\n    &.align-right {\n      .is-dropdown-submenu.first-sub {\n        top: 100%;\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n\n  .is-dropdown-menu.vertical {\n    width: 100px;\n\n    &.align-right {\n      float: right;\n    }\n  }\n\n  .is-dropdown-submenu-parent {\n    position: relative;\n\n    a::after {\n      position: absolute;\n      top: 50%;\n      #{$global-right}: 5px;\n      #{$global-left}: auto;\n      margin-top: -1 * $dropdownmenu-arrow-size;\n    }\n\n    &.opens-inner > .is-dropdown-submenu {\n\n      top: 100%;\n      @if $global-text-direction == 'rtl' {\n        right: auto;\n      }\n      @else {\n        left: auto;\n      }\n    }\n\n    &.opens-left > .is-dropdown-submenu {\n      right: 100%;\n      left: auto;\n    }\n\n    &.opens-right > .is-dropdown-submenu {\n      right: auto;\n      left: 100%;\n    }\n  }\n\n  .is-dropdown-submenu {\n    position: absolute;\n    top: 0;\n    #{$global-left}: 100%;\n    z-index: 1;\n\n    display: none;\n    min-width: $dropdownmenu-min-width;\n\n    border: $dropdownmenu-border;\n    background: $dropdownmenu-submenu-background;\n\n    .dropdown & a {\n      padding: $dropdownmenu-submenu-padding;\n    }\n\n    .is-dropdown-submenu-parent {\n      @if $dropdownmenu-arrows {\n        @include zf-dropdown-left-right-arrows;\n      }\n    }\n\n    @if (type-of($dropdownmenu-border-width) == 'number') {\n      .is-dropdown-submenu {\n        margin-top: (-$dropdownmenu-border-width);\n      }\n    }\n\n    > li {\n      width: 100%;\n    }\n\n    // [TODO] Cut back specificity\n    //&:not(.js-dropdown-nohover) > .is-dropdown-submenu-parent:hover > &, // why is this line needed? Opening is handled by JS and this causes some ugly flickering when the sub is re-positioned automatically...\n    &.js-dropdown-active {\n      display: block;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group off-canvas\n////\n\n/// Width map of a left/right off-canvas panel.\n/// @type Map\n$offcanvas-sizes: (\n  small: 250px,\n) !default;\n\n/// Height map of a top/bottom off-canvas panel.\n/// @type Map\n$offcanvas-vertical-sizes: (\n  small: 250px,\n) !default;\n\n/// Background color of an off-canvas panel.\n/// @type Color\n$offcanvas-background: $light-gray !default;\n\n/// Box shadow for the off-canvas overlap panel.\n/// @type Shadow\n$offcanvas-shadow: 0 0 10px rgba($black, 0.7) !default;\n\n/// Inner box shadow size for the off-canvas push panel.\n/// @type Number\n$offcanvas-inner-shadow-size: 20px !default;\n\n/// Inner box shadow color for the off-canvas push panel.\n/// @type Color\n$offcanvas-inner-shadow-color: rgba($black, 0.25) !default;\n\n/// Z-index of an off-canvas content overlay.\n/// @type Number\n$offcanvas-overlay-zindex: 11 !default;\n\n/// Z-index of an off-canvas panel with the `push` transition.\n/// @type Number\n$offcanvas-push-zindex: 12 !default;\n\n/// Z-index of an off-canvas panel with the `overlap` transition.\n/// @type Number\n$offcanvas-overlap-zindex: 13 !default;\n\n/// Z-index of an off-canvas panel using the `reveal-for-*` classes or mixin.\n/// @type Number\n$offcanvas-reveal-zindex: 12 !default;\n\n/// Length of the animation on an off-canvas panel.\n/// @type Number\n$offcanvas-transition-length: 0.5s !default;\n\n/// Timing function of the animation on an off-canvas panel.\n/// @type Keyword\n$offcanvas-transition-timing: ease !default;\n\n/// If `true`, a revealed off-canvas will be fixed-position, and scroll with the screen.\n/// @type Bool\n$offcanvas-fixed-reveal: true !default;\n\n/// Background color for the overlay that appears when an off-canvas panel is open.\n/// @type Color\n$offcanvas-exit-background: rgba($white, 0.25) !default;\n\n/// CSS class used for the main content area. The off-canvas mixins use this to target the page content.\n$maincontent-class: 'off-canvas-content' !default;\n\n/// Adds baseline styles for off-canvas. This CSS is required to make the other pieces work.\n@mixin off-canvas-basics {\n\n  /// Transform deprecated size settings into map & show warning\n  @if variable-exists(offcanvas-size) {\n    $offcanvas-sizes: (small: $offcanvas-size, medium: $offcanvas-size) !global;\n    @warn '$offcanvas-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-sizes instead';\n  }\n  @if variable-exists(offcanvas-vertical-size) {\n    $offcanvas-vertical-sizes: (small: $offcanvas-vertical-size, medium: $offcanvas-vertical-size) !global;\n    @warn '$offcanvas-vertical-size is deprecated and not used anymore! Please update your settings and use the map $offcanvas-vertical-sizes instead';\n  }\n\n  // Checks the z-indexes and increase them due to backwards compatibility.\n  // This is necessary because the overlay's z-index is new since v6.4 and may be identical to the user custom settings of the push z-index.\n  @if $offcanvas-push-zindex <= $offcanvas-overlay-zindex { $offcanvas-push-zindex: $offcanvas-overlay-zindex + 1 !global; }\n  @if $offcanvas-overlap-zindex <= $offcanvas-push-zindex { $offcanvas-overlap-zindex: $offcanvas-push-zindex + 1 !global; }\n  @if $offcanvas-reveal-zindex <= $offcanvas-overlay-zindex { $offcanvas-reveal-zindex: $offcanvas-overlay-zindex + 1 !global; }\n\n  // Hides overflow on body when an off-canvas panel is open.\n  .is-off-canvas-open {\n    overflow: hidden;\n  }\n\n  // Off-canvas overlay (generated by JavaScript)\n  .js-off-canvas-overlay {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: $offcanvas-overlay-zindex;\n\n    width: 100%;\n    height: 100%;\n\n    transition: opacity $offcanvas-transition-length $offcanvas-transition-timing, visibility $offcanvas-transition-length $offcanvas-transition-timing;\n\n    background: $offcanvas-exit-background;\n\n    opacity: 0;\n    visibility: hidden;\n\n    overflow: hidden;\n\n    &.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    &.is-closable {\n      cursor: pointer;\n    }\n\n    &.is-overlay-absolute {\n      position: absolute;\n    }\n\n    &.is-overlay-fixed {\n      position: fixed;\n    }\n  }\n}\n\n// Adds basic styles for an off-canvas wrapper.\n@mixin off-canvas-wrapper() {\n  position: relative;\n  overflow: hidden;\n}\n\n/// Adds basic styles for an off-canvas panel.\n@mixin off-canvas-base(\n  $background: $offcanvas-background,\n  $transition: $offcanvas-transition-length $offcanvas-transition-timing,\n  $fixed: true\n) {\n  @include disable-mouse-outline;\n\n  @if $fixed == true {\n    position: fixed;\n  }\n  @else {\n    position: absolute;\n  }\n\n  // Set the off-canvas z-index.\n  z-index: $offcanvas-push-zindex;\n\n  // Increase CSS specificity\n  &.is-transition-push {\n    z-index: $offcanvas-push-zindex;\n  }\n\n  transition: transform $transition;\n  backface-visibility: hidden;\n\n  background: $background;\n\n  // Hide inactive off-canvas within the content that have the same position\n  &.is-closed {\n    visibility: hidden;\n  }\n\n  // Overlap only styles.\n  &.is-transition-overlap {\n    z-index: $offcanvas-overlap-zindex;\n\n    &.is-open {\n      box-shadow: $offcanvas-shadow;\n    }\n  }\n\n  // Sets transform to 0 to show an off-canvas panel.\n  &.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles to position an off-canvas panel to the left/right/top/bottom.\n@mixin off-canvas-position(\n  $position: left,\n  $orientation: horizontal,\n  $sizes: if($orientation == horizontal, $offcanvas-sizes, $offcanvas-vertical-sizes)\n) {\n  @if $position == left {\n    top: 0;\n    left: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == right {\n    top: 0;\n    right: 0;\n    height: 100%;\n    overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        width: $size;\n        transform: translateX($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateX($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateX(-$size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == top {\n    top: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY(-$size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY(-$size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY($size);\n          }\n        }\n      }\n    }\n  }\n  @else if $position == bottom {\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n\n    @each $name, $size in $sizes {\n      @include breakpoint($name) {\n        height: $size;\n        transform: translateY($size);\n      }\n    }\n\n    // Sets the position for nested off-canvas element\n    @at-root .#{$maincontent-class} .off-canvas.position-#{$position} {\n      @each $name, $size in $sizes {\n        @include breakpoint($name) {\n          transform: translateY($size);\n        }\n      }\n      &.is-transition-overlap.is-open {\n        transform: translate(0, 0);\n      }\n    }\n\n    // Sets the open position for the content\n    @at-root .#{$maincontent-class}.is-open-#{$position} {\n      &.has-transition-push {\n        @each $name, $size in $sizes {\n          @include breakpoint($name) {\n            transform: translateY(-$size);\n          }\n        }\n      }\n    }\n  }\n\n  // If $offcanvas-inner-shadow-size is set, add inner box-shadow.\n  // This mimics the off-canvas panel having a lower z-index, without having to have one.\n  @if $offcanvas-inner-shadow-size {\n    &.is-transition-push {\n      @if $position == left {\n        @include inner-side-shadow(right, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == right {\n        @include inner-side-shadow(left, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == top {\n        @include inner-side-shadow(bottom, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n      @else if $position == bottom {\n        @include inner-side-shadow(top, $offcanvas-inner-shadow-size, $offcanvas-inner-shadow-color);\n      }\n    }\n  }\n\n}\n\n/// Sets the styles for the content container.\n@mixin off-canvas-content() {\n  transform: none;\n  backface-visibility: hidden;\n\n  // Bind to has-transition-X class to prevent transition for transform:none\n  &.has-transition-overlap,\n  &.has-transition-push {\n    transition: transform $offcanvas-transition-length $offcanvas-transition-timing;\n  }\n\n  // Transform scope until the element is closed (makes sure transitionend gets triggered)\n  &.has-transition-push {\n    transform: translate(0, 0);\n  }\n\n  // Consider element & content, nested in another content\n  .off-canvas.is-open {\n    transform: translate(0, 0);\n  }\n}\n\n/// Adds styles that reveal an off-canvas panel.\n@mixin off-canvas-reveal(\n  $position: left,\n  $zindex: $offcanvas-reveal-zindex,\n  $content: $maincontent-class,\n  $breakpoint: small\n) {\n  transform: none;\n  z-index: $zindex;\n  transition: none;\n  visibility: visible;\n\n  @if not $offcanvas-fixed-reveal {\n    position: absolute;\n  }\n\n  .close-button {\n    display: none;\n  }\n\n  // Consider revealed element is nested in content\n  .#{$maincontent-class} & {\n    transform: none;\n  }\n\n  @at-root .#{$content}.has-reveal-#{$position} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n\n  // backwards compatibility (prior to v6.4)\n  & ~ .#{$content} {\n    margin-#{$position}: -zf-get-bp-val($offcanvas-sizes, $breakpoint);\n  }\n}\n\n/// Overrides the off-canvas styles\n@mixin in-canvas() {\n  visibility: visible;\n  height: auto;\n  position: static;\n  background: none;\n  width: auto;\n  overflow: visible;\n  transition: none;\n\n  // Increase CSS specificity\n  &.position-left,\n  &.position-right,\n  &.position-top,\n  &.position-bottom {\n    box-shadow: none;\n    transform: none;\n  }\n\n  .close-button {\n    display: none;\n  }\n}\n\n@mixin foundation-off-canvas {\n  @include off-canvas-basics;\n\n  // Off-canvas wrapper\n  .off-canvas-wrapper {\n    @include off-canvas-wrapper;\n  }\n\n  // Off-canvas container\n  .off-canvas {\n    @include off-canvas-base;\n\n    // Force position absolute for nested off-canvas because fixed doesn't work for push transition within the transform scope.\n    // @at-root .#{$maincontent-class} & {\n    //   // NOTE: since overlap transition is currently forced if nested, there's no need to force position absolute until nested push transition is supported.\n    //   position: absolute;\n    // }\n  }\n\n  // Off-canvas container with absolute position\n  .off-canvas-absolute {\n    @include off-canvas-base($fixed: false);\n  }\n\n  // Off-canvas position classes\n  .position-left    { @include off-canvas-position(left,   horizontal); }\n  .position-right   { @include off-canvas-position(right,  horizontal); }\n  .position-top     { @include off-canvas-position(top,    vertical); }\n  .position-bottom  { @include off-canvas-position(bottom, vertical); }\n\n  .off-canvas-content {\n    @include off-canvas-content;\n  }\n\n  // Reveal off-canvas panel on larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .position-left.reveal-for-#{$name} {\n          @include off-canvas-reveal(left, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-right.reveal-for-#{$name} {\n          @include off-canvas-reveal(right, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-top.reveal-for-#{$name} {\n          @include off-canvas-reveal(top, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n\n        .position-bottom.reveal-for-#{$name} {\n          @include off-canvas-reveal(bottom, $offcanvas-reveal-zindex, $maincontent-class, $name);\n        }\n      }\n    }\n  }\n\n  // Move in-canvas for larger screens\n  @each $name, $value in $breakpoint-classes {\n    @if $name != $-zf-zero-breakpoint {\n      @include breakpoint($name) {\n        .off-canvas.in-canvas-for-#{$name} {\n          @include in-canvas;\n        }\n      }\n    }\n  }\n}\n\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n@mixin foundation-sticky {\n  .sticky-container {\n    position: relative;\n  }\n\n  .sticky {\n    position: relative;\n    z-index: 0;\n    transform: translate3d(0, 0, 0);\n  }\n\n  .sticky.is-stuck {\n    position: fixed;\n    z-index: 5;\n    width: 100%;\n\n    &.is-at-top {\n      top: 0;\n    }\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n\n  .sticky.is-anchored {\n    position: relative;\n    right: auto;\n    left: auto;\n\n    &.is-at-bottom {\n      bottom: 0;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group title-bar\n////\n\n/// Background color of a title bar.\n/// @type Color\n$titlebar-background: $black !default;\n\n/// Color of text inside a title bar.\n/// @type Color\n$titlebar-color: $white !default;\n\n/// Padding inside a title bar.\n/// @type Length\n$titlebar-padding: 0.5rem !default;\n\n/// Font weight of text inside a title bar.\n/// @type Weight\n$titlebar-text-font-weight: bold !default;\n\n/// Color of menu icons inside a title bar.\n/// @type Color\n$titlebar-icon-color: $white !default;\n\n/// Color of menu icons inside a title bar on hover.\n/// @type Color\n$titlebar-icon-color-hover: $medium-gray !default;\n\n/// Spacing between the menu icon and text inside a title bar.\n/// @type Length\n$titlebar-icon-spacing: 0.25rem !default;\n\n@mixin foundation-title-bar {\n  .title-bar {\n    padding: $titlebar-padding;\n    background: $titlebar-background;\n    color: $titlebar-color;\n\n    @if $global-flexbox {\n      display: flex;\n      justify-content: flex-start;\n      align-items: center;\n    }\n    @else {\n      @include clearfix;\n    }\n\n    .menu-icon {\n      margin-#{$global-left}: $titlebar-icon-spacing;\n      margin-#{$global-right}: $titlebar-icon-spacing;\n    }\n  }\n\n  @if $global-flexbox {\n    .title-bar-left,\n    .title-bar-right {\n      flex: 1 1 0px; // sass-lint:disable-line zero-unit\n    }\n\n    .title-bar-right {\n      text-align: right;\n    }\n  }\n  @else {\n    .title-bar-left {\n      float: left;\n    }\n\n    .title-bar-right {\n      float: right;\n      text-align: right;\n    }\n  }\n\n  .title-bar-title {\n    display: inline-block;\n    vertical-align: middle;\n    font-weight: $titlebar-text-font-weight;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group top-bar\n////\n\n/// Padding for the top bar.\n/// @type Number\n$topbar-padding: 0.5rem !default;\n\n/// Background color for the top bar. This color also cascades to menus within the top bar.\n/// @type Color\n$topbar-background: $light-gray !default;\n\n/// Background color submenus within the top bar. Usefull if $topbar-background is transparent.\n/// @type Color\n$topbar-submenu-background: $topbar-background !default;\n\n/// Spacing for the top bar title.\n/// @type Number\n$topbar-title-spacing: 0.5rem 1rem 0.5rem 0 !default;\n\n/// Maximum width of `<input>` elements inside the top bar.\n/// @type Number\n$topbar-input-width: 200px !default;\n\n/// Breakpoint at which top bar switches from mobile to desktop view.\n/// @type Breakpoint\n$topbar-unstack-breakpoint: medium !default;\n\n/// Adds styles for a top bar container.\n@mixin top-bar-container {\n  @if $global-flexbox {\n    display: flex;\n    flex-wrap: nowrap;\n    justify-content: space-between;\n    align-items: center;\n  }\n  @else {\n    @include clearfix;\n  }\n\n  padding: $topbar-padding;\n\n  &,\n  ul {\n    background-color: $topbar-background;\n  }\n\n  // Check if $topbar-background is differnt from $topbar-background-submenu\n  @if ($topbar-background != $topbar-submenu-background) {\n    ul ul {\n      background-color: $topbar-submenu-background;\n    }\n  }\n\n  // Restrain width of inputs by default to make them easier to arrange\n  input {\n    max-width: $topbar-input-width;\n    margin-#{$global-right}: 1rem;\n  }\n\n  // The above styles shouldn't apply to input group fields\n  .input-group-field {\n    width: 100%;\n    margin-#{$global-right}: 0;\n  }\n\n  input.button { // sass-lint:disable-line no-qualifying-elements\n    width: auto;\n  }\n}\n\n/// Makes sections of a top bar stack on top of each other.\n@mixin top-bar-stacked {\n  @if $global-flexbox {\n    flex-wrap: wrap;\n\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 100%;\n      max-width: 100%;\n    }\n  }\n  @else {\n    // Sub-sections\n    .top-bar-left,\n    .top-bar-right {\n      width: 100%;\n    }\n  }\n}\n\n/// Undoes the CSS applied by the `top-bar-stacked()` mixin.\n@mixin top-bar-unstack {\n  @if $global-flexbox {\n    flex-wrap: nowrap;\n\n    .top-bar-left {\n      flex: 1 1 auto;\n      margin-right: auto;\n    }\n\n    .top-bar-right {\n      flex: 0 1 auto;\n      margin-left: auto;\n    }\n  }\n  @else {\n    .top-bar-left,\n    .top-bar-right {\n      width: auto;\n    }\n  }\n}\n\n@mixin foundation-top-bar {\n  // Top bar container\n  .top-bar {\n    @include top-bar-container;\n\n    // Stack on small screens by default\n    @include top-bar-stacked;\n\n    @include breakpoint($topbar-unstack-breakpoint) {\n      @include top-bar-unstack;\n    }\n\n    // Generate classes for stacking on each screen size (defined in $breakpoint-classes)\n    @each $size in $breakpoint-classes {\n      @if $size != $-zf-zero-breakpoint {\n        &.stacked-for-#{$size} {\n          @include breakpoint($size down) {\n            @include top-bar-stacked;\n          }\n        }\n      }\n    }\n  }\n\n  // Sub-sections\n  @if $global-flexbox {\n    .top-bar-title {\n      flex: 0 0 auto;\n      margin: $topbar-title-spacing;\n    }\n\n    .top-bar-left,\n    .top-bar-right {\n      flex: 0 0 auto;\n    }\n  }\n  @else {\n    .top-bar-title {\n      display: inline-block;\n      float: left;\n      padding: $topbar-title-spacing;\n\n      .menu-icon {\n        bottom: 2px;\n      }\n    }\n\n    .top-bar-left {\n      float: left;\n    }\n\n    .top-bar-right {\n      float: right;\n    }\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group float\n////\n\n@mixin foundation-float-classes {\n  .float-left {\n    float: left !important;\n  }\n\n  .float-right {\n    float: right !important;\n  }\n\n  .float-center {\n    display: block;\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .clearfix {\n    @include clearfix;\n  }\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n////\n/// @group Flexbox Utilities\n////\n//\n/// Default value for the count of source ordering`\n/// @type Number\n$flex-source-ordering-count: 6 !default;\n\n/// Quickly disable/enable Responsive breakpoints for Vanilla Flex Helpers.\n/// @type Boolean\n$flexbox-responsive-breakpoints: true !default;\n\n@mixin flex-helpers {\n  .flex-container {\n    @include flex;\n  }\n\n  .flex-child-auto {\n    flex: 1 1 auto;\n  }\n\n  .flex-child-grow {\n    flex: 1 0 auto;\n  }\n\n  .flex-child-shrink {\n    flex: 0 1 auto;\n  }\n\n  @each $dir, $prop in $-zf-flex-direction {\n    .flex-dir-#{$dir} {\n      @include flex-direction($prop);\n    }\n  }\n\n  @if ($flexbox-responsive-breakpoints) {\n    // Loop through Responsive Breakpoints\n    @each $size in $breakpoint-classes {\n      @include breakpoint($size) {\n        @if $size != $-zf-zero-breakpoint {\n          .#{$size}-flex-container {\n            @include flex;\n          }\n\n          .#{$size}-flex-child-auto {\n            flex: 1 1 auto;\n          }\n\n          .#{$size}-flex-child-grow {\n            flex: 1 0 auto;\n          }\n\n          .#{$size}-flex-child-shrink {\n            flex: 0 1 auto;\n          }\n\n          @each $dir, $prop in $-zf-flex-direction {\n            .#{$size}-flex-dir-#{$dir} {\n              @include flex-direction($prop);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\n@mixin foundation-flex-classes {\n  // Horizontal alignment using justify-content\n  @each $hdir, $prop in $-zf-flex-justify {\n    .align-#{$hdir} {\n      @include flex-align($x: $hdir);\n    }\n  }\n  \n  // Horizontal alignment Specifically for Vertical Menu\n  @each $hdir, $prop in map-remove($-zf-flex-justify, 'justify', 'spaced') {\n    .align-#{$hdir} {\n      &.vertical {\n        &.menu > li > a {\n          @include flex-align($x: $hdir);\n        }\n      }\n    }\n  }\n\n  // Vertical alignment using align-items and align-self\n  @each $vdir, $prop in $-zf-flex-align {\n    .align-#{$vdir} {\n      @include flex-align($y: $vdir);\n    }\n\n    .align-self-#{$vdir} {\n      @include flex-align-self($y: $vdir);\n    }\n  }\n\n  // Central alignment of content\n  .align-center-middle {\n    @include flex-align($x: center, $y: middle);\n    align-content: center;\n  }\n\n  // Source ordering\n  @include -zf-each-breakpoint {\n    @for $i from 1 through $flex-source-ordering-count {\n      .#{$-zf-size}-order-#{$i} {\n        @include flex-order($i);\n      }\n    }\n  }\n\n  // Vanilla Flexbox Helpers\n  @include flex-helpers;\n}\n","@function -zf-flex-justify($text-direction) {\n  $-zf-flex-justify: (\n    'left': if($text-direction == rtl, flex-end, flex-start),\n    'right': if($text-direction == rtl, flex-start, flex-end),\n    'center': center,\n    'justify': space-between,\n    'spaced': space-around,\n  );\n\n  @return $-zf-flex-justify;\n}\n\n\n$-zf-flex-align: (\n  'top': flex-start,\n  'bottom': flex-end,\n  'middle': center,\n  'stretch': stretch,\n);\n\n$-zf-flex-direction: (\n  'row': row,\n  'row-reverse': row-reverse,\n  'column': column,\n  'column-reverse': column-reverse,\n);\n\n/// Enables flexbox by adding `display: flex` to the element.\n@mixin flex {\n  display: flex;\n}\n\n/// Horizontally or vertically aligns the items within a flex container.\n///\n/// @param {Keyword} $x [null] - Horizontal alignment to use. Can be `left`, `right`, `center`, `justify`, or `spaced`. Or, set it to `null` (the default) to not set horizontal alignment.\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align($x: null, $y: null) {\n  @if $x {\n    @if map-has-key($-zf-flex-justify, $x) {\n      $x: map-get($-zf-flex-justify, $x);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$x} is not a valid value for horizontal alignment. Use left, right, center, justify, or spaced.';\n    }\n  }\n\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-row-align(): #{$y} is not a valid value for vertical alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  justify-content: $x;\n  align-items: $y;\n}\n\n/// Vertically align a single column within a flex row. Apply this mixin to a flex column.\n///\n/// @param {Keyword} $y [null] - Vertical alignment to use. Can be `top`, `bottom`, `middle`, or `stretch`. Or, set it to `null` (the default) to not set vertical alignment.\n@mixin flex-align-self($y: null) {\n  @if $y {\n    @if map-has-key($-zf-flex-align, $y) {\n      $y: map-get($-zf-flex-align, $y);\n    }\n    @else {\n      @warn 'flex-grid-column-align(): #{$y} is not a valid value for alignment. Use top, bottom, middle, or stretch.';\n    }\n  }\n\n  align-self: $y;\n}\n\n/// Changes the source order of a flex child. Children with lower numbers appear first in the layout.\n/// @param {Number} $order [0] - Order number to apply.\n@mixin flex-order($order: 0) {\n  order: $order;\n}\n\n/// Change flex-direction\n/// @param {Keyword} $direction [row] - Flex direction to use. Can be\n///   - row (default): same as text direction\n///   - row-reverse: opposite to text direction\n///   - column: same as row but top to bottom\n///   - column-reverse: same as row-reverse top to bottom\n@mixin flex-direction($direction: row) {\n  flex-direction: $direction;\n}\n","// Foundation for Sites\n// https://get.foundation\n// Licensed under MIT Open Source\n\n/// Hide an element by default, only displaying it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for($size) {\n  $size: map-get($breakpoints, $size);\n  // Max value is 0.2px under the next breakpoint (0.02 / 16 = 0.00125).\n  // Use a precision under 1px to support browser zoom, but not to low to avoid rounding.\n  // See https://github.com/foundation/foundation-sites/issues/11313\n  $size: -zf-bp-to-em($size) - 0.00125;\n\n  @include breakpoint($size down) {\n    display: none !important;\n  }\n}\n\n/// Hide an element by default, only displaying it within a certain breakpoint.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin show-for-only($size) {\n  $lower-bound-size: map-get($breakpoints, $size);\n  $upper-bound-size: -zf-map-next($breakpoints, $size);\n\n  // more often than not this will be correct, just one time round the loop it won't so set in scope here\n  $lower-bound: -zf-bp-to-em($lower-bound-size) - 0.00125;\n  // test actual lower-bound-size, if 0 set it to 0em\n  @if strip-unit($lower-bound-size) == 0 {\n    $lower-bound: -zf-bp-to-em($lower-bound-size);\n  }\n\n  @if $upper-bound-size == null {\n    @media screen and (max-width: $lower-bound) {\n      display: none !important;\n    }\n  }\n  @else {\n    $upper-bound: -zf-bp-to-em($upper-bound-size);\n\n    @media screen and (max-width: $lower-bound), screen and (min-width: $upper-bound) {\n      display: none !important;\n    }\n  }\n}\n\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for($size) {\n  @include breakpoint($size) {\n    display: none !important;\n  }\n}\n\n/// Show an element by default, and hide it above a certain screen size.\n/// @param {Keyword} $size - Breakpoint to use. **Must be a breakpoint defined in `$breakpoints`.**\n@mixin hide-for-only($size) {\n  @include breakpoint($size only) {\n    display: none !important;\n  }\n}\n\n@mixin foundation-visibility-classes {\n  // Basic hiding classes\n  .hide {\n    display: none !important;\n  }\n\n  .invisible {\n    visibility: hidden;\n  }\n  .visible {\n    visibility: visible;\n  }\n\n  // Responsive visibility classes\n  @each $size in $breakpoint-classes {\n    @if $size != $-zf-zero-breakpoint {\n      .hide-for-#{$size} {\n        @include hide-for($size);\n      }\n\n      .show-for-#{$size} {\n        @include show-for($size);\n      }\n    }\n\n    .hide-for-#{$size}-only {\n      @include hide-for-only($size);\n    }\n\n    .show-for-#{$size}-only {\n      @include show-for-only($size);\n    }\n  }\n\n  // Screen reader visibility classes\n  // Need a \"hide-for-sr\" class? Add aria-hidden='true' to the element\n  .show-for-sr,\n  .show-on-focus {\n    @include element-invisible;\n  }\n\n  // Only display the element when it's focused\n  .show-on-focus {\n    &:active,\n    &:focus {\n      @include element-invisible-off;\n    }\n  }\n\n  // Landscape and portrait visibility\n  .show-for-landscape,\n  .hide-for-portrait {\n    display: block !important;\n\n    @include breakpoint(landscape) {\n      display: block !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: none !important;\n    }\n  }\n\n  .hide-for-landscape,\n  .show-for-portrait {\n    display: none !important;\n\n    @include breakpoint(landscape) {\n      display: none !important;\n    }\n\n    @include breakpoint(portrait) {\n      display: block !important;\n    }\n  }\n\n  // Dark Mode Visibility\n  .show-for-dark-mode {\n    display: none;\n  }\n  .hide-for-dark-mode {\n    display: block;\n  }\n  @media screen and (prefers-color-scheme: dark) {\n    .show-for-dark-mode {\n      display: block !important;\n    }\n    .hide-for-dark-mode {\n      display: none !important;\n    }\n  }\n\n  // IE10+ Visibility\n  .show-for-ie {\n    display: none;\n  }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .show-for-ie {\n      display: block !important;\n    }\n    .hide-for-ie {\n      display: none !important;\n    }\n  }\n\n  // Sticky Visibility\n  .show-for-sticky {\n    display: none;\n  }\n  .is-stuck .show-for-sticky {\n    display: block;\n  }\n  .is-stuck .hide-for-sticky {\n    display: none;\n  }\n}\n"]}
\ No newline at end of file
index bf9d11bd3f036d9f68ef63d1736a54c39947c68a..3b451f450cc5aa33a5deb2c4ed1c32be48ec96fd 100644 (file)
@@ -705,7 +705,7 @@ function parseStyleToObject(str) {
   return styleObject;
 }
 
-var FOUNDATION_VERSION = '6.7.4'; // Global Foundation object
+var FOUNDATION_VERSION = '6.7.5'; // Global Foundation object
 // This is attached to the window, or used as a module for AMD/Browserify
 
 var Foundation = {
@@ -1594,9 +1594,10 @@ var Nest = {
         $item.addClass(hasSubClass);
 
         if (applyAria) {
-          $item.children('a:first').attr({
+          var firstItem = $item.children('a:first');
+          firstItem.attr({
             'aria-haspopup': true,
-            'aria-label': $item.children('a:first').text()
+            'aria-label': firstItem.attr('aria-label') || firstItem.text()
           }); // Note:  Drilldowns behave differently in how they hide, and so need
           // additional attributes.  We should look if this possibly over-generalized
           // utility (Nest) is appropriate when we rework menus in 6.4
@@ -2511,6 +2512,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': '',
         'aria-invalid': true
       });
+
+      if ($formError.filter(':visible').length) {
+        this.addA11yErrorDescribe($el, $formError);
+      }
     }
     /**
      * Adds [for] and [role=alert] attributes to all form error targetting $el,
@@ -2523,19 +2528,11 @@ var Abide = /*#__PURE__*/function (_Plugin) {
     value: function addA11yAttributes($el) {
       var $errors = this.findFormError($el);
       var $labels = $errors.filter('label');
-      var $error = $errors.first();
-      if (!$errors.length) return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      if (!$errors.length) return;
+      var $error = $errors.filter(':visible').first();
 
-      if (typeof $el.attr('aria-describedby') === 'undefined') {
-        // Get the first error ID or create one
-        var errorId = $error.attr('id');
-
-        if (typeof errorId === 'undefined') {
-          errorId = GetYoDigits(6, 'abide-error');
-          $error.attr('id', errorId);
-        }
-
-        $el.attr('aria-describedby', errorId);
+      if ($error.length) {
+        this.addA11yErrorDescribe($el, $error);
       }
 
       if ($labels.filter('[for]').length < $labels.length) {
@@ -2560,6 +2557,21 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         if (typeof $label.attr('role') === 'undefined') $label.attr('role', 'alert');
       }).end();
     }
+  }, {
+    key: "addA11yErrorDescribe",
+    value: function addA11yErrorDescribe($el, $error) {
+      if (typeof $el.attr('aria-describedby') !== 'undefined') return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      // Get the first error ID or create one
+
+      var errorId = $error.attr('id');
+
+      if (typeof errorId === 'undefined') {
+        errorId = GetYoDigits(6, 'abide-error');
+        $error.attr('id', errorId);
+      }
+
+      $el.attr('aria-describedby', errorId).data('abide-describedby', true);
+    }
     /**
      * Adds [aria-live] attribute to the given global form error $el.
      * @param {Object} $el - jQuery object to add the attribute to
@@ -2653,6 +2665,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': null,
         'aria-invalid': null
       });
+
+      if ($el.data('abide-describedby')) {
+        $el.removeAttr('aria-describedby').removeData('abide-describedby');
+      }
     }
     /**
      * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.
@@ -4317,6 +4333,7 @@ var Drilldown = /*#__PURE__*/function (_Plugin) {
 
       var $elem = this.$element.find('.is-drilldown-submenu.is-active');
       $elem.addClass('is-closing');
+      $elem.parent().closest('ul').removeClass('invisible');
 
       if (this.options.autoHeight) {
         var calcHeight = $elem.parent().closest('ul').data('calcHeight');
@@ -10161,7 +10178,7 @@ var Slider = /*#__PURE__*/function (_Plugin) {
       $handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e) {
         var _$handle = $(this),
             idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,
-            oldValue = parseFloat(_this.inputs.eq(idx).val()),
+            oldValue = parseFloat($handle.attr('aria-valuenow')),
             newValue; // handle keyboard event with keyboard util
 
 
index 8cc5ed3646c1ef8c0d320b979c4165d45f84a02b..afdce4c6ec732a6232d5b09fe759bbbad11ea230 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"foundation.cjs.js","sources":["../../js/foundation.core.utils.js","../../js/foundation.util.mediaQuery.js","../../js/foundation.core.js","../../js/foundation.util.box.js","../../js/foundation.util.imageLoader.js","../../js/foundation.util.keyboard.js","../../js/foundation.util.motion.js","../../js/foundation.util.nest.js","../../js/foundation.util.timer.js","../../js/foundation.util.touch.js","../../js/foundation.util.triggers.js","../../js/foundation.core.plugin.js","../../js/foundation.abide.js","../../js/foundation.accordion.js","../../js/foundation.accordionMenu.js","../../js/foundation.drilldown.js","../../js/foundation.positionable.js","../../js/foundation.dropdown.js","../../js/foundation.dropdownMenu.js","../../js/foundation.equalizer.js","../../js/foundation.interchange.js","../../js/foundation.smoothScroll.js","../../js/foundation.magellan.js","../../js/foundation.offcanvas.js","../../js/foundation.orbit.js","../../js/foundation.responsiveMenu.js","../../js/foundation.responsiveToggle.js","../../js/foundation.reveal.js","../../js/foundation.slider.js","../../js/foundation.sticky.js","../../js/foundation.tabs.js","../../js/foundation.toggler.js","../../js/foundation.tooltip.js","../../js/foundation.responsiveAccordionTabs.js","../../js/entries/foundation.js"],"sourcesContent":["import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.4';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n"],"names":["rtl","$","attr","GetYoDigits","length","namespace","str","chars","charsLength","i","Math","floor","random","RegExpEscape","replace","transitionend","$elem","transitions","elem","document","createElement","end","transition","style","setTimeout","triggerHandler","onLoad","handler","didLoad","readyState","eventType","cb","one","window","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","callback","bind","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","script","getElementsByTagName","info","type","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","MediaQuery","queries","current","_init","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","push","name","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","trim","split","filter","p","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","TypeError","matched","on","newSize","currentSize","trigger","styleObject","slice","reduce","ret","param","val","decodeURIComponent","Array","isArray","FOUNDATION_VERSION","Foundation","version","_plugins","_uuids","plugin","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","data","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_this","fns","plgs","forEach","foundation","object","Object","keys","err","console","error","reflow","find","addBack","$el","opts","option","opt","map","el","parseValue","er","getFnName","addToJquery","method","$noJS","removeClass","args","prototype","call","arguments","plugClass","apply","ReferenceError","fn","util","throttle","func","delay","timer","context","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","nextTime","max","clearTimeout","performance","start","Function","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","isNaN","parseFloat","Box","ImNotTouchingYou","OverlapArea","GetDimensions","GetExplicitOffsets","element","parent","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","height","offset","top","left","windowDims","min","sqrt","rect","getBoundingClientRect","parRect","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","anchor","position","alignment","vOffset","hOffset","isOverflow","$eleDims","$anchorDims","topVal","leftVal","onImagesLoaded","images","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","off","src","keyCodes","commands","findFocusable","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","which","keyCode","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","Keyboard","getKeyCodes","handleKey","component","functions","commandList","cmds","command","warn","zfIsKeyHandled","ltr","Rtl","extend","returnValue","handled","unhandled","register","componentName","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","preventDefault","focus","releaseFocus","kcs","k","kc","initClasses","activeClasses","Motion","animateIn","animation","animate","animateOut","Move","duration","anim","prog","move","ts","isIn","initClass","activeClass","reset","addClass","show","offsetWidth","finish","hide","transitionDuration","Nest","Feather","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","$sub","children","Burn","Timer","options","nameSpace","remain","isPaused","restart","infinite","pause","Touch","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","e","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","touches","pageX","dx","dir","abs","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","init","SpotSwipe","enabled","documentElement","special","swipe","setup","tap","noop","setupSpotSwipe","setupTouchHandler","addTouch","handleTouch","changedTouches","first","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","stopPropagation","fadeOut","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","not","addClosemeListener","yetiBoxes","plugNames","listeners","join","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","Plugin","_setup","getPluginName","_destroy","obj","Abide","defaults","isEnabled","formnovalidate","$inputs","merge","$submits","$globalErrors","a11yAttributes","input","addA11yAttributes","addGlobalErrorA11yAttributes","_events","resetForm","validateForm","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","isGood","checked","failedValidators","$error","siblings","formErrorSelector","add","v","$label","$els","labels","findLabel","$formError","findFormError","labelErrorClass","formErrorClass","inputErrorClass","$errors","$labels","errorId","elemId","label","a11yErrorLevel","groupName","findRadioLabels","$formErrors","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","validateRadio","validateCheckbox","validateText","required","validators","equalTo","goodToGo","message","dependentElements","addErrorClasses","removeErrorClasses","acc","checkboxGroupName","initialized","noError","pattern","inputText","valid","patterns","RegExp","$group","minRequired","clear","$form","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","Accordion","_isInitializing","$tabs","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","location","hash","$anchor","$link","isOwnAnchor","hasClass","_closeAllTabs","deepLinkSmudge","scrollTop","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","$a","multiExpand","previous","last","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","allowAllClosed","_closeTab","$activeContents","targetContentId","slideDown","slideSpeed","slideUp","$activeTabs","stop","AccordionMenu","multiOpen","$menuLinks","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Drilldown","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","$back","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","_show","closeOnClick","$body","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","unwrap","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","Positionable","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","$parent","allowOverlap","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","allowBottomOverlap","_reposition","Dropdown","$id","$anchors","_setCurrentAnchor","parentClass","$currentAnchor","match","horizontalPosition","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","_addBodyHandler","DropdownMenu","subs","verticalClass","rightClass","changed","parClass","handleClickFn","hasSub","hasClicked","clickOpen","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","_isVertical","_isRtl","_removeBodyHandler","isItself","$sibs","oldClass","$parentLi","$toClose","somethingToClose","$activeItem","Equalizer","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","imgs","tooSmall","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","groupsILength","lenJ","Interchange","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","path","types","SPECIAL_QUERIES","rulesList","nodeName","response","html","SmoothScroll","_linkClickListener","_handleLinkClick","arrival","_inTransition","scrollToLoc","loc","$loc","round","threshold","Magellan","calcPoints","$targets","$links","$active","points","winHeight","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","targetPoint","deepLinking","_updateActive","onLoadListener","_deepLinkScroll","newScrollPos","isScrollingUp","activeIdx","visibleLinks","$oldActive","activeHash","isNewActive","isNewHash","pathname","search","OffCanvas","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnRegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","hasReveal","_","absoluteTopVal","stickyData","_addContentClasses","lastY","pageY","delta","_canScroll","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","Orbit","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","timerDelay","changeSlide","_setWrapperHeight","temp","counter","pauseOnHover","navButtons","$controls","nextClass","prevClass","$slide","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","$oldBullet","$othersBullets","$newBullet","activeStateDescriptor","spans","spanCountInOthersBullets","toArray","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","MenuPlugins","dropdown","cssClass","drilldown","accordion","ResponsiveMenu","currentMq","currentPlugin","rulesTree","ruleSize","rulePlugin","isEmptyObject","_checkMediaQueries","matchedMq","destroy","ResponsiveToggle","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","Reveal","cached","mq","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","afterAnimation","_addGlobalClasses","focusableElements","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","hideDelay","_removeGlobalClasses","_enableScroll","resetOnClose","urlWithoutHash","title","Slider","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","handlePos","initialStart","moveTime","changedDelay","initVal","initialEnd","direction","eventOffset","barDim","windowScroll","scrollLeft","elemOffset","eventFromBar","barXY","offsetPct","_value","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","clickSelect","draggable","_$handle","oldValue","newValue","decrease","increase","decreaseFast","increaseFast","invertVertical","frac","num","clickPos","log","Sticky","$container","wasWrapped","container","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","pts","breaks","place","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","Tabs","$tabTitles","linkClass","linkActiveClass","matchHeight","_setHeight","anchorNoHash","selectTab","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panelClass","panel","Toggler","toggler","$trigger","controls","containsId","_updateARIA","undefined","Tooltip","isClick","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","$template","showOn","fadeIn","fadeInDuration","fadeOutDuration","isFocus","disableForTouch","touchCloseText","tabs","ResponsiveAccordionTabs","storezfData","currentRule","_getAllOptions","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","_changedZfMediaQueryHandler","_handleMarkup","toSet","fromString","$panels","tabsTitle","tabsPanel","$liHeads","$liHeadsA","display","visibility","$tabsContent","$placeholder","tempValue","CoreUtils"],"mappings":"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,aAAKuf,KAAL;AACD,OAHD,MAGK;AACH,aAAKD,IAAL;AACD;AACF;AAED;AACF;AACA;AACA;;;;WACE,oBAAW;AACT,WAAKvf,QAAL,CAAcuI,GAAd,CAAkB,aAAlB,EAAiCuE,IAAjC;AACA,WAAKkY,QAAL,CAAczc,GAAd,CAAkB,cAAlB;AACArR,MAAAA,CAAC,CAACkB,QAAQ,CAACyO,IAAV,CAAD,CAAiB0B,GAAjB,CAAqB,mCAArB;AAED;;;;EAxToBmb;;AA2TvBoB,QAAQ,CAACvP,QAAT,GAAoB;AAClB;AACF;AACA;AACA;AACA;AACA;AACE2P,EAAAA,WAAW,EAAE,IAPK;;AAQlB;AACF;AACA;AACA;AACA;AACA;AACEY,EAAAA,UAAU,EAAE,GAdM;;AAelB;AACF;AACA;AACA;AACA;AACA;AACEJ,EAAAA,KAAK,EAAE,KArBW;;AAsBlB;AACF;AACA;AACA;AACA;AACA;AACEK,EAAAA,SAAS,EAAE,KA5BO;;AA6BlB;AACF;AACA;AACA;AACA;AACA;AACEze,EAAAA,OAAO,EAAE,CAnCS;;AAoClB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,OAAO,EAAE,CA1CS;;AA2ClB;AACF;AACA;AACA;AACA;AACA;AACEH,EAAAA,QAAQ,EAAE,MAjDQ;;AAkDlB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,SAAS,EAAE,MAxDO;;AAyDlB;AACF;AACA;AACA;AACA;AACA;AACEgd,EAAAA,YAAY,EAAE,KA/DI;;AAgElB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEO,EAAAA,kBAAkB,EAAE,IAxEF;;AAyElB;AACF;AACA;AACA;AACA;AACA;AACE9Z,EAAAA,SAAS,EAAE,KA/EO;;AAgFlB;AACF;AACA;AACA;AACA;AACA;AACE0X,EAAAA,SAAS,EAAE,KAtFO;;AAuFlB;AACF;AACA;AACA;AACA;AACA;AACEjB,EAAAA,YAAY,EAAE,KA7FI;;AA8FlB;AACF;AACA;AACA;AACA;AACA;AACEkE,EAAAA,WAAW,EAAE;AApGK,CAApB;;AClUA;AACA;AACA;AA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"}
\ No newline at end of file
+{"version":3,"file":"foundation.cjs.js","sources":["../../js/foundation.core.utils.js","../../js/foundation.util.mediaQuery.js","../../js/foundation.core.js","../../js/foundation.util.box.js","../../js/foundation.util.imageLoader.js","../../js/foundation.util.keyboard.js","../../js/foundation.util.motion.js","../../js/foundation.util.nest.js","../../js/foundation.util.timer.js","../../js/foundation.util.touch.js","../../js/foundation.util.triggers.js","../../js/foundation.core.plugin.js","../../js/foundation.abide.js","../../js/foundation.accordion.js","../../js/foundation.accordionMenu.js","../../js/foundation.drilldown.js","../../js/foundation.positionable.js","../../js/foundation.dropdown.js","../../js/foundation.dropdownMenu.js","../../js/foundation.equalizer.js","../../js/foundation.interchange.js","../../js/foundation.smoothScroll.js","../../js/foundation.magellan.js","../../js/foundation.offcanvas.js","../../js/foundation.orbit.js","../../js/foundation.responsiveMenu.js","../../js/foundation.responsiveToggle.js","../../js/foundation.reveal.js","../../js/foundation.slider.js","../../js/foundation.sticky.js","../../js/foundation.tabs.js","../../js/foundation.toggler.js","../../js/foundation.tooltip.js","../../js/foundation.responsiveAccordionTabs.js","../../js/entries/foundation.js"],"sourcesContent":["import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          const firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n\n    if ($formError.filter(':visible').length) {\n      this.addA11yErrorDescribe($el, $formError);\n    }\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    if (!$errors.length) return;\n\n    let $error = $errors.filter(':visible').first();\n    if ($error.length) {\n      this.addA11yErrorDescribe($el, $error);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  addA11yErrorDescribe($el, $error) {\n    if (typeof $el.attr('aria-describedby') !== 'undefined') return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    // Get the first error ID or create one\n    let errorId = $error.attr('id');\n    if (typeof errorId === 'undefined') {\n      errorId = GetYoDigits(6, 'abide-error');\n      $error.attr('id', errorId);\n    }\n\n    $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n    if ($el.data('abide-describedby')) {\n      $el.removeAttr('aria-describedby').removeData('abide-describedby');\n    }\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length) {\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n    $elem.parent().closest('ul').removeClass('invisible');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat($handle.attr('aria-valuenow')),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n"],"names":["rtl","$","attr","GetYoDigits","length","namespace","str","chars","charsLength","i","Math","floor","random","RegExpEscape","replace","transitionend","$elem","transitions","elem","document","createElement","end","transition","style","setTimeout","triggerHandler","onLoad","handler","didLoad","readyState","eventType","cb","one","window","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","callback","bind","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","script","getElementsByTagName","info","type","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","MediaQuery","queries","current","_init","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","push","name","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","trim","split","filter","p","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","TypeError","matched","on","newSize","currentSize","trigger","styleObject","slice","reduce","ret","param","val","decodeURIComponent","Array","isArray","FOUNDATION_VERSION","Foundation","version","_plugins","_uuids","plugin","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","data","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_this","fns","plgs","forEach","foundation","object","Object","keys","err","console","error","reflow","find","addBack","$el","opts","option","opt","map","el","parseValue","er","getFnName","addToJquery","method","$noJS","removeClass","args","prototype","call","arguments","plugClass","apply","ReferenceError","fn","util","throttle","func","delay","timer","context","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","nextTime","max","clearTimeout","performance","start","Function","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","isNaN","parseFloat","Box","ImNotTouchingYou","OverlapArea","GetDimensions","GetExplicitOffsets","element","parent","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","height","offset","top","left","windowDims","min","sqrt","rect","getBoundingClientRect","parRect","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","anchor","position","alignment","vOffset","hOffset","isOverflow","$eleDims","$anchorDims","topVal","leftVal","onImagesLoaded","images","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","off","src","keyCodes","commands","findFocusable","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","which","keyCode","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","Keyboard","getKeyCodes","handleKey","component","functions","commandList","cmds","command","warn","zfIsKeyHandled","ltr","Rtl","extend","returnValue","handled","unhandled","register","componentName","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","preventDefault","focus","releaseFocus","kcs","k","kc","initClasses","activeClasses","Motion","animateIn","animation","animate","animateOut","Move","duration","anim","prog","move","ts","isIn","initClass","activeClass","reset","addClass","show","offsetWidth","finish","hide","transitionDuration","Nest","Feather","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","$sub","children","firstItem","Burn","Timer","options","nameSpace","remain","isPaused","restart","infinite","pause","Touch","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","e","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","touches","pageX","dx","dir","abs","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","init","SpotSwipe","enabled","documentElement","special","swipe","setup","tap","noop","setupSpotSwipe","setupTouchHandler","addTouch","handleTouch","changedTouches","first","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","stopPropagation","fadeOut","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","not","addClosemeListener","yetiBoxes","plugNames","listeners","join","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","Plugin","_setup","getPluginName","_destroy","obj","Abide","defaults","isEnabled","formnovalidate","$inputs","merge","$submits","$globalErrors","a11yAttributes","input","addA11yAttributes","addGlobalErrorA11yAttributes","_events","resetForm","validateForm","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","isGood","checked","failedValidators","$error","siblings","formErrorSelector","add","v","$label","$els","labels","findLabel","$formError","findFormError","labelErrorClass","formErrorClass","inputErrorClass","addA11yErrorDescribe","$errors","$labels","elemId","label","errorId","a11yErrorLevel","groupName","findRadioLabels","$formErrors","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","validateRadio","validateCheckbox","validateText","required","validators","equalTo","goodToGo","message","dependentElements","addErrorClasses","removeErrorClasses","acc","checkboxGroupName","initialized","noError","pattern","inputText","valid","patterns","RegExp","$group","minRequired","clear","$form","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","Accordion","_isInitializing","$tabs","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","location","hash","$anchor","$link","isOwnAnchor","hasClass","_closeAllTabs","deepLinkSmudge","scrollTop","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","$a","multiExpand","previous","last","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","allowAllClosed","_closeTab","$activeContents","targetContentId","slideDown","slideSpeed","slideUp","$activeTabs","stop","AccordionMenu","multiOpen","$menuLinks","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Drilldown","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","$back","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","_show","closeOnClick","$body","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","unwrap","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","Positionable","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","$parent","allowOverlap","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","allowBottomOverlap","_reposition","Dropdown","$id","$anchors","_setCurrentAnchor","parentClass","$currentAnchor","match","horizontalPosition","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","_addBodyHandler","DropdownMenu","subs","verticalClass","rightClass","changed","parClass","handleClickFn","hasSub","hasClicked","clickOpen","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","_isVertical","_isRtl","_removeBodyHandler","isItself","$sibs","oldClass","$parentLi","$toClose","somethingToClose","$activeItem","Equalizer","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","imgs","tooSmall","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","groupsILength","lenJ","Interchange","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","path","types","SPECIAL_QUERIES","rulesList","nodeName","response","html","SmoothScroll","_linkClickListener","_handleLinkClick","arrival","_inTransition","scrollToLoc","loc","$loc","round","threshold","Magellan","calcPoints","$targets","$links","$active","points","winHeight","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","targetPoint","deepLinking","_updateActive","onLoadListener","_deepLinkScroll","newScrollPos","isScrollingUp","activeIdx","visibleLinks","$oldActive","activeHash","isNewActive","isNewHash","pathname","search","OffCanvas","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnRegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","hasReveal","_","absoluteTopVal","stickyData","_addContentClasses","lastY","pageY","delta","_canScroll","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","Orbit","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","timerDelay","changeSlide","_setWrapperHeight","temp","counter","pauseOnHover","navButtons","$controls","nextClass","prevClass","$slide","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","$oldBullet","$othersBullets","$newBullet","activeStateDescriptor","spans","spanCountInOthersBullets","toArray","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","MenuPlugins","dropdown","cssClass","drilldown","accordion","ResponsiveMenu","currentMq","currentPlugin","rulesTree","ruleSize","rulePlugin","isEmptyObject","_checkMediaQueries","matchedMq","destroy","ResponsiveToggle","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","Reveal","cached","mq","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","afterAnimation","_addGlobalClasses","focusableElements","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","hideDelay","_removeGlobalClasses","_enableScroll","resetOnClose","urlWithoutHash","title","Slider","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","handlePos","initialStart","moveTime","changedDelay","initVal","initialEnd","direction","eventOffset","barDim","windowScroll","scrollLeft","elemOffset","eventFromBar","barXY","offsetPct","_value","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","clickSelect","draggable","_$handle","oldValue","newValue","decrease","increase","decreaseFast","increaseFast","invertVertical","frac","num","clickPos","log","Sticky","$container","wasWrapped","container","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","pts","breaks","place","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","Tabs","$tabTitles","linkClass","linkActiveClass","matchHeight","_setHeight","anchorNoHash","selectTab","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panelClass","panel","Toggler","toggler","$trigger","controls","containsId","_updateARIA","undefined","Tooltip","isClick","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","$template","showOn","fadeIn","fadeInDuration","fadeOutDuration","isFocus","disableForTouch","touchCloseText","tabs","ResponsiveAccordionTabs","storezfData","currentRule","_getAllOptions","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","_changedZfMediaQueryHandler","_handleMarkup","toSet","fromString","$panels","tabsTitle","tabsPanel","$liHeads","$liHeadsA","display","visibility","$tabsContent","$placeholder","tempValue","CoreUtils"],"mappings":"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"}
\ No newline at end of file
index 3e92da3d0adca2069cab30e13fa3ba8360a806f3..efc29a705166465374da160f9fb662164b474975 100644 (file)
@@ -485,7 +485,7 @@ function parseStyleToObject(str) {
   return styleObject;
 }
 
-var FOUNDATION_VERSION = '6.7.4';
+var FOUNDATION_VERSION = '6.7.5';
 
 // Global Foundation object
 // This is attached to the window, or used as a module for AMD/Browserify
@@ -1339,9 +1339,10 @@ const Nest = {
       if ($sub.length) {
         $item.addClass(hasSubClass);
         if(applyAria) {
-          $item.children('a:first').attr({
+          const firstItem = $item.children('a:first');
+          firstItem.attr({
             'aria-haspopup': true,
-            'aria-label': $item.children('a:first').text()
+            'aria-label': firstItem.attr('aria-label') || firstItem.text()
           });
           // Note:  Drilldowns behave differently in how they hide, and so need
           // additional attributes.  We should look if this possibly over-generalized
@@ -2165,6 +2166,10 @@ class Abide extends Plugin {
       'data-invalid': '',
       'aria-invalid': true
     });
+
+    if ($formError.filter(':visible').length) {
+      this.addA11yErrorDescribe($el, $formError);
+    }
   }
 
   /**
@@ -2175,19 +2180,11 @@ class Abide extends Plugin {
   addA11yAttributes($el) {
     let $errors = this.findFormError($el);
     let $labels = $errors.filter('label');
-    let $error = $errors.first();
     if (!$errors.length) return;
 
-    // Set [aria-describedby] on the input toward the first form error if it is not set
-    if (typeof $el.attr('aria-describedby') === 'undefined') {
-      // Get the first error ID or create one
-      let errorId = $error.attr('id');
-      if (typeof errorId === 'undefined') {
-        errorId = GetYoDigits(6, 'abide-error');
-        $error.attr('id', errorId);
-      }
-
-      $el.attr('aria-describedby', errorId);
+    let $error = $errors.filter(':visible').first();
+    if ($error.length) {
+      this.addA11yErrorDescribe($el, $error);
     }
 
     if ($labels.filter('[for]').length < $labels.length) {
@@ -2214,6 +2211,20 @@ class Abide extends Plugin {
     }).end();
   }
 
+  addA11yErrorDescribe($el, $error) {
+    if (typeof $el.attr('aria-describedby') !== 'undefined') return;
+
+    // Set [aria-describedby] on the input toward the first form error if it is not set
+    // Get the first error ID or create one
+    let errorId = $error.attr('id');
+    if (typeof errorId === 'undefined') {
+      errorId = GetYoDigits(6, 'abide-error');
+      $error.attr('id', errorId);
+    }
+
+    $el.attr('aria-describedby', errorId).data('abide-describedby', true);
+  }
+
   /**
    * Adds [aria-live] attribute to the given global form error $el.
    * @param {Object} $el - jQuery object to add the attribute to
@@ -2302,6 +2313,10 @@ class Abide extends Plugin {
       'data-invalid': null,
       'aria-invalid': null
     });
+
+    if ($el.data('abide-describedby')) {
+      $el.removeAttr('aria-describedby').removeData('abide-describedby');
+    }
   }
 
   /**
@@ -3607,7 +3622,7 @@ class Drilldown extends Plugin {
     this.$submenus.each(function(){
       var $menu = $(this),
           $back = $menu.find('.js-drilldown-back');
-      if(!$back.length){
+      if(!$back.length) {
         switch (_this.options.backButtonPosition) {
           case "bottom":
             $menu.append(_this.options.backButton);
@@ -3801,6 +3816,7 @@ class Drilldown extends Plugin {
   _hideAll() {
     var $elem = this.$element.find('.is-drilldown-submenu.is-active');
     $elem.addClass('is-closing');
+    $elem.parent().closest('ul').removeClass('invisible');
 
     if (this.options.autoHeight) {
       const calcHeight = $elem.parent().closest('ul').data('calcHeight');
@@ -8893,7 +8909,7 @@ class Slider extends Plugin {
     $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {
       var _$handle = $(this),
           idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,
-          oldValue = parseFloat(_this.inputs.eq(idx).val()),
+          oldValue = parseFloat($handle.attr('aria-valuenow')),
           newValue;
 
       // handle keyboard event with keyboard util
index b96e11fc684df3e23ccc2d1df96962bcfb4eb208..ba31a13f0e4142895c7d8c3ec011285f1bacb417 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"foundation.es6.js","sources":["../../js/foundation.core.utils.js","../../js/foundation.util.mediaQuery.js","../../js/foundation.core.js","../../js/foundation.util.box.js","../../js/foundation.util.imageLoader.js","../../js/foundation.util.keyboard.js","../../js/foundation.util.motion.js","../../js/foundation.util.nest.js","../../js/foundation.util.timer.js","../../js/foundation.util.touch.js","../../js/foundation.util.triggers.js","../../js/foundation.core.plugin.js","../../js/foundation.abide.js","../../js/foundation.accordion.js","../../js/foundation.accordionMenu.js","../../js/foundation.drilldown.js","../../js/foundation.positionable.js","../../js/foundation.dropdown.js","../../js/foundation.dropdownMenu.js","../../js/foundation.equalizer.js","../../js/foundation.interchange.js","../../js/foundation.smoothScroll.js","../../js/foundation.magellan.js","../../js/foundation.offcanvas.js","../../js/foundation.orbit.js","../../js/foundation.responsiveMenu.js","../../js/foundation.responsiveToggle.js","../../js/foundation.reveal.js","../../js/foundation.slider.js","../../js/foundation.sticky.js","../../js/foundation.tabs.js","../../js/foundation.toggler.js","../../js/foundation.tooltip.js","../../js/foundation.responsiveAccordionTabs.js","../../js/entries/foundation.js"],"sourcesContent":["import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.4';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n"],"names":["Rtl","hyphenate","MenuPlugins","CoreUtils.rtl","CoreUtils.GetYoDigits","CoreUtils.transitionend","CoreUtils.RegExpEscape","CoreUtils.onLoad"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"foundation.es6.js","sources":["../../js/foundation.core.utils.js","../../js/foundation.util.mediaQuery.js","../../js/foundation.core.js","../../js/foundation.util.box.js","../../js/foundation.util.imageLoader.js","../../js/foundation.util.keyboard.js","../../js/foundation.util.motion.js","../../js/foundation.util.nest.js","../../js/foundation.util.timer.js","../../js/foundation.util.touch.js","../../js/foundation.util.triggers.js","../../js/foundation.core.plugin.js","../../js/foundation.abide.js","../../js/foundation.accordion.js","../../js/foundation.accordionMenu.js","../../js/foundation.drilldown.js","../../js/foundation.positionable.js","../../js/foundation.dropdown.js","../../js/foundation.dropdownMenu.js","../../js/foundation.equalizer.js","../../js/foundation.interchange.js","../../js/foundation.smoothScroll.js","../../js/foundation.magellan.js","../../js/foundation.offcanvas.js","../../js/foundation.orbit.js","../../js/foundation.responsiveMenu.js","../../js/foundation.responsiveToggle.js","../../js/foundation.reveal.js","../../js/foundation.slider.js","../../js/foundation.sticky.js","../../js/foundation.tabs.js","../../js/foundation.toggler.js","../../js/foundation.tooltip.js","../../js/foundation.responsiveAccordionTabs.js","../../js/entries/foundation.js"],"sourcesContent":["import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          const firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n\n    if ($formError.filter(':visible').length) {\n      this.addA11yErrorDescribe($el, $formError);\n    }\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    if (!$errors.length) return;\n\n    let $error = $errors.filter(':visible').first();\n    if ($error.length) {\n      this.addA11yErrorDescribe($el, $error);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  addA11yErrorDescribe($el, $error) {\n    if (typeof $el.attr('aria-describedby') !== 'undefined') return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    // Get the first error ID or create one\n    let errorId = $error.attr('id');\n    if (typeof errorId === 'undefined') {\n      errorId = GetYoDigits(6, 'abide-error');\n      $error.attr('id', errorId);\n    }\n\n    $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n    if ($el.data('abide-describedby')) {\n      $el.removeAttr('aria-describedby').removeData('abide-describedby');\n    }\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length) {\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n    $elem.parent().closest('ul').removeClass('invisible');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat($handle.attr('aria-valuenow')),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n"],"names":["Rtl","hyphenate","MenuPlugins","CoreUtils.rtl","CoreUtils.GetYoDigits","CoreUtils.transitionend","CoreUtils.RegExpEscape","CoreUtils.onLoad"],"mappings":"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Q,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,IAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,IAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,IAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,KAAK;AAClB,CAAC;;ACvrBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,SAAS,MAAM,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC5B,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC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E,CAAC;AAC3E,GAAG;AACH,CAAC;AACD;AACA,KAAK,CAAC,QAAQ,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,EAAE,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,CAAC;;AC7hBF,IAAI,WAAW,GAAG;AAClB,EAAE,QAAQ,EAAE;AACZ,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,MAAM,EAAE,YAAY;AACxB,GAAG;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,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAChE;AACA,IAAI,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,MAAM,CAAC,EAAE;AAC5C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAClC,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,MAAM,CAAC,QAAQ,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,wBAAwB,EAAE,EAAE;AAC9B,CAAC,CAAC;;AC7mBF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,SAA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AQ,CAAC,CAAC;AAClD,SAAS;AACT,OAAO,CAAC,CAAC;AACT;AACA;AACA;AACA;AACA,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACpC;AACA,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,GAAG;AACH,CAAC;AACD;AACA,MAAM,CAAC,QAAQ,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,EAAE,GAAG;AACV;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,EAAE,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AAC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AAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1E,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC/B,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7B,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzC,KAAK;AACL,GAAG;AACH,CAAC;AACD;AACA,IAAI,CAAC,QAAQ,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAmB,EAAE,GAAG;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,oBAAoB,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAg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AAM,EAAE,CAAC;AAC3B,GAAG;AACH,CAAC;AACD;AACA,OAAO,CAAC,QAAQ,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAE,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,cAAc,EAAE,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,EAAE,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,kBAAkB,EAAE,KAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,EAAE;AACnB;AACA;AACA;A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"}
\ No newline at end of file
index 0e1cb528571a6234ec0152cfde7b43e44ea94ae3..707a70906636b7a13f31b38afd923185586a7aeb 100644 (file)
@@ -699,7 +699,7 @@ function parseStyleToObject(str) {
   return styleObject;
 }
 
-var FOUNDATION_VERSION = '6.7.4'; // Global Foundation object
+var FOUNDATION_VERSION = '6.7.5'; // Global Foundation object
 // This is attached to the window, or used as a module for AMD/Browserify
 
 var Foundation = {
@@ -1588,9 +1588,10 @@ var Nest = {
         $item.addClass(hasSubClass);
 
         if (applyAria) {
-          $item.children('a:first').attr({
+          var firstItem = $item.children('a:first');
+          firstItem.attr({
             'aria-haspopup': true,
-            'aria-label': $item.children('a:first').text()
+            'aria-label': firstItem.attr('aria-label') || firstItem.text()
           }); // Note:  Drilldowns behave differently in how they hide, and so need
           // additional attributes.  We should look if this possibly over-generalized
           // utility (Nest) is appropriate when we rework menus in 6.4
@@ -2505,6 +2506,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': '',
         'aria-invalid': true
       });
+
+      if ($formError.filter(':visible').length) {
+        this.addA11yErrorDescribe($el, $formError);
+      }
     }
     /**
      * Adds [for] and [role=alert] attributes to all form error targetting $el,
@@ -2517,19 +2522,11 @@ var Abide = /*#__PURE__*/function (_Plugin) {
     value: function addA11yAttributes($el) {
       var $errors = this.findFormError($el);
       var $labels = $errors.filter('label');
-      var $error = $errors.first();
-      if (!$errors.length) return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      if (!$errors.length) return;
+      var $error = $errors.filter(':visible').first();
 
-      if (typeof $el.attr('aria-describedby') === 'undefined') {
-        // Get the first error ID or create one
-        var errorId = $error.attr('id');
-
-        if (typeof errorId === 'undefined') {
-          errorId = GetYoDigits(6, 'abide-error');
-          $error.attr('id', errorId);
-        }
-
-        $el.attr('aria-describedby', errorId);
+      if ($error.length) {
+        this.addA11yErrorDescribe($el, $error);
       }
 
       if ($labels.filter('[for]').length < $labels.length) {
@@ -2554,6 +2551,21 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         if (typeof $label.attr('role') === 'undefined') $label.attr('role', 'alert');
       }).end();
     }
+  }, {
+    key: "addA11yErrorDescribe",
+    value: function addA11yErrorDescribe($el, $error) {
+      if (typeof $el.attr('aria-describedby') !== 'undefined') return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      // Get the first error ID or create one
+
+      var errorId = $error.attr('id');
+
+      if (typeof errorId === 'undefined') {
+        errorId = GetYoDigits(6, 'abide-error');
+        $error.attr('id', errorId);
+      }
+
+      $el.attr('aria-describedby', errorId).data('abide-describedby', true);
+    }
     /**
      * Adds [aria-live] attribute to the given global form error $el.
      * @param {Object} $el - jQuery object to add the attribute to
@@ -2647,6 +2659,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': null,
         'aria-invalid': null
       });
+
+      if ($el.data('abide-describedby')) {
+        $el.removeAttr('aria-describedby').removeData('abide-describedby');
+      }
     }
     /**
      * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.
@@ -4311,6 +4327,7 @@ var Drilldown = /*#__PURE__*/function (_Plugin) {
 
       var $elem = this.$element.find('.is-drilldown-submenu.is-active');
       $elem.addClass('is-closing');
+      $elem.parent().closest('ul').removeClass('invisible');
 
       if (this.options.autoHeight) {
         var calcHeight = $elem.parent().closest('ul').data('calcHeight');
@@ -10155,7 +10172,7 @@ var Slider = /*#__PURE__*/function (_Plugin) {
       $handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e) {
         var _$handle = $(this),
             idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,
-            oldValue = parseFloat(_this.inputs.eq(idx).val()),
+            oldValue = parseFloat($handle.attr('aria-valuenow')),
             newValue; // handle keyboard event with keyboard util
 
 
index 58d4087774151772a6dc787df6190c374fe9adba..1fbb2399837f6e0f2c55aa870f949eec1dd175a3 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"foundation.esm.js","sources":["../../js/foundation.core.utils.js","../../js/foundation.util.mediaQuery.js","../../js/foundation.core.js","../../js/foundation.util.box.js","../../js/foundation.util.imageLoader.js","../../js/foundation.util.keyboard.js","../../js/foundation.util.motion.js","../../js/foundation.util.nest.js","../../js/foundation.util.timer.js","../../js/foundation.util.touch.js","../../js/foundation.util.triggers.js","../../js/foundation.core.plugin.js","../../js/foundation.abide.js","../../js/foundation.accordion.js","../../js/foundation.accordionMenu.js","../../js/foundation.drilldown.js","../../js/foundation.positionable.js","../../js/foundation.dropdown.js","../../js/foundation.dropdownMenu.js","../../js/foundation.equalizer.js","../../js/foundation.interchange.js","../../js/foundation.smoothScroll.js","../../js/foundation.magellan.js","../../js/foundation.offcanvas.js","../../js/foundation.orbit.js","../../js/foundation.responsiveMenu.js","../../js/foundation.responsiveToggle.js","../../js/foundation.reveal.js","../../js/foundation.slider.js","../../js/foundation.sticky.js","../../js/foundation.tabs.js","../../js/foundation.toggler.js","../../js/foundation.tooltip.js","../../js/foundation.responsiveAccordionTabs.js","../../js/entries/foundation.js"],"sourcesContent":["import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.4';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n"],"names":["rtl","$","attr","GetYoDigits","length","namespace","str","chars","charsLength","i","Math","floor","random","RegExpEscape","replace","transitionend","$elem","transitions","elem","document","createElement","end","transition","style","setTimeout","triggerHandler","onLoad","handler","didLoad","readyState","eventType","cb","one","window","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","callback","bind","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","script","getElementsByTagName","info","type","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","MediaQuery","queries","current","_init","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","push","name","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","trim","split","filter","p","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","TypeError","matched","on","newSize","currentSize","trigger","styleObject","slice","reduce","ret","param","val","decodeURIComponent","Array","isArray","FOUNDATION_VERSION","Foundation","version","_plugins","_uuids","plugin","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","data","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_this","fns","plgs","forEach","foundation","object","Object","keys","err","console","error","reflow","find","addBack","$el","opts","option","opt","map","el","parseValue","er","getFnName","addToJquery","method","$noJS","removeClass","args","prototype","call","arguments","plugClass","apply","ReferenceError","fn","util","throttle","func","delay","timer","context","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","nextTime","max","clearTimeout","performance","start","Function","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","isNaN","parseFloat","Box","ImNotTouchingYou","OverlapArea","GetDimensions","GetExplicitOffsets","element","parent","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","height","offset","top","left","windowDims","min","sqrt","rect","getBoundingClientRect","parRect","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","anchor","position","alignment","vOffset","hOffset","isOverflow","$eleDims","$anchorDims","topVal","leftVal","onImagesLoaded","images","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","off","src","keyCodes","commands","findFocusable","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","which","keyCode","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","Keyboard","getKeyCodes","handleKey","component","functions","commandList","cmds","command","warn","zfIsKeyHandled","ltr","Rtl","extend","returnValue","handled","unhandled","register","componentName","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","preventDefault","focus","releaseFocus","kcs","k","kc","initClasses","activeClasses","Motion","animateIn","animation","animate","animateOut","Move","duration","anim","prog","move","ts","isIn","initClass","activeClass","reset","addClass","show","offsetWidth","finish","hide","transitionDuration","Nest","Feather","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","$sub","children","Burn","Timer","options","nameSpace","remain","isPaused","restart","infinite","pause","Touch","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","e","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","touches","pageX","dx","dir","abs","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","init","SpotSwipe","enabled","documentElement","special","swipe","setup","tap","noop","setupSpotSwipe","setupTouchHandler","addTouch","handleTouch","changedTouches","first","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","stopPropagation","fadeOut","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","not","addClosemeListener","yetiBoxes","plugNames","listeners","join","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","Plugin","_setup","getPluginName","_destroy","obj","Abide","defaults","isEnabled","formnovalidate","$inputs","merge","$submits","$globalErrors","a11yAttributes","input","addA11yAttributes","addGlobalErrorA11yAttributes","_events","resetForm","validateForm","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","isGood","checked","failedValidators","$error","siblings","formErrorSelector","add","v","$label","$els","labels","findLabel","$formError","findFormError","labelErrorClass","formErrorClass","inputErrorClass","$errors","$labels","errorId","elemId","label","a11yErrorLevel","groupName","findRadioLabels","$formErrors","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","validateRadio","validateCheckbox","validateText","required","validators","equalTo","goodToGo","message","dependentElements","addErrorClasses","removeErrorClasses","acc","checkboxGroupName","initialized","noError","pattern","inputText","valid","patterns","RegExp","$group","minRequired","clear","$form","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","Accordion","_isInitializing","$tabs","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","location","hash","$anchor","$link","isOwnAnchor","hasClass","_closeAllTabs","deepLinkSmudge","scrollTop","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","$a","multiExpand","previous","last","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","allowAllClosed","_closeTab","$activeContents","targetContentId","slideDown","slideSpeed","slideUp","$activeTabs","stop","AccordionMenu","multiOpen","$menuLinks","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Drilldown","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","$back","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","_show","closeOnClick","$body","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","unwrap","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","Positionable","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","$parent","allowOverlap","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","allowBottomOverlap","_reposition","Dropdown","$id","$anchors","_setCurrentAnchor","parentClass","$currentAnchor","match","horizontalPosition","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","_addBodyHandler","DropdownMenu","subs","verticalClass","rightClass","changed","parClass","handleClickFn","hasSub","hasClicked","clickOpen","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","_isVertical","_isRtl","_removeBodyHandler","isItself","$sibs","oldClass","$parentLi","$toClose","somethingToClose","$activeItem","Equalizer","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","imgs","tooSmall","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","groupsILength","lenJ","Interchange","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","path","types","SPECIAL_QUERIES","rulesList","nodeName","response","html","SmoothScroll","_linkClickListener","_handleLinkClick","arrival","_inTransition","scrollToLoc","loc","$loc","round","threshold","Magellan","calcPoints","$targets","$links","$active","points","winHeight","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","targetPoint","deepLinking","_updateActive","onLoadListener","_deepLinkScroll","newScrollPos","isScrollingUp","activeIdx","visibleLinks","$oldActive","activeHash","isNewActive","isNewHash","pathname","search","OffCanvas","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnRegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","hasReveal","_","absoluteTopVal","stickyData","_addContentClasses","lastY","pageY","delta","_canScroll","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","Orbit","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","timerDelay","changeSlide","_setWrapperHeight","temp","counter","pauseOnHover","navButtons","$controls","nextClass","prevClass","$slide","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","$oldBullet","$othersBullets","$newBullet","activeStateDescriptor","spans","spanCountInOthersBullets","toArray","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","MenuPlugins","dropdown","cssClass","drilldown","accordion","ResponsiveMenu","currentMq","currentPlugin","rulesTree","ruleSize","rulePlugin","isEmptyObject","_checkMediaQueries","matchedMq","destroy","ResponsiveToggle","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","Reveal","cached","mq","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","afterAnimation","_addGlobalClasses","focusableElements","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","hideDelay","_removeGlobalClasses","_enableScroll","resetOnClose","urlWithoutHash","title","Slider","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","handlePos","initialStart","moveTime","changedDelay","initVal","initialEnd","direction","eventOffset","barDim","windowScroll","scrollLeft","elemOffset","eventFromBar","barXY","offsetPct","_value","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","clickSelect","draggable","_$handle","oldValue","newValue","decrease","increase","decreaseFast","increaseFast","invertVertical","frac","num","clickPos","log","Sticky","$container","wasWrapped","container","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","pts","breaks","place","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","Tabs","$tabTitles","linkClass","linkActiveClass","matchHeight","_setHeight","anchorNoHash","selectTab","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panelClass","panel","Toggler","toggler","$trigger","controls","containsId","_updateARIA","undefined","Tooltip","isClick","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","$template","showOn","fadeIn","fadeInDuration","fadeOutDuration","isFocus","disableForTouch","touchCloseText","tabs","ResponsiveAccordionTabs","storezfData","currentRule","_getAllOptions","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","_changedZfMediaQueryHandler","_handleMarkup","toSet","fromString","$panels","tabsTitle","tabsPanel","$liHeads","$liHeadsA","display","visibility","$tabsContent","$placeholder","tempValue","CoreUtils"],"mappings":"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f,KAAL;AACD,OAHD,MAGK;AACH,aAAKD,IAAL;AACD;AACF;AAED;AACF;AACA;AACA;;;;WACE,oBAAW;AACT,WAAKvf,QAAL,CAAcuI,GAAd,CAAkB,aAAlB,EAAiCuE,IAAjC;AACA,WAAKkY,QAAL,CAAczc,GAAd,CAAkB,cAAlB;AACArR,MAAAA,CAAC,CAACkB,QAAQ,CAACyO,IAAV,CAAD,CAAiB0B,GAAjB,CAAqB,mCAArB;AAED;;;;EAxToBmb;;AA2TvBoB,QAAQ,CAACvP,QAAT,GAAoB;AAClB;AACF;AACA;AACA;AACA;AACA;AACE2P,EAAAA,WAAW,EAAE,IAPK;;AAQlB;AACF;AACA;AACA;AACA;AACA;AACEY,EAAAA,UAAU,EAAE,GAdM;;AAelB;AACF;AACA;AACA;AACA;AACA;AACEJ,EAAAA,KAAK,EAAE,KArBW;;AAsBlB;AACF;AACA;AACA;AACA;AACA;AACEK,EAAAA,SAAS,EAAE,KA5BO;;AA6BlB;AACF;AACA;AACA;AACA;AACA;AACEze,EAAAA,OAAO,EAAE,CAnCS;;AAoClB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,OAAO,EAAE,CA1CS;;AA2ClB;AACF;AACA;AACA;AACA;AACA;AACEH,EAAAA,QAAQ,EAAE,MAjDQ;;AAkDlB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,SAAS,EAAE,MAxDO;;AAyDlB;AACF;AACA;AACA;AACA;AACA;AACEgd,EAAAA,YAAY,EAAE,KA/DI;;AAgElB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEO,EAAAA,kBAAkB,EAAE,IAxEF;;AAyElB;AACF;AACA;AACA;AACA;AACA;AACE9Z,EAAAA,SAAS,EAAE,KA/EO;;AAgFlB;AACF;AACA;AACA;AACA;AACA;AACE0X,EAAAA,SAAS,EAAE,KAtFO;;AAuFlB;AACF;AACA;AACA;AACA;AACA;AACEjB,EAAAA,YAAY,EAAE,KA7FI;;AA8FlB;AACF;AACA;AACA;AACA;AACA;AACEkE,EAAAA,WAAW,EAAE;AApGK,CAApB;;AClUA;AACA;AACA;AACA;AAC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"}
\ No newline at end of file
+{"version":3,"file":"foundation.esm.js","sources":["../../js/foundation.core.utils.js","../../js/foundation.util.mediaQuery.js","../../js/foundation.core.js","../../js/foundation.util.box.js","../../js/foundation.util.imageLoader.js","../../js/foundation.util.keyboard.js","../../js/foundation.util.motion.js","../../js/foundation.util.nest.js","../../js/foundation.util.timer.js","../../js/foundation.util.touch.js","../../js/foundation.util.triggers.js","../../js/foundation.core.plugin.js","../../js/foundation.abide.js","../../js/foundation.accordion.js","../../js/foundation.accordionMenu.js","../../js/foundation.drilldown.js","../../js/foundation.positionable.js","../../js/foundation.dropdown.js","../../js/foundation.dropdownMenu.js","../../js/foundation.equalizer.js","../../js/foundation.interchange.js","../../js/foundation.smoothScroll.js","../../js/foundation.magellan.js","../../js/foundation.offcanvas.js","../../js/foundation.orbit.js","../../js/foundation.responsiveMenu.js","../../js/foundation.responsiveToggle.js","../../js/foundation.reveal.js","../../js/foundation.slider.js","../../js/foundation.sticky.js","../../js/foundation.tabs.js","../../js/foundation.toggler.js","../../js/foundation.tooltip.js","../../js/foundation.responsiveAccordionTabs.js","../../js/entries/foundation.js"],"sourcesContent":["import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          const firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n\n    if ($formError.filter(':visible').length) {\n      this.addA11yErrorDescribe($el, $formError);\n    }\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    if (!$errors.length) return;\n\n    let $error = $errors.filter(':visible').first();\n    if ($error.length) {\n      this.addA11yErrorDescribe($el, $error);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  addA11yErrorDescribe($el, $error) {\n    if (typeof $el.attr('aria-describedby') !== 'undefined') return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    // Get the first error ID or create one\n    let errorId = $error.attr('id');\n    if (typeof errorId === 'undefined') {\n      errorId = GetYoDigits(6, 'abide-error');\n      $error.attr('id', errorId);\n    }\n\n    $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n    if ($el.data('abide-describedby')) {\n      $el.removeAttr('aria-describedby').removeData('abide-describedby');\n    }\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length) {\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n    $elem.parent().closest('ul').removeClass('invisible');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat($handle.attr('aria-valuenow')),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n"],"names":["rtl","$","attr","GetYoDigits","length","namespace","str","chars","charsLength","i","Math","floor","random","RegExpEscape","replace","transitionend","$elem","transitions","elem","document","createElement","end","transition","style","setTimeout","triggerHandler","onLoad","handler","didLoad","readyState","eventType","cb","one","window","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","callback","bind","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","script","getElementsByTagName","info","type","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","MediaQuery","queries","current","_init","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","hasOwnProperty","push","name","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","trim","split","filter","p","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","TypeError","matched","on","newSize","currentSize","trigger","styleObject","slice","reduce","ret","param","val","decodeURIComponent","Array","isArray","FOUNDATION_VERSION","Foundation","version","_plugins","_uuids","plugin","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","data","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_this","fns","plgs","forEach","foundation","object","Object","keys","err","console","error","reflow","find","addBack","$el","opts","option","opt","map","el","parseValue","er","getFnName","addToJquery","method","$noJS","removeClass","args","prototype","call","arguments","plugClass","apply","ReferenceError","fn","util","throttle","func","delay","timer","context","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","nextTime","max","clearTimeout","performance","start","Function","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","isNaN","parseFloat","Box","ImNotTouchingYou","OverlapArea","GetDimensions","GetExplicitOffsets","element","parent","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","height","offset","top","left","windowDims","min","sqrt","rect","getBoundingClientRect","parRect","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","anchor","position","alignment","vOffset","hOffset","isOverflow","$eleDims","$anchorDims","topVal","leftVal","onImagesLoaded","images","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","off","src","keyCodes","commands","findFocusable","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","which","keyCode","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","Keyboard","getKeyCodes","handleKey","component","functions","commandList","cmds","command","warn","zfIsKeyHandled","ltr","Rtl","extend","returnValue","handled","unhandled","register","componentName","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","preventDefault","focus","releaseFocus","kcs","k","kc","initClasses","activeClasses","Motion","animateIn","animation","animate","animateOut","Move","duration","anim","prog","move","ts","isIn","initClass","activeClass","reset","addClass","show","offsetWidth","finish","hide","transitionDuration","Nest","Feather","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","$sub","children","firstItem","Burn","Timer","options","nameSpace","remain","isPaused","restart","infinite","pause","Touch","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","e","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","touches","pageX","dx","dir","abs","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","init","SpotSwipe","enabled","documentElement","special","swipe","setup","tap","noop","setupSpotSwipe","setupTouchHandler","addTouch","handleTouch","changedTouches","first","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","stopPropagation","fadeOut","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","not","addClosemeListener","yetiBoxes","plugNames","listeners","join","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","Plugin","_setup","getPluginName","_destroy","obj","Abide","defaults","isEnabled","formnovalidate","$inputs","merge","$submits","$globalErrors","a11yAttributes","input","addA11yAttributes","addGlobalErrorA11yAttributes","_events","resetForm","validateForm","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","isGood","checked","failedValidators","$error","siblings","formErrorSelector","add","v","$label","$els","labels","findLabel","$formError","findFormError","labelErrorClass","formErrorClass","inputErrorClass","addA11yErrorDescribe","$errors","$labels","elemId","label","errorId","a11yErrorLevel","groupName","findRadioLabels","$formErrors","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","validateRadio","validateCheckbox","validateText","required","validators","equalTo","goodToGo","message","dependentElements","addErrorClasses","removeErrorClasses","acc","checkboxGroupName","initialized","noError","pattern","inputText","valid","patterns","RegExp","$group","minRequired","clear","$form","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","Accordion","_isInitializing","$tabs","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","location","hash","$anchor","$link","isOwnAnchor","hasClass","_closeAllTabs","deepLinkSmudge","scrollTop","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","$a","multiExpand","previous","last","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","allowAllClosed","_closeTab","$activeContents","targetContentId","slideDown","slideSpeed","slideUp","$activeTabs","stop","AccordionMenu","multiOpen","$menuLinks","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Drilldown","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","$back","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","_show","closeOnClick","$body","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","unwrap","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","Positionable","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","$parent","allowOverlap","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","allowBottomOverlap","_reposition","Dropdown","$id","$anchors","_setCurrentAnchor","parentClass","$currentAnchor","match","horizontalPosition","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","_addBodyHandler","DropdownMenu","subs","verticalClass","rightClass","changed","parClass","handleClickFn","hasSub","hasClicked","clickOpen","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","_isVertical","_isRtl","_removeBodyHandler","isItself","$sibs","oldClass","$parentLi","$toClose","somethingToClose","$activeItem","Equalizer","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","imgs","tooSmall","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","groupsILength","lenJ","Interchange","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","path","types","SPECIAL_QUERIES","rulesList","nodeName","response","html","SmoothScroll","_linkClickListener","_handleLinkClick","arrival","_inTransition","scrollToLoc","loc","$loc","round","threshold","Magellan","calcPoints","$targets","$links","$active","points","winHeight","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","targetPoint","deepLinking","_updateActive","onLoadListener","_deepLinkScroll","newScrollPos","isScrollingUp","activeIdx","visibleLinks","$oldActive","activeHash","isNewActive","isNewHash","pathname","search","OffCanvas","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnRegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","hasReveal","_","absoluteTopVal","stickyData","_addContentClasses","lastY","pageY","delta","_canScroll","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","Orbit","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","timerDelay","changeSlide","_setWrapperHeight","temp","counter","pauseOnHover","navButtons","$controls","nextClass","prevClass","$slide","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","$oldBullet","$othersBullets","$newBullet","activeStateDescriptor","spans","spanCountInOthersBullets","toArray","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","MenuPlugins","dropdown","cssClass","drilldown","accordion","ResponsiveMenu","currentMq","currentPlugin","rulesTree","ruleSize","rulePlugin","isEmptyObject","_checkMediaQueries","matchedMq","destroy","ResponsiveToggle","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","Reveal","cached","mq","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","afterAnimation","_addGlobalClasses","focusableElements","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","hideDelay","_removeGlobalClasses","_enableScroll","resetOnClose","urlWithoutHash","title","Slider","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","handlePos","initialStart","moveTime","changedDelay","initVal","initialEnd","direction","eventOffset","barDim","windowScroll","scrollLeft","elemOffset","eventFromBar","barXY","offsetPct","_value","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","clickSelect","draggable","_$handle","oldValue","newValue","decrease","increase","decreaseFast","increaseFast","invertVertical","frac","num","clickPos","log","Sticky","$container","wasWrapped","container","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","pts","breaks","place","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","Tabs","$tabTitles","linkClass","linkActiveClass","matchHeight","_setHeight","anchorNoHash","selectTab","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panelClass","panel","Toggler","toggler","$trigger","controls","containsId","_updateARIA","undefined","Tooltip","isClick","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","$template","showOn","fadeIn","fadeInDuration","fadeOutDuration","isFocus","disableForTouch","touchCloseText","tabs","ResponsiveAccordionTabs","storezfData","currentRule","_getAllOptions","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","_changedZfMediaQueryHandler","_handleMarkup","toSet","fromString","$panels","tabsTitle","tabsPanel","$liHeads","$liHeadsA","display","visibility","$tabsContent","$placeholder","tempValue","CoreUtils"],"mappings":"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"}
\ No newline at end of file
index a1f700b6efa5fa37cf84519b718dff9b3a95d654..2c396729393d4674cc692e1a2a5dcfd83ffce804 100644 (file)
@@ -647,6 +647,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': '',
         'aria-invalid': true
       });
+
+      if ($formError.filter(':visible').length) {
+        this.addA11yErrorDescribe($el, $formError);
+      }
     }
     /**
      * Adds [for] and [role=alert] attributes to all form error targetting $el,
@@ -659,19 +663,11 @@ var Abide = /*#__PURE__*/function (_Plugin) {
     value: function addA11yAttributes($el) {
       var $errors = this.findFormError($el);
       var $labels = $errors.filter('label');
-      var $error = $errors.first();
-      if (!$errors.length) return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      if (!$errors.length) return;
+      var $error = $errors.filter(':visible').first();
 
-      if (typeof $el.attr('aria-describedby') === 'undefined') {
-        // Get the first error ID or create one
-        var errorId = $error.attr('id');
-
-        if (typeof errorId === 'undefined') {
-          errorId = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["GetYoDigits"])(6, 'abide-error');
-          $error.attr('id', errorId);
-        }
-
-        $el.attr('aria-describedby', errorId);
+      if ($error.length) {
+        this.addA11yErrorDescribe($el, $error);
       }
 
       if ($labels.filter('[for]').length < $labels.length) {
@@ -696,6 +692,21 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         if (typeof $label.attr('role') === 'undefined') $label.attr('role', 'alert');
       }).end();
     }
+  }, {
+    key: "addA11yErrorDescribe",
+    value: function addA11yErrorDescribe($el, $error) {
+      if (typeof $el.attr('aria-describedby') !== 'undefined') return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      // Get the first error ID or create one
+
+      var errorId = $error.attr('id');
+
+      if (typeof errorId === 'undefined') {
+        errorId = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["GetYoDigits"])(6, 'abide-error');
+        $error.attr('id', errorId);
+      }
+
+      $el.attr('aria-describedby', errorId).data('abide-describedby', true);
+    }
     /**
      * Adds [aria-live] attribute to the given global form error $el.
      * @param {Object} $el - jQuery object to add the attribute to
@@ -789,6 +800,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': null,
         'aria-invalid': null
       });
+
+      if ($el.data('abide-describedby')) {
+        $el.removeAttr('aria-describedby').removeData('abide-describedby');
+      }
     }
     /**
      * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.
@@ -2223,7 +2238,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
 
 
 
-var FOUNDATION_VERSION = '6.7.4'; // Global Foundation object
+var FOUNDATION_VERSION = '6.7.5'; // Global Foundation object
 // This is attached to the window, or used as a module for AMD/Browserify
 
 var Foundation = {
@@ -3234,6 +3249,7 @@ var Drilldown = /*#__PURE__*/function (_Plugin) {
 
       var $elem = this.$element.find('.is-drilldown-submenu.is-active');
       $elem.addClass('is-closing');
+      $elem.parent().closest('ul').removeClass('invisible');
 
       if (this.options.autoHeight) {
         var calcHeight = $elem.parent().closest('ul').data('calcHeight');
@@ -9889,7 +9905,7 @@ var Slider = /*#__PURE__*/function (_Plugin) {
       $handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e) {
         var _$handle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
             idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,
-            oldValue = parseFloat(_this.inputs.eq(idx).val()),
+            oldValue = parseFloat($handle.attr('aria-valuenow')),
             newValue; // handle keyboard event with keyboard util
 
 
@@ -13336,9 +13352,10 @@ var Nest = {
         $item.addClass(hasSubClass);
 
         if (applyAria) {
-          $item.children('a:first').attr({
+          var firstItem = $item.children('a:first');
+          firstItem.attr({
             'aria-haspopup': true,
-            'aria-label': $item.children('a:first').text()
+            'aria-label': firstItem.attr('aria-label') || firstItem.text()
           }); // Note:  Drilldowns behave differently in how they hide, and so need
           // additional attributes.  We should look if this possibly over-generalized
           // utility (Nest) is appropriate when we rework menus in 6.4
index a0d4bf39f42f29ae77178b8bb8ad26031ea07417..88804c86e9acf2e811750eff9a99db9eb536b381 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./js/entries/foundation.js","webpack:///./js/foundation.abide.js","webpack:///./js/foundation.accordion.js","webpack:///./js/foundation.accordionMenu.js","webpack:///./js/foundation.core.js","webpack:///./js/foundation.core.plugin.js","webpack:///./js/foundation.core.utils.js","webpack:///./js/foundation.drilldown.js","webpack:///./js/foundation.dropdown.js","webpack:///./js/foundation.dropdownMenu.js","webpack:///./js/foundation.equalizer.js","webpack:///./js/foundation.interchange.js","webpack:///./js/foundation.magellan.js","webpack:///./js/foundation.offcanvas.js","webpack:///./js/foundation.orbit.js","webpack:///./js/foundation.positionable.js","webpack:///./js/foundation.responsiveAccordionTabs.js","webpack:///./js/foundation.responsiveMenu.js","webpack:///./js/foundation.responsiveToggle.js","webpack:///./js/foundation.reveal.js","webpack:///./js/foundation.slider.js","webpack:///./js/foundation.smoothScroll.js","webpack:///./js/foundation.sticky.js","webpack:///./js/foundation.tabs.js","webpack:///./js/foundation.toggler.js","webpack:///./js/foundation.tooltip.js","webpack:///./js/foundation.util.box.js","webpack:///./js/foundation.util.imageLoader.js","webpack:///./js/foundation.util.keyboard.js","webpack:///./js/foundation.util.mediaQuery.js","webpack:///./js/foundation.util.motion.js","webpack:///./js/foundation.util.nest.js","webpack:///./js/foundation.util.timer.js","webpack:///./js/foundation.util.touch.js","webpack:///./js/foundation.util.triggers.js","webpack:///external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","addToJquery","$","rtl","CoreUtils","GetYoDigits","transitionend","RegExpEscape","onLoad","Box","onImagesLoaded","Keyboard","MediaQuery","Motion","Move","Nest","Timer","Touch","init","Triggers","_init","plugin","Abide","Accordion","AccordionMenu","Drilldown","Dropdown","DropdownMenu","Equalizer","Interchange","Magellan","OffCanvas","Orbit","ResponsiveMenu","ResponsiveToggle","Reveal","Slider","SmoothScroll","Sticky","Tabs","Toggler","Tooltip","ResponsiveAccordionTabs","element","options","$element","extend","defaults","data","isEnabled","formnovalidate","className","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","i","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","length","$el","attr","isGood","type","checked","opt","val","failedValidators","id","$error","siblings","formErrorSelector","parent","add","forEach","v","$label","closest","$els","labels","map","el","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","$errors","$labels","filter","first","errorId","elemId","label","end","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","required","split","validators","equalTo","goodToGo","message","dependentElements","_this","addErrorClasses","removeErrorClasses","trigger","acc","checkboxGroupName","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","minRequired","parseInt","clear","$form","opts","Plugin","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text","register","_isInitializing","$tabs","children","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","window","location","hash","$anchor","$link","isOwnAnchor","hasClass","_closeAllTabs","deepLinkSmudge","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","handleKey","next","$a","focus","multiExpand","previous","last","handled","$target","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","allowAllClosed","_closeTab","$activeContents","targetContentId","finish","slideDown","slideSpeed","slideUp","$activeTabs","stop","Feather","multiOpen","$menuLinks","$sub","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","eq","Math","max","min","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Burn","FOUNDATION_VERSION","version","_plugins","_uuids","name","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","unregisterPlugin","splice","removeAttr","removeData","reInit","plugins","isJQ","fns","plgs","p","foundation","object","Object","keys","err","reflow","addBack","option","trim","parseValue","er","getFnName","method","$noJS","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","navigator","userAgent","lastTime","callback","nextTime","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","_setup","getPluginName","_destroy","obj","namespace","chars","charsLength","floor","random","transitions","document","createElement","transition","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","$back","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","_show","closeOnClick","$body","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","height","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","GetDimensions","getBoundingClientRect","width","unwrap","$id","$anchors","_setCurrentAnchor","parentClass","$parent","$currentAnchor","position","match","horizontalPosition","alignment","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","body","$focusable","findFocusable","_addBodyHandler","trapFocus","releaseFocus","hide","Positionable","vOffset","hOffset","allowOverlap","allowBottomOverlap","subs","verticalClass","rightClass","Rtl","changed","parClass","handleClickFn","hasSub","hasClicked","clickOpen","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","functions","_isVertical","_isRtl","_removeBodyHandler","isItself","$sibs","ImNotTouchingYou","oldClass","$parentLi","$toClose","somethingToClose","$activeItem","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","imgs","tooSmall","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","get","groupsILength","lenJ","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","matchMedia","query","matches","path","types","warn","queries","SPECIAL_QUERIES","value","rulesList","join","nodeName","response","html","calcPoints","$targets","$links","$active","pageYOffset","documentElement","points","winHeight","round","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","threshold","targetPoint","deepLinking","scrollToLoc","_updateActive","onLoadListener","arrival","_deepLinkScroll","loc","_inTransition","newScrollPos","isScrollingUp","activeIdx","visibleLinks","$oldActive","activeHash","isNewActive","isNewHash","activeClass","pathname","search","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnRegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","atLeast","hasReveal","_","topVal","absoluteTopVal","stickyData","_addContentClasses","event","lastY","touches","pageY","delta","_canScroll","stopPropagation","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","duration","timerDelay","infinite","changeSlide","_setWrapperHeight","temp","counter","swipe","pauseOnHover","pause","navButtons","$controls","nextClass","prevClass","ltr","$slide","restart","show","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","animateIn","animateOut","isPaused","$oldBullet","$othersBullets","$newBullet","activeStateDescriptor","spans","spanCountInOthersBullets","toArray","b","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","MenuPlugins","tabs","cssClass","selectTab","accordion","storezfData","currentMq","currentRule","currentPlugin","rulesTree","ruleSize","rulePlugin","_getAllOptions","isEmptyObject","_checkMediaQueries","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","destroy","_changedZfMediaQueryHandler","matchedMq","_handleMarkup","toSet","fromString","$panels","tabsTitle","linkClass","tabsPanel","panelClass","$liHeads","$liHeadsA","display","visibility","appendTo","$tabsContent","$placeholder","tempValue","dropdown","drilldown","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","cached","mq","current","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","left","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","afterAnimation","_addGlobalClasses","focusableElements","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","hideDelay","_removeGlobalClasses","_enableScroll","resetOnClose","urlWithoutHash","title","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","handlePos","initialStart","moveTime","changedDelay","initVal","initialEnd","param","direction","eventOffset","pageX","barDim","windowScroll","scrollLeft","elemOffset","clientY","eventFromBar","barXY","offsetPct","_value","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","keyCode","clickSelect","draggable","addTouch","_$handle","oldValue","newValue","decrease","increase","decreaseFast","increaseFast","invertVertical","frac","num","dir","clickPos","abs","log","_linkClickListener","_handleLinkClick","$loc","$container","wasWrapped","container","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","pts","breaks","place","scrollListener","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","getComputedStyle","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","$tabTitles","linkActiveClass","matchHeight","_setHeight","anchorNoHash","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","which","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panel","toggler","Error","$trigger","controls","containsId","_updateARIA","undefined","isClick","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","$template","showOn","fadeIn","fadeInDuration","fadeOut","fadeOutDuration","isFocus","disableForTouch","touchCloseText","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","windowDims","sqrt","rect","parRect","parentNode","winRect","winY","winX","pageXOffset","parentDims","isOverflow","$eleDims","$anchorDims","leftVal","images","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","src","keyCodes","commands","sort","a","aTabIndex","bTabIndex","parseKey","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","getKeyCodes","component","commandList","cmds","command","zfIsKeyHandled","returnValue","unhandled","componentName","$firstFocusable","$lastFocusable","kcs","k","kc","styleMedia","media","script","getElementsByTagName","head","appendChild","insertBefore","currentStyle","matchMedium","styleSheet","cssText","textContent","isInitialized","self","$meta","extractedStyles","namedQueries","parseStyleToObject","_getCurrentSize","_watcher","_reInit","size","only","upTo","nextSize","parts","bpSize","bpModifier","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","newSize","currentSize","styleObject","reduce","ret","decodeURIComponent","isArray","initClasses","activeClasses","animation","anim","prog","move","ts","isIn","initClass","reset","offsetWidth","transitionDuration","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","nameSpace","remain","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","dx","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","SpotSwipe","enabled","special","setup","tap","noop","setupSpotSwipe","setupTouchHandler","handleTouch","changedTouches","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","closeMeListener","pluginId","addClosemeListener","yetiBoxes","plugNames","listeners","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou"],"mappings":"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A5C,CAAuD,WAAvD;AACD,SAFD,MAEK;AAAE;AAAS;AACjB,OAND;AAOD;;;;EA5hBqBnI,8D;;AA+hBxBhJ,SAAS,CAACsB,QAAV,GAAqB;AACnB;AACF;AACA;AACA;AACA;AACA;AACA;AACEqW,gBAAc,EAAE,IARG;;AASnB;AACF;AACA;AACA;AACA;AACA;AACEW,YAAU,EAAE,6DAfO;;AAgBnB;AACF;AACA;AACA;AACA;AACA;AACEF,oBAAkB,EAAE,KAtBD;;AAuBnB;AACF;AACA;AACA;AACA;AACA;AACEO,SAAO,EAAE,aA7BU;;AA8BnB;AACF;AACA;AACA;AACA;AACA;AACErK,YAAU,EAAE,KApCO;;AAqCnB;AACF;AACA;AACA;AACA;AACA;AACEyK,cAAY,EAAE,KA3CK;;AA4CnB;AACF;AACA;AACA;AACA;AACA;AACEN,YAAU,EAAE,KAlDO;;AAmDnB;AACF;AACA;AACA;AACA;AACA;AACEG,eAAa,EAAE,KAzDI;;AA0DnB;AACF;AACA;AACA;AACA;AACA;AACEjN,WAAS,EAAE,KAhEQ;;AAiEnB;AACF;AACA;AACA;AACA;AACA;AACE6N,kBAAgB,EAAE,EAvEC;;AAwEnB;AACF;AACA;AACA;AACA;AACA;AACEE,iBAAe,EAAE,CA9EE;;AA+EnB;AACF;AACA;AACA;AACA;AACA;AACEC,mBAAiB,EAAE,GArFA;;AAsFnB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,iBAAe,EAAE,OA7FE,CA8FnB;;AA9FmB,CAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9iBA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACM3Z,Q;;;;;;;;;;;;;;AACJ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACE,oBAAOiB,OAAP,EAAgBC,OAAhB,EAAyB;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAe1C,6CAAC,CAAC4C,MAAF,CAAS,EAAT,EAAapB,QAAQ,CAACqB,QAAtB,EAAgC,KAAKF,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,qE;;AA2TvBxc,QAAQ,CAACqB,QAAT,GAAoB;AAClB;AACF;AACA;AACA;AACA;AACA;AACE2Z,aAAW,EAAE,IAPK;;AAQlB;AACF;AACA;AACA;AACA;AACA;AACEe,YAAU,EAAE,GAdM;;AAelB;AACF;AACA;AACA;AACA;AACA;AACEJ,OAAK,EAAE,KArBW;;AAsBlB;AACF;AACA;AACA;AACA;AACA;AACEK,WAAS,EAAE,KA5BO;;AA6BlB;AACF;AACA;AACA;AACA;AACA;AACES,SAAO,EAAE,CAnCS;;AAoClB;AACF;AACA;AACA;AACA;AACA;AACEC,SAAO,EAAE,CA1CS;;AA2ClB;AACF;AACA;AACA;AACA;AACA;AACEvB,UAAQ,EAAE,MAjDQ;;AAkDlB;AACF;AACA;AACA;AACA;AACA;AACEG,WAAS,EAAE,MAxDO;;AAyDlB;AACF;AACA;AACA;AACA;AACA;AACEqB,cAAY,EAAE,KA/DI;;AAgElB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,oBAAkB,EAAE,IAxEF;;AAyElB;AACF;AACA;AACA;AACA;AACA;AACEP,WAAS,EAAE,KA/EO;;AAgFlB;AACF;AACA;AACA;AACA;AACA;AACErC,WAAS,EAAE,KAtFO;;AAuFlB;AACF;AACA;AACA;AACA;AACA;AACElB,cAAY,EAAE,KA7FI;;AA8FlB;AACF;AACA;AACA;AACA;AACA;AACE4C,aAAW,EAAE;AApGK,CAApB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3UA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEMzb,Y;;;;;;;;;;;;;;AACJ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACE,oBAAOgB,OAAP,EAAgBC,OAAhB,EAAyB;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAe1C,6CAAC,CAAC4C,MAAF,CAAS,EAAT,EAAanB,YAAY,CAACoB,QAA1B,EAAoC,KAAKF,QAAL,CAAcG,IAAd,EAApC,EAA0DJ,OAA1D,CA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IAA/B,CAAoC,GAApC,EAAyCY,GAAzC,CAA6C,WAA7C,EAA0DmD,GAA1D,GAAgE4W,IAAhE;AACD;;;;EAhZiBxT,8D;;AAmZpBzI,KAAK,CAACe,QAAN,GAAiB;AACf;AACF;AACA;AACA;AACA;AACA;AACEgnB,SAAO,EAAE,IAPM;;AAQf;AACF;AACA;AACA;AACA;AACA;AACEiB,YAAU,EAAE,IAdG;;AAef;AACF;AACA;AACA;AACA;AACA;AACE+B,iBAAe,EAAE,gBArBF;;AAsBf;AACF;AACA;AACA;AACA;AACA;AACEC,gBAAc,EAAE,iBA5BD;;AA6Bf;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,gBAAc,EAAE,eApCD;;AAqCf;AACF;AACA;AACA;AACA;AACA;AACEC,eAAa,EAAE,gBA3CA;;AA4Cf;AACF;AACA;AACA;AACA;AACA;AACEjD,UAAQ,EAAE,IAlDK;;AAmDf;AACF;AACA;AACA;AACA;AACA;AACEM,YAAU,EAAE,IAzDG;;AA0Df;AACF;AACA;AACA;AACA;AACA;AACE0B,cAAY,EAAE,IAhEC;;AAiEf;AACF;AACA;AACA;AACA;AACA;AACEpB,OAAK,EAAE,IAvEQ;;AAwEf;AACF;AACA;AACA;AACA;AACA;AACEC,cAAY,EAAE,IA9EC;;AA+Ef;AACF;AACA;AACA;AACA;AACA;AACEX,YAAU,EAAE,IArFG;;AAsFf;AACF;AACA;AACA;AACA;AACA;AACEX,gBAAc,EAAE,iBA5FD;;AA6Ff;AACF;AACA;AACA;AACA;AACA;AACEE,YAAU,EAAE,aAnGG;;AAoGf;AACF;AACA;AACA;AACA;AACA;AACEW,cAAY,EAAE,eA1GC;;AA2Gf;AACF;AACA;AACA;AACA;AACA;AACEa,WAAS,EAAE,YAjHI;;AAkHf;AACF;AACA;AACA;AACA;AACA;AACEC,WAAS,EAAE,gBAxHI;;AAyHf;AACF;AACA;AACA;AACA;AACA;AACEtB,QAAM,EAAE;AA/HO,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvaA;AACA;AACA;AAEA,IAAMsD,SAAS,GAAG,CAAC,M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CAAC,CAAC,iBAAD,CAAD,CAAqB8E,MAArB,KAAiC,CAArC,EAAwC;AACtC,aAAKyuB,oBAAL,GADsC,CACT;;AAC9B;AACF;;;;EAhfkBhpB,8D;;AAmfrBtI,MAAM,CAACY,QAAP,GAAkB;AAChB;AACF;AACA;AACA;AACA;AACA;AACE0uB,aAAW,EAAE,EAPG;;AAQhB;AACF;AACA;AACA;AACA;AACA;AACEC,cAAY,EAAE,EAdE;;AAehB;AACF;AACA;AACA;AACA;AACA;AACEwB,WAAS,EAAE,CArBK;;AAsBhB;AACF;AACA;AACA;AACA;AACA;AACEM,WAAS,EAAE,CA5BK;;AA6BhB;AACF;AACA;AACA;AACA;AACA;AACEhZ,cAAY,EAAE,IAnCE;;AAoChB;AACF;AACA;AACA;AACA;AACA;AACE8Y,YAAU,EAAE,IA1CI;;AA2ChB;AACF;AACA;AACA;AACA;AACA;AACET,gBAAc,EAAE,KAjDA;;AAkDhB;AACF;AACA;AACA;AACA;AACA;AACE1U,SAAO,EAAE,MAxDO;;AAyDhB;AACF;AACA;AACA;AACA;AACA;AACEC,SAAO,EAAE,MA/DO;;AAgEhB;AACF;AACA;AACA;AACA;AACA;AACE8T,YAAU,EAAE,KAtEI;;AAuEhB;AACF;AACA;AACA;AACA;AACA;AACEtL,SAAO,EAAE,IA7EO;;AA8EhB;AACF;AACA;AACA;AACA;AACA;AACE+M,cAAY,EAAE,KApFE;;AAqFhB;AACF;AACA;AACA;AACA;AACA;AACA;AACEnmB,UAAQ,EAAE,KA5FM;;AA6FhB;AACF;AACA;AACA;AACA;AACEgB,eAAa,EAAE,KAlGC;;AAmGd;AACJ;AACA;AACA;AACA;AACA;AACEwiB,UAAQ,EAAE,MAzGM;;AA0GhB;AACF;AACA;AACA;AACA;AACA;AACEoB,0BAAwB,EAAE;AAhHV,CAAlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtgBA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEMhwB,M;;;;;;;;;;;;;;AACJ;AACF;AACA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","file":"foundation.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.4';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./js/entries/foundation.js","webpack:///./js/foundation.abide.js","webpack:///./js/foundation.accordion.js","webpack:///./js/foundation.accordionMenu.js","webpack:///./js/foundation.core.js","webpack:///./js/foundation.core.plugin.js","webpack:///./js/foundation.core.utils.js","webpack:///./js/foundation.drilldown.js","webpack:///./js/foundation.dropdown.js","webpack:///./js/foundation.dropdownMenu.js","webpack:///./js/foundation.equalizer.js","webpack:///./js/foundation.interchange.js","webpack:///./js/foundation.magellan.js","webpack:///./js/foundation.offcanvas.js","webpack:///./js/foundation.orbit.js","webpack:///./js/foundation.positionable.js","webpack:///./js/foundation.responsiveAccordionTabs.js","webpack:///./js/foundation.responsiveMenu.js","webpack:///./js/foundation.responsiveToggle.js","webpack:///./js/foundation.reveal.js","webpack:///./js/foundation.slider.js","webpack:///./js/foundation.smoothScroll.js","webpack:///./js/foundation.sticky.js","webpack:///./js/foundation.tabs.js","webpack:///./js/foundation.toggler.js","webpack:///./js/foundation.tooltip.js","webpack:///./js/foundation.util.box.js","webpack:///./js/foundation.util.imageLoader.js","webpack:///./js/foundation.util.keyboard.js","webpack:///./js/foundation.util.mediaQuery.js","webpack:///./js/foundation.util.motion.js","webpack:///./js/foundation.util.nest.js","webpack:///./js/foundation.util.timer.js","webpack:///./js/foundation.util.touch.js","webpack:///./js/foundation.util.triggers.js","webpack:///external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","addToJquery","$","rtl","CoreUtils","GetYoDigits","transitionend","RegExpEscape","onLoad","Box","onImagesLoaded","Keyboard","MediaQuery","Motion","Move","Nest","Timer","Touch","init","Triggers","_init","plugin","Abide","Accordion","AccordionMenu","Drilldown","Dropdown","DropdownMenu","Equalizer","Interchange","Magellan","OffCanvas","Orbit","ResponsiveMenu","ResponsiveToggle","Reveal","Slider","SmoothScroll","Sticky","Tabs","Toggler","Tooltip","ResponsiveAccordionTabs","element","options","$element","extend","defaults","data","isEnabled","formnovalidate","className","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","i","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","length","$el","attr","isGood","type","checked","opt","val","failedValidators","id","$error","siblings","formErrorSelector","parent","add","forEach","v","$label","closest","$els","labels","map","el","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","filter","addA11yErrorDescribe","$errors","$labels","first","elemId","label","end","errorId","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","removeAttr","removeData","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","required","split","validators","equalTo","goodToGo","message","dependentElements","_this","addErrorClasses","removeErrorClasses","trigger","acc","checkboxGroupName","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","minRequired","parseInt","clear","$form","opts","Plugin","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text","register","_isInitializing","$tabs","children","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","window","location","hash","$anchor","$link","isOwnAnchor","hasClass","_closeAllTabs","deepLinkSmudge","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","handleKey","next","$a","focus","multiExpand","previous","last","handled","$target","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","allowAllClosed","_closeTab","$activeContents","targetContentId","finish","slideDown","slideSpeed","slideUp","$activeTabs","stop","Feather","multiOpen","$menuLinks","$sub","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","eq","Math","max","min","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Burn","FOUNDATION_VERSION","version","_plugins","_uuids","name","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","unregisterPlugin","splice","reInit","plugins","isJQ","fns","plgs","p","foundation","object","Object","keys","err","reflow","addBack","option","trim","parseValue","er","getFnName","method","$noJS","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","navigator","userAgent","lastTime","callback","nextTime","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","_setup","getPluginName","_destroy","obj","namespace","chars","charsLength","floor","random","transitions","document","createElement","transition","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","$back","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","_show","closeOnClick","$body","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","height","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","GetDimensions","getBoundingClientRect","width","unwrap","$id","$anchors","_setCurrentAnchor","parentClass","$parent","$currentAnchor","position","match","horizontalPosition","alignment","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","body","$focusable","findFocusable","_addBodyHandler","trapFocus","releaseFocus","hide","Positionable","vOffset","hOffset","allowOverlap","allowBottomOverlap","subs","verticalClass","rightClass","Rtl","changed","parClass","handleClickFn","hasSub","hasClicked","clickOpen","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","functions","_isVertical","_isRtl","_removeBodyHandler","isItself","$sibs","ImNotTouchingYou","oldClass","$parentLi","$toClose","somethingToClose","$activeItem","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","imgs","tooSmall","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","get","groupsILength","lenJ","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","matchMedia","query","matches","path","types","warn","queries","SPECIAL_QUERIES","value","rulesList","join","nodeName","response","html","calcPoints","$targets","$links","$active","pageYOffset","documentElement","points","winHeight","round","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","threshold","targetPoint","deepLinking","scrollToLoc","_updateActive","onLoadListener","arrival","_deepLinkScroll","loc","_inTransition","newScrollPos","isScrollingUp","activeIdx","visibleLinks","$oldActive","activeHash","isNewActive","isNewHash","activeClass","pathname","search","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnRegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","atLeast","hasReveal","_","topVal","absoluteTopVal","stickyData","_addContentClasses","event","lastY","touches","pageY","delta","_canScroll","stopPropagation","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","duration","timerDelay","infinite","changeSlide","_setWrapperHeight","temp","counter","swipe","pauseOnHover","pause","navButtons","$controls","nextClass","prevClass","ltr","$slide","restart","show","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","animateIn","animateOut","isPaused","$oldBullet","$othersBullets","$newBullet","activeStateDescriptor","spans","spanCountInOthersBullets","toArray","b","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","MenuPlugins","tabs","cssClass","selectTab","accordion","storezfData","currentMq","currentRule","currentPlugin","rulesTree","ruleSize","rulePlugin","_getAllOptions","isEmptyObject","_checkMediaQueries","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","destroy","_changedZfMediaQueryHandler","matchedMq","_handleMarkup","toSet","fromString","$panels","tabsTitle","linkClass","tabsPanel","panelClass","$liHeads","$liHeadsA","display","visibility","appendTo","$tabsContent","$placeholder","tempValue","dropdown","drilldown","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","cached","mq","current","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","left","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","afterAnimation","_addGlobalClasses","focusableElements","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","hideDelay","_removeGlobalClasses","_enableScroll","resetOnClose","urlWithoutHash","title","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","handlePos","initialStart","moveTime","changedDelay","initVal","initialEnd","param","direction","eventOffset","pageX","barDim","windowScroll","scrollLeft","elemOffset","clientY","eventFromBar","barXY","offsetPct","_value","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","keyCode","clickSelect","draggable","addTouch","_$handle","oldValue","newValue","decrease","increase","decreaseFast","increaseFast","invertVertical","frac","num","dir","clickPos","abs","log","_linkClickListener","_handleLinkClick","$loc","$container","wasWrapped","container","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","pts","breaks","place","scrollListener","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","getComputedStyle","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","$tabTitles","linkActiveClass","matchHeight","_setHeight","anchorNoHash","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","which","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panel","toggler","Error","$trigger","controls","containsId","_updateARIA","undefined","isClick","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","$template","showOn","fadeIn","fadeInDuration","fadeOut","fadeOutDuration","isFocus","disableForTouch","touchCloseText","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","windowDims","sqrt","rect","parRect","parentNode","winRect","winY","winX","pageXOffset","parentDims","isOverflow","$eleDims","$anchorDims","leftVal","images","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","src","keyCodes","commands","sort","a","aTabIndex","bTabIndex","parseKey","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","getKeyCodes","component","commandList","cmds","command","zfIsKeyHandled","returnValue","unhandled","componentName","$firstFocusable","$lastFocusable","kcs","k","kc","styleMedia","media","script","getElementsByTagName","head","appendChild","insertBefore","currentStyle","matchMedium","styleSheet","cssText","textContent","isInitialized","self","$meta","extractedStyles","namedQueries","parseStyleToObject","_getCurrentSize","_watcher","_reInit","size","only","upTo","nextSize","parts","bpSize","bpModifier","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","newSize","currentSize","styleObject","reduce","ret","decodeURIComponent","isArray","initClasses","activeClasses","animation","anim","prog","move","ts","isIn","initClass","reset","offsetWidth","transitionDuration","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","firstItem","nameSpace","remain","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","dx","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","SpotSwipe","enabled","special","setup","tap","noop","setupSpotSwipe","setupTouchHandler","handleTouch","changedTouches","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","closeMeListener","pluginId","addClosemeListener","yetiBoxes","plugNames","listeners","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou"],"mappings":"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AAC2rB,aAAN,CAAoB8D,QAApB,EAA8BE,QAA9B;AACD;AAtB6B,SAAhC;AAwBA;AACN;AACA;AACA;AACK,OAnCD;AAoCD;AAED;AACF;AACA;;;;WACE,oBAAW;AACT,WAAK7E,OAAL,CAAa9vB,GAAb,CAAiB,YAAjB;AACA,WAAK6vB,MAAL,CAAY7vB,GAAZ,CAAgB,YAAhB;AACA,WAAKrB,QAAL,CAAcqB,GAAd,CAAkB,YAAlB;AAEA8R,kBAAY,CAAC,KAAKyH,OAAN,CAAZ;AACD;;;;EApiBkB7S,8D;;AAuiBrBxI,MAAM,CAACW,QAAP,GAAkB;AAChB;AACF;AACA;AACA;AACA;AACA;AACEmT,OAAK,EAAE,CAPS;;AAQhB;AACF;AACA;AACA;AACA;AACA;AACE7O,KAAG,EAAE,GAdW;;AAehB;AACF;AACA;AACA;AACA;AACA;AACEquB,MAAI,EAAE,CArBU;;AAsBhB;AACF;AACA;AACA;AACA;AACA;AACEgB,cAAY,EAAE,CA5BE;;AA6BhB;AACF;AACA;AACA;AACA;AACA;AACEI,YAAU,EAAE,GAnCI;;AAoChB;AACF;AACA;AACA;AACA;AACA;AACEvC,SAAO,EAAE,KA1CO;;AA2ChB;AACF;AACA;AACA;AACA;AACA;AACEiE,aAAW,EAAE,IAjDG;;AAkDhB;AACF;AACA;AACA;AACA;AACA;AACEpE,UAAQ,EAAE,KAxDM;;AAyDhB;AACF;AACA;AACA;AACA;AACA;AACEqE,WAAS,EAAE,IA/DK;;AAgEhB;AACF;AACA;AACA;AACA;AACA;AACEpE,UAAQ,EAAE,KAtEM;;AAuEhB;AACF;AACA;AACA;AACA;AACA;AACEI,aAAW,EAAE,KA7EG;;AA8EhB;AACF;AACA;AACE;;AACA;AACF;AACA;AACA;AACA;AACA;AACE2B,SAAO,EAAE,CAxFO;;AAyFhB;AACF;AACA;AACE;;AACA;AACF;AACA;AACA;AACA;AACA;AACEO,UAAQ,EAAE,GAnGM;AAmGF;;AACd;AACF;AACA;AACA;AACA;AACA;AACErC,eAAa,EAAE,UA1GC;;AA2GhB;AACF;AACA;AACA;AACA;AACA;AACE4E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D;;;;EA3RmBsM,qE;;AA8RtB1b,OAAO,CAACM,QAAR,GAAmB;AACjB;AACF;AACA;AACA;AACA;AACA;AACE2a,YAAU,EAAE,GAPK;;AAQjB;AACF;AACA;AACA;AACA;AACA;AACEuiB,gBAAc,EAAE,GAdC;;AAejB;AACF;AACA;AACA;AACA;AACA;AACEE,iBAAe,EAAE,GArBA;;AAsBjB;AACF;AACA;AACA;AACA;AACA;AACE9gB,cAAY,EAAE,KA5BG;;AA6BjB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEghB,iBAAe,EAAE,KArCA;;AAsCjB;AACF;AACA;AACA;AACA;AACA;AACET,iBAAe,EAAE,EA5CA;;AA6CjB;AACF;AACA;AACA;AACA;AACA;AACEC,cAAY,EAAE,SAnDG;;AAoDjB;AACF;AACA;AACA;AACA;AACA;AACEP,cAAY,EAAE,SA1DG;;AA2DjB;AACF;AACA;AACA;AACA;AACA;AACES,QAAM,EAAE,OAjES;;AAkEjB;AACF;AACA;AACA;AACA;AACA;AACEZ,UAAQ,EAAE,EAxEO;;AAyEjB;AACF;AACA;AACA;AACA;AACA;AACED,SAAO,EAAE,EA/EQ;AAgFjBoB,gBAAc,EAAE,eAhFC;;AAiFjB;AACF;AACA;AACA;AACA;AACA;AACErhB,WAAS,EAAE,IAvFM;;AAwFjB;AACF;AACA;AACA;AACA;AACA;AACEnC,UAAQ,EAAE,MA9FO;;AA+FjB;AACF;AACA;AACA;AACA;AACA;AACEG,WAAS,EAAE,MArGM;;AAsGjB;AACF;AACA;AACA;AACA;AACA;AACA;AACEqB,cAAY,EAAE,KA7GG;;AA8GjB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,oBAAkB,EAAE,KAvHH;;AAwHjB;AACF;AACA;AACA;AACA;AACA;AACEH,SAAO,EAAE,CA9HQ;;AA+HjB;AACF;AACA;AACA;AACA;AACA;AACEC,SAAO,EAAE,CArIQ;;AAsIjB;AACF;AACA;AACA;AACA;AACA;AACEshB,eAAa,EAAE,EA5IE;;AA6IjB;AACF;AACA;AACA;AACA;AACA;AACE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","file":"foundation.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n\n    if ($formError.filter(':visible').length) {\n      this.addA11yErrorDescribe($el, $formError);\n    }\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    if (!$errors.length) return;\n\n    let $error = $errors.filter(':visible').first();\n    if ($error.length) {\n      this.addA11yErrorDescribe($el, $error);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  addA11yErrorDescribe($el, $error) {\n    if (typeof $el.attr('aria-describedby') !== 'undefined') return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    // Get the first error ID or create one\n    let errorId = $error.attr('id');\n    if (typeof errorId === 'undefined') {\n      errorId = GetYoDigits(6, 'abide-error');\n      $error.attr('id', errorId);\n    }\n\n    $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n    if ($el.data('abide-describedby')) {\n      $el.removeAttr('aria-describedby').removeData('abide-describedby');\n    }\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length) {\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n    $elem.parent().closest('ul').removeClass('invisible');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat($handle.attr('aria-valuenow')),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          const firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
index ee3a7f37c173a4be1c969723006437ed22ae824b..e155d330a9bf21b05bd0f0f15333c733cec5b618 100644 (file)
@@ -1,2 +1,2 @@
-!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("jquery"));else if("function"==typeof define&&define.amd)define(["jquery"],e);else{var n,i="object"==typeof exports?e(require("jquery")):e(t.jQuery);for(n in i)("object"==typeof exports?exports:t)[n]=i[n]}}(window,function(n){return i={"./js/entries/foundation.js":function(t,e,n){"use strict";n.r(e);var i=n("jquery"),i=n.n(i),o=n("./js/foundation.core.js");n.d(e,"Foundation",function(){return o.Foundation});var s=n("./js/foundation.core.utils.js");n.d(e,"CoreUtils",function(){return s});var r=n("./js/foundation.util.box.js");n.d(e,"Box",function(){return r.Box});var a=n("./js/foundation.util.imageLoader.js");n.d(e,"onImagesLoaded",function(){return a.onImagesLoaded});var l=n("./js/foundation.util.keyboard.js");n.d(e,"Keyboard",function(){return l.Keyboard});var u=n("./js/foundation.util.mediaQuery.js");n.d(e,"MediaQuery",function(){return u.MediaQuery});var c=n("./js/foundation.util.motion.js");n.d(e,"Motion",function(){return c.Motion});var f=n("./js/foundation.util.nest.js");n.d(e,"Nest",function(){return f.Nest});var d=n("./js/foundation.util.timer.js");n.d(e,"Timer",function(){return d.Timer});var h=n("./js/foundation.util.touch.js");n.d(e,"Touch",function(){return h.Touch});var p=n("./js/foundation.util.triggers.js");n.d(e,"Triggers",function(){return p.Triggers});var m=n("./js/foundation.abide.js");n.d(e,"Abide",function(){return m.Abide});var g=n("./js/foundation.accordion.js");n.d(e,"Accordion",function(){return g.Accordion});var v=n("./js/foundation.accordionMenu.js");n.d(e,"AccordionMenu",function(){return v.AccordionMenu});var y=n("./js/foundation.drilldown.js");n.d(e,"Drilldown",function(){return y.Drilldown});var b=n("./js/foundation.dropdown.js");n.d(e,"Dropdown",function(){return b.Dropdown});var w=n("./js/foundation.dropdownMenu.js");n.d(e,"DropdownMenu",function(){return w.DropdownMenu});var _=n("./js/foundation.equalizer.js");n.d(e,"Equalizer",function(){return _.Equalizer});var $=n("./js/foundation.interchange.js");n.d(e,"Interchange",function(){return $.Interchange});var k=n("./js/foundation.magellan.js");n.d(e,"Magellan",function(){return k.Magellan});var j=n("./js/foundation.offcanvas.js");n.d(e,"OffCanvas",function(){return j.OffCanvas});var O=n("./js/foundation.orbit.js");n.d(e,"Orbit",function(){return O.Orbit});var C=n("./js/foundation.responsiveMenu.js");n.d(e,"ResponsiveMenu",function(){return C.ResponsiveMenu});var z=n("./js/foundation.responsiveToggle.js");n.d(e,"ResponsiveToggle",function(){return z.ResponsiveToggle});var T=n("./js/foundation.reveal.js");n.d(e,"Reveal",function(){return T.Reveal});var S=n("./js/foundation.slider.js");n.d(e,"Slider",function(){return S.Slider});var R=n("./js/foundation.smoothScroll.js");n.d(e,"SmoothScroll",function(){return R.SmoothScroll});var E=n("./js/foundation.sticky.js");n.d(e,"Sticky",function(){return E.Sticky});var x=n("./js/foundation.tabs.js");n.d(e,"Tabs",function(){return x.Tabs});var P=n("./js/foundation.toggler.js");n.d(e,"Toggler",function(){return P.Toggler});var A=n("./js/foundation.tooltip.js");n.d(e,"Tooltip",function(){return A.Tooltip});var L=n("./js/foundation.responsiveAccordionTabs.js");n.d(e,"ResponsiveAccordionTabs",function(){return L.ResponsiveAccordionTabs}),o.Foundation.addToJquery(i.a),o.Foundation.rtl=s.rtl,o.Foundation.GetYoDigits=s.GetYoDigits,o.Foundation.transitionend=s.transitionend,o.Foundation.RegExpEscape=s.RegExpEscape,o.Foundation.onLoad=s.onLoad,o.Foundation.Box=r.Box,o.Foundation.onImagesLoaded=a.onImagesLoaded,o.Foundation.Keyboard=l.Keyboard,o.Foundation.MediaQuery=u.MediaQuery,o.Foundation.Motion=c.Motion,o.Foundation.Move=c.Move,o.Foundation.Nest=f.Nest,o.Foundation.Timer=d.Timer,h.Touch.init(i.a),p.Triggers.init(i.a,o.Foundation),u.MediaQuery._init(),o.Foundation.plugin(m.Abide,"Abide"),o.Foundation.plugin(g.Accordion,"Accordion"),o.Foundation.plugin(v.AccordionMenu,"AccordionMenu"),o.Foundation.plugin(y.Drilldown,"Drilldown"),o.Foundation.plugin(b.Dropdown,"Dropdown"),o.Foundation.plugin(w.DropdownMenu,"DropdownMenu"),o.Foundation.plugin(_.Equalizer,"Equalizer"),o.Foundation.plugin($.Interchange,"Interchange"),o.Foundation.plugin(k.Magellan,"Magellan"),o.Foundation.plugin(j.OffCanvas,"OffCanvas"),o.Foundation.plugin(O.Orbit,"Orbit"),o.Foundation.plugin(C.ResponsiveMenu,"ResponsiveMenu"),o.Foundation.plugin(z.ResponsiveToggle,"ResponsiveToggle"),o.Foundation.plugin(T.Reveal,"Reveal"),o.Foundation.plugin(S.Slider,"Slider"),o.Foundation.plugin(R.SmoothScroll,"SmoothScroll"),o.Foundation.plugin(E.Sticky,"Sticky"),o.Foundation.plugin(x.Tabs,"Tabs"),o.Foundation.plugin(P.Toggler,"Toggler"),o.Foundation.plugin(A.Tooltip,"Tooltip"),o.Foundation.plugin(L.ResponsiveAccordionTabs,"ResponsiveAccordionTabs"),e.default=o.Foundation},"./js/foundation.abide.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Abide",function(){return i});var e=n("jquery"),c=n.n(e),s=n("./js/foundation.core.plugin.js"),r=n("./js/foundation.core.utils.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=f(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=f(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(o,s["Plugin"]);var t,e,n,i=u(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.$element=t,this.options=c.a.extend(!0,{},o.defaults,this.$element.data(),e),this.isEnabled=!0,this.formnovalidate=null,this.className="Abide",this._init()}},{key:"_init",value:function(){var n=this;this.$inputs=c.a.merge(this.$element.find("input").not('[type="submit"]'),this.$element.find("textarea, select")),this.$submits=this.$element.find('[type="submit"]');var t=this.$element.find("[data-abide-error]");this.options.a11yAttributes&&(this.$inputs.each(function(t,e){return n.addA11yAttributes(c()(e))}),t.each(function(t,e){return n.addGlobalErrorA11yAttributes(c()(e))})),this._events()}},{key:"_events",value:function(){var e=this;this.$element.off(".abide").on("reset.zf.abide",function(){e.resetForm()}).on("submit.zf.abide",function(){return e.validateForm()}),this.$submits.off("click.zf.abide keydown.zf.abide").on("click.zf.abide keydown.zf.abide",function(t){t.key&&" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),e.formnovalidate=null!==t.target.getAttribute("formnovalidate"),e.$element.submit())}),"fieldChange"===this.options.validateOn&&this.$inputs.off("change.zf.abide").on("change.zf.abide",function(t){e.validateInput(c()(t.target))}),this.options.liveValidate&&this.$inputs.off("input.zf.abide").on("input.zf.abide",function(t){e.validateInput(c()(t.target))}),this.options.validateOnBlur&&this.$inputs.off("blur.zf.abide").on("blur.zf.abide",function(t){e.validateInput(c()(t.target))})}},{key:"_reflow",value:function(){this._init()}},{key:"_validationIsDisabled",value:function(){return!1===this.isEnabled||("boolean"==typeof this.formnovalidate?this.formnovalidate:!!this.$submits.length&&null!==this.$submits[0].getAttribute("formnovalidate"))}},{key:"enableValidation",value:function(){this.isEnabled=!0}},{key:"disableValidation",value:function(){this.isEnabled=!1}},{key:"requiredCheck",value:function(t){if(!t.attr("required"))return!0;var e=!0;switch(t[0].type){case"checkbox":e=t[0].checked;break;case"select":case"select-one":case"select-multiple":var n=t.find("option:selected");n.length&&n.val()||(e=!1);break;default:t.val()&&t.val().length||(e=!1)}return e}},{key:"findFormError",value:function(e,t){var n=this,i=e.length?e[0].id:"",o=e.siblings(this.options.formErrorSelector);return o.length||(o=e.parent().find(this.options.formErrorSelector)),i&&(o=o.add(this.$element.find('[data-form-error-for="'.concat(i,'"]')))),t&&(o=o.not("[data-form-error-on]"),t.forEach(function(t){o=(o=o.add(e.siblings('[data-form-error-on="'.concat(t,'"]')))).add(n.$element.find('[data-form-error-for="'.concat(i,'"][data-form-error-on="').concat(t,'"]')))})),o}},{key:"findLabel",value:function(t){var e=t[0].id,e=this.$element.find('label[for="'.concat(e,'"]'));return e.length?e:t.closest("label")}},{key:"findRadioLabels",value:function(t){var i=this,t=t.map(function(t,e){var n=e.id,n=i.$element.find('label[for="'.concat(n,'"]'));return(n=!n.length?c()(e).closest("label"):n)[0]});return c()(t)}},{key:"findCheckboxLabels",value:function(t){var i=this,t=t.map(function(t,e){var n=e.id,n=i.$element.find('label[for="'.concat(n,'"]'));return(n=!n.length?c()(e).closest("label"):n)[0]});return c()(t)}},{key:"addErrorClasses",value:function(t,e){var n=this.findLabel(t),e=this.findFormError(t,e);n.length&&n.addClass(this.options.labelErrorClass),e.length&&e.addClass(this.options.formErrorClass),t.addClass(this.options.inputErrorClass).attr({"data-invalid":"","aria-invalid":!0})}},{key:"addA11yAttributes",value:function(t){var e,n,i=this.findFormError(t),o=i.filter("label"),s=i.first();i.length&&(void 0===t.attr("aria-describedby")&&(void 0===(e=s.attr("id"))&&(e=Object(r.GetYoDigits)(6,"abide-error"),s.attr("id",e)),t.attr("aria-describedby",e)),o.filter("[for]").length<o.length&&(void 0===(n=t.attr("id"))&&(n=Object(r.GetYoDigits)(6,"abide-input"),t.attr("id",n)),o.each(function(t,e){e=c()(e);void 0===e.attr("for")&&e.attr("for",n)})),i.each(function(t,e){e=c()(e);void 0===e.attr("role")&&e.attr("role","alert")}).end())}},{key:"addGlobalErrorA11yAttributes",value:function(t){void 0===t.attr("aria-live")&&t.attr("aria-live",this.options.a11yErrorLevel)}},{key:"removeRadioErrorClasses",value:function(t){var e=this.$element.find(':radio[name="'.concat(t,'"]')),n=this.findRadioLabels(e),t=this.findFormError(e);n.length&&n.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeCheckboxErrorClasses",value:function(t){var e=this.$element.find(':checkbox[name="'.concat(t,'"]')),n=this.findCheckboxLabels(e),t=this.findFormError(e);n.length&&n.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeErrorClasses",value:function(t){if("radio"===t[0].type)return this.removeRadioErrorClasses(t.attr("name"));if("checkbox"===t[0].type)return this.removeCheckboxErrorClasses(t.attr("name"));var e=this.findLabel(t),n=this.findFormError(t);e.length&&e.removeClass(this.options.labelErrorClass),n.length&&n.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"validateInput",value:function(e){var n,i=this,t=this.requiredCheck(e),o=e.attr("data-validator"),s=[],r=!0;if(this._validationIsDisabled())return!0;if(e.is("[data-abide-ignore]")||e.is('[type="hidden"]')||e.is("[disabled]"))return!0;switch(e[0].type){case"radio":this.validateRadio(e.attr("name"))||s.push("required");break;case"checkbox":this.validateCheckbox(e.attr("name"))||s.push("required"),r=!1;break;case"select":case"select-one":case"select-multiple":t||s.push("required");break;default:t||s.push("required"),this.validateText(e)||s.push("pattern")}o&&(n=!!e.attr("required"),o.split(" ").forEach(function(t){i.options.validators[t](e,n,e.parent())||s.push(t)})),e.attr("data-equalto")&&(this.options.validators.equalTo(e)||s.push("equalTo"));var a,l=0===s.length,u=(l?"valid":"invalid")+".zf.abide";return!l||(o=this.$element.find('[data-equalto="'.concat(e.attr("id"),'"]'))).length&&(a=this,o.each(function(){c()(this).val()&&a.validateInput(c()(this))})),r&&(l?this.removeErrorClasses(e):this.addErrorClasses(e,s)),e.trigger(u,[e]),l}},{key:"validateForm",value:function(){var t,n=this,e=[],i=this;if(this.initialized||(this.initialized=!0),this._validationIsDisabled())return!(this.formnovalidate=null);this.$inputs.each(function(){if("checkbox"===c()(this)[0].type){if(c()(this).attr("name")===t)return!0;t=c()(this).attr("name")}e.push(i.validateInput(c()(this)))});var o=-1===e.indexOf(!1);return this.$element.find("[data-abide-error]").each(function(t,e){e=c()(e);n.options.a11yAttributes&&n.addGlobalErrorA11yAttributes(e),e.css("display",o?"none":"block")}),this.$element.trigger((o?"formvalid":"forminvalid")+".zf.abide",[this.$element]),o}},{key:"validateText",value:function(t,e){e=e||t.attr("data-pattern")||t.attr("pattern")||t.attr("type");var n=t.val(),i=!0;return n.length&&(this.options.patterns.hasOwnProperty(e)?i=this.options.patterns[e].test(n):e!==t.attr("type")&&(i=new RegExp(e).test(n))),i}},{key:"validateRadio",value:function(t){var t=this.$element.find(':radio[name="'.concat(t,'"]')),n=!1,i=!1;return t.each(function(t,e){c()(e).attr("required")&&(i=!0)}),(n=!i?!0:n)||t.each(function(t,e){c()(e).prop("checked")&&(n=!0)}),n}},{key:"validateCheckbox",value:function(t){var n=this,t=this.$element.find(':checkbox[name="'.concat(t,'"]')),i=!1,o=!1,s=1,r=0;return t.each(function(t,e){c()(e).attr("required")&&(o=!0)}),(i=!o?!0:i)||(t.each(function(t,e){c()(e).prop("checked")&&r++,void 0!==c()(e).attr("data-min-required")&&(s=parseInt(c()(e).attr("data-min-required"),10))}),s<=r&&(i=!0)),!0!==this.initialized&&1<s||(t.each(function(t,e){i?n.removeErrorClasses(c()(e)):n.addErrorClasses(c()(e),["required"])}),i)}},{key:"matchValidation",value:function(e,t,n){var i=this;return n=!!n,-1===t.split(" ").map(function(t){return i.options.validators[t](e,n,e.parent())}).indexOf(!1)}},{key:"resetForm",value:function(){var t=this.$element,e=this.options;c()(".".concat(e.labelErrorClass),t).not("small").removeClass(e.labelErrorClass),c()(".".concat(e.inputErrorClass),t).not("small").removeClass(e.inputErrorClass),c()("".concat(e.formErrorSelector,".").concat(e.formErrorClass)).removeClass(e.formErrorClass),t.find("[data-abide-error]").css("display","none"),c()(":input",t).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").attr({"data-invalid":null,"aria-invalid":null}),c()(":input:radio",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),c()(":input:checkbox",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),t.trigger("formreset.zf.abide",[t])}},{key:"_destroy",value:function(){var t=this;this.$element.off(".abide").find("[data-abide-error]").css("display","none"),this.$inputs.off(".abide").each(function(){t.removeErrorClasses(c()(this))}),this.$submits.off(".abide")}}])&&a(t.prototype,e),n&&a(t,n),o}();i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",a11yAttributes:!0,a11yErrorLevel:"assertive",liveValidate:!1,validateOnBlur:!1,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,website:{test:function(t){return i.defaults.patterns.domain.test(t)||i.defaults.patterns.url.test(t)}}},validators:{equalTo:function(t){return c()("#".concat(t.attr("data-equalto"))).val()===t.val()}}}},"./js/foundation.accordion.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Accordion",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.keyboard.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,r["Plugin"]);var t,e,n,i=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Accordion",this._init(),l.Keyboard.register("Accordion",{ENTER:"toggle",SPACE:"toggle",ARROW_DOWN:"next",ARROW_UP:"previous",HOME:"first",END:"last"})}},{key:"_init",value:function(){var n=this;this._isInitializing=!0,this.$tabs=this.$element.children("[data-accordion-item]"),this.$tabs.each(function(t,e){var n=s()(e),i=n.children("[data-tab-content]"),o=i[0].id||Object(a.GetYoDigits)(6,"accordion"),e=e.id?"".concat(e.id,"-label"):"".concat(o,"-label");n.find("a:first").attr({"aria-controls":o,id:e,"aria-expanded":!1}),i.attr({role:"region","aria-labelledby":e,"aria-hidden":!0,id:o})});var t=this.$element.find(".is-active").children("[data-tab-content]");t.length&&(this._initialAnchor=t.prev("a").attr("href"),this._openSingleTab(t)),this._checkDeepLink=function(){var t=window.location.hash;if(!t.length){if(n._isInitializing)return;n._initialAnchor&&(t=n._initialAnchor)}var e=t&&s()(t),t=t&&n.$element.find('[href$="'.concat(t,'"]'));!e.length||!t.length||(e&&t&&t.length?t.parent("[data-accordion-item]").hasClass("is-active")||n._openSingleTab(e):n._closeAllTabs(),n.options.deepLinkSmudge&&Object(a.onLoad)(s()(window),function(){var t=n.$element.offset();s()("html, body").animate({scrollTop:t.top-n.options.deepLinkSmudgeOffset},n.options.deepLinkSmudgeDelay)}),n.$element.trigger("deeplink.zf.accordion",[t,e]))},this.options.deepLink&&this._checkDeepLink(),this._events(),this._isInitializing=!1}},{key:"_events",value:function(){var i=this;this.$tabs.each(function(){var e=s()(this),n=e.children("[data-tab-content]");n.length&&e.children("a").off("click.zf.accordion keydown.zf.accordion").on("click.zf.accordion",function(t){t.preventDefault(),i.toggle(n)}).on("keydown.zf.accordion",function(t){l.Keyboard.handleKey(t,"Accordion",{toggle:function(){i.toggle(n)},next:function(){var t=e.next().find("a").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},previous:function(){var t=e.prev().find("a").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},first:function(){var t=i.$tabs.first().find(".accordion-title").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},last:function(){var t=i.$tabs.last().find(".accordion-title").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},handled:function(){t.preventDefault()}})})}),this.options.deepLink&&s()(window).on("hashchange",this._checkDeepLink)}},{key:"toggle",value:function(t){t.closest("[data-accordion]").is("[disabled]")?console.info("Cannot toggle an accordion that is disabled."):(t.parent().hasClass("is-active")?this.up(t):this.down(t),this.options.deepLink&&(t=t.prev("a").attr("href"),this.options.updateHistory?history.pushState({},"",t):history.replaceState({},"",t)))}},{key:"down",value:function(t){t.closest("[data-accordion]").is("[disabled]")?console.info("Cannot call down on an accordion that is disabled."):this.options.multiExpand?this._openTab(t):this._openSingleTab(t)}},{key:"up",value:function(t){var e;this.$element.is("[disabled]")?console.info("Cannot call up on an accordion that is disabled."):(e=t.parent()).hasClass("is-active")&&(e=e.siblings(),(this.options.allowAllClosed||e.hasClass("is-active"))&&this._closeTab(t))}},{key:"_openSingleTab",value:function(t){var e=this.$element.children(".is-active").children("[data-tab-content]");e.length&&this._closeTab(e.not(t)),this._openTab(t)}},{key:"_openTab",value:function(t){var e=this,n=t.parent(),i=t.attr("aria-labelledby");t.attr("aria-hidden",!1),n.addClass("is-active"),s()("#".concat(i)).attr({"aria-expanded":!0}),t.finish().slideDown(this.options.slideSpeed,function(){e.$element.trigger("down.zf.accordion",[t])})}},{key:"_closeTab",value:function(t){var e=this,n=t.parent(),i=t.attr("aria-labelledby");t.attr("aria-hidden",!0),n.removeClass("is-active"),s()("#".concat(i)).attr({"aria-expanded":!1}),t.finish().slideUp(this.options.slideSpeed,function(){e.$element.trigger("up.zf.accordion",[t])})}},{key:"_closeAllTabs",value:function(){var t=this.$element.children(".is-active").children("[data-tab-content]");t.length&&this._closeTab(t)}},{key:"_destroy",value:function(){this.$element.find("[data-tab-content]").stop(!0).slideUp(0).css("display",""),this.$element.find("a").off(".zf.accordion"),this.options.deepLink&&s()(window).off("hashchange",this._checkDeepLink)}}])&&u(t.prototype,e),n&&u(t,n),o}();i.defaults={slideSpeed:250,multiExpand:!1,allowAllClosed:!1,deepLink:!1,deepLinkSmudge:!1,deepLinkSmudgeDelay:300,deepLinkSmudgeOffset:0,updateHistory:!1}},"./js/foundation.accordionMenu.js":function(t,e,n){"use strict";n.r(e),n.d(e,"AccordionMenu",function(){return i});var e=n("jquery"),a=n.n(e),l=n("./js/foundation.util.keyboard.js"),r=n("./js/foundation.util.nest.js"),u=n("./js/foundation.core.utils.js"),s=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="AccordionMenu",this._init(),l.Keyboard.register("AccordionMenu",{ENTER:"toggle",SPACE:"toggle",ARROW_RIGHT:"open",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"close",ESCAPE:"closeAll"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"accordion");var s=this;this.$element.find("[data-submenu]").not(".is-active").slideUp(0),this.$element.attr({"aria-multiselectable":this.options.multiOpen}),this.$menuLinks=this.$element.find(".is-accordion-submenu-parent"),this.$menuLinks.each(function(){var t=this.id||Object(u.GetYoDigits)(6,"acc-menu-link"),e=a()(this),n=e.children("[data-submenu]"),i=n[0].id||Object(u.GetYoDigits)(6,"acc-menu"),o=n.hasClass("is-active");s.options.parentLink&&e.children("a").clone().prependTo(n).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-accordion-submenu-item"></li>'),s.options.submenuToggle?(e.addClass("has-submenu-toggle"),e.children("a").after('<button id="'+t+'" class="submenu-toggle" aria-controls="'+i+'" aria-expanded="'+o+'" title="'+s.options.submenuToggleText+'"><span class="submenu-toggle-text">'+s.options.submenuToggleText+"</span></button>")):e.attr({"aria-controls":i,"aria-expanded":o,id:t}),n.attr({"aria-labelledby":t,"aria-hidden":!o,role:"group",id:i})});var t=this.$element.find(".is-active");t.length&&t.each(function(){s.down(a()(this))}),this._events()}},{key:"_events",value:function(){var r=this;this.$element.find("li").each(function(){var e=a()(this).children("[data-submenu]");e.length&&(r.options.submenuToggle?a()(this).children(".submenu-toggle").off("click.zf.accordionMenu").on("click.zf.accordionMenu",function(){r.toggle(e)}):a()(this).children("a").off("click.zf.accordionMenu").on("click.zf.accordionMenu",function(t){t.preventDefault(),r.toggle(e)}))}).on("keydown.zf.accordionMenu",function(e){var n,i,o=a()(this),s=o.parent("ul").children("li"),t=o.children("[data-submenu]");s.each(function(t){a()(this).is(o)&&(n=s.eq(Math.max(0,t-1)).find("a").first(),i=s.eq(Math.min(t+1,s.length-1)).find("a").first(),a()(this).children("[data-submenu]:visible").length&&(i=o.find("li:first-child").find("a").first()),a()(this).is(":first-child")?n=o.parents("li").first().find("a").first():n.parents("li").first().children("[data-submenu]:visible").length&&(n=n.parents("li").find("li:last-child").find("a").first()),a()(this).is(":last-child")&&(i=o.parents("li").first().next("li").find("a").first()))}),l.Keyboard.handleKey(e,"AccordionMenu",{open:function(){t.is(":hidden")&&(r.down(t),t.find("li").first().find("a").first().focus())},close:function(){t.length&&!t.is(":hidden")?r.up(t):o.parent("[data-submenu]").length&&(r.up(o.parent("[data-submenu]")),o.parents("li").first().find("a").first().focus())},up:function(){return n.focus(),!0},down:function(){return i.focus(),!0},toggle:function(){return!r.options.submenuToggle&&(o.children("[data-submenu]").length?(r.toggle(o.children("[data-submenu]")),!0):void 0)},closeAll:function(){r.hideAll()},handled:function(t){t&&e.preventDefault()}})})}},{key:"hideAll",value:function(){this.up(this.$element.find("[data-submenu]"))}},{key:"showAll",value:function(){this.down(this.$element.find("[data-submenu]"))}},{key:"toggle",value:function(t){t.is(":animated")||(t.is(":hidden")?this.down(t):this.up(t))}},{key:"down",value:function(t){var e,n=this;this.options.multiOpen||(e=t.parentsUntil(this.$element).add(t).add(t.find(".is-active")),e=this.$element.find(".is-active").not(e),this.up(e)),t.addClass("is-active").attr({"aria-hidden":!1}),(this.options.submenuToggle?t.prev(".submenu-toggle"):t.parent(".is-accordion-submenu-parent")).attr({"aria-expanded":!0}),t.slideDown(this.options.slideSpeed,function(){n.$element.trigger("down.zf.accordionMenu",[t])})}},{key:"up",value:function(t){var e=this,n=t.find("[data-submenu]"),i=t.add(n);n.slideUp(0),i.removeClass("is-active").attr("aria-hidden",!0),(this.options.submenuToggle?i.prev(".submenu-toggle"):i.parent(".is-accordion-submenu-parent")).attr("aria-expanded",!1),t.slideUp(this.options.slideSpeed,function(){e.$element.trigger("up.zf.accordionMenu",[t])})}},{key:"_destroy",value:function(){this.$element.find("[data-submenu]").slideDown(0).css("display",""),this.$element.find("a").off("click.zf.accordionMenu"),this.$element.find("[data-is-parent-link]").detach(),this.options.submenuToggle&&(this.$element.find(".has-submenu-toggle").removeClass("has-submenu-toggle"),this.$element.find(".submenu-toggle").remove()),r.Nest.Burn(this.$element,"accordion")}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={parentLink:!1,slideSpeed:250,submenuToggle:!1,submenuToggleText:"Toggle menu",multiOpen:!0}},"./js/foundation.core.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Foundation",function(){return l});var e=n("jquery"),s=n.n(e),i=n("./js/foundation.core.utils.js"),r=n("./js/foundation.util.mediaQuery.js");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var l={version:"6.7.4",_plugins:{},_uuids:[],plugin:function(t,e){var n=e||u(t),e=o(n);this._plugins[e]=this[n]=t},registerPlugin:function(t,e){e=e?o(e):u(t.constructor).toLowerCase();t.uuid=Object(i.GetYoDigits)(6,e),t.$element.attr("data-".concat(e))||t.$element.attr("data-".concat(e),t.uuid),t.$element.data("zfPlugin")||t.$element.data("zfPlugin",t),t.$element.trigger("init.zf.".concat(e)),this._uuids.push(t.uuid)},unregisterPlugin:function(t){var e,n=o(u(t.$element.data("zfPlugin").constructor));for(e in this._uuids.splice(this._uuids.indexOf(t.uuid),1),t.$element.removeAttr("data-".concat(n)).removeData("zfPlugin").trigger("destroyed.zf.".concat(n)),t)"function"==typeof t[e]&&(t[e]=null)},reInit:function(t){var e,n,i=t instanceof s.a;try{i?t.each(function(){s()(this).data("zfPlugin")._init()}):(e=a(t),n=this,{object:function(t){t.forEach(function(t){t=o(t),s()("[data-"+t+"]").foundation("_init")})},string:function(){t=o(t),s()("[data-"+t+"]").foundation("_init")},undefined:function(){this.object(Object.keys(n._plugins))}}[e](t))}catch(t){console.error(t)}finally{return t}},reflow:function(i,t){void 0===t?t=Object.keys(this._plugins):"string"==typeof t&&(t=[t]);var o=this;s.a.each(t,function(t,e){var n=o._plugins[e];s()(i).find("[data-"+e+"]").addBack("[data-"+e+"]").filter(function(){return void 0===s()(this).data("zfPlugin")}).each(function(){var t=s()(this),e={reflow:!0};t.attr("data-options")&&t.attr("data-options").split(";").forEach(function(t){t=t.split(":").map(function(t){return t.trim()});t[0]&&(e[t[0]]=function(t){{if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(+t))return parseFloat(t)}return t}(t[1]))});try{t.data("zfPlugin",new n(s()(this),e))}catch(t){console.error(t)}finally{return}})})},getFnName:u,addToJquery:function(){return s.a.fn.foundation=function(n){var t=a(n),e=s()(".no-js");if(e.length&&e.removeClass("no-js"),"undefined"===t)r.MediaQuery._init(),l.reflow(this);else{if("string"!==t)throw new TypeError("We're sorry, ".concat(t," is not a valid parameter. You must use a string representing the method you wish to invoke."));var i=Array.prototype.slice.call(arguments,1),o=this.data("zfPlugin");if(void 0===o||void 0===o[n])throw new ReferenceError("We're sorry, '"+n+"' is not an available method for "+(o?u(o):"this element")+".");1===this.length?o[n].apply(o,i):this.each(function(t,e){o[n].apply(s()(e).data("zfPlugin"),i)})}return this},s.a}};function u(t){if(void 0!==Function.prototype.name)return(void 0===t.prototype?t:t.prototype).constructor.name;t=/function\s([^(]{1,})\(/.exec(t.toString());return t&&1<t.length?t[1].trim():""}function o(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}l.util={throttle:function(n,i){var o=null;return function(){var t=this,e=arguments;null===o&&(o=setTimeout(function(){n.apply(t,e),o=null},i))}}},window.Foundation=l,function(){Date.now&&window.Date.now||(window.Date.now=Date.now=function(){return(new Date).getTime()});for(var i,t=["webkit","moz"],e=0;e<t.length&&!window.requestAnimationFrame;++e){var n=t[e];window.requestAnimationFrame=window[n+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n+"CancelAnimationFrame"]||window[n+"CancelRequestAnimationFrame"]}!/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)&&window.requestAnimationFrame&&window.cancelAnimationFrame||(i=0,window.requestAnimationFrame=function(t){var e=Date.now(),n=Math.max(i+16,e);return setTimeout(function(){t(i=n)},n-e)},window.cancelAnimationFrame=clearTimeout),window.performance&&window.performance.now||(window.performance={start:Date.now(),now:function(){return Date.now()-this.start}})}(),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function e(){return i.apply(this instanceof o?this:t,n.concat(Array.prototype.slice.call(arguments)))}var n=Array.prototype.slice.call(arguments,1),i=this,o=function(){};return this.prototype&&(o.prototype=this.prototype),e.prototype=new o,e})},"./js/foundation.core.plugin.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Plugin",function(){return i});var o=n("./js/foundation.core.utils.js");function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}var i=function(){function n(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this._setup(t,e);e=r(this);this.uuid=Object(o.GetYoDigits)(6,e),this.$element.attr("data-".concat(e))||this.$element.attr("data-".concat(e),this.uuid),this.$element.data("zfPlugin")||this.$element.data("zfPlugin",this),this.$element.trigger("init.zf.".concat(e))}var t,e,i;return t=n,(e=[{key:"destroy",value:function(){this._destroy();var t,e=r(this);for(t in this.$element.removeAttr("data-".concat(e)).removeData("zfPlugin").trigger("destroyed.zf.".concat(e)),this)this.hasOwnProperty(t)&&(this[t]=null)}}])&&s(t.prototype,e),i&&s(t,i),n}();function r(t){return t.className.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}},"./js/foundation.core.utils.js":function(t,e,n){"use strict";n.r(e),n.d(e,"rtl",function(){return i}),n.d(e,"GetYoDigits",function(){return o}),n.d(e,"RegExpEscape",function(){return s}),n.d(e,"transitionend",function(){return r}),n.d(e,"onLoad",function(){return a}),n.d(e,"ignoreMousedisappear",function(){return u});var e=n("jquery"),l=n.n(e);function i(){return"rtl"===l()("html").attr("dir")}function o(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e=1<arguments.length?arguments[1]:void 0,n="",i="0123456789abcdefghijklmnopqrstuvwxyz",o=i.length,s=0;s<t;s++)n+=i[Math.floor(Math.random()*o)];return e?"".concat(n,"-").concat(e):n}function s(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function r(t){var e,n,i={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},o=document.createElement("div");for(n in i)void 0!==o.style[n]&&(e=i[n]);return e||(setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}function a(t,e){function n(){return t.triggerHandler(o)}var i="complete"===document.readyState,o=(i?"_didLoad":"load")+".zf.util.onLoad";return t&&(e&&t.one(o,e),i?setTimeout(n):l()(window).one("load",n)),o}function u(s){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=t.ignoreLeaveWindow,r=void 0!==e&&e,t=t.ignoreReappear,a=void 0!==t&&t;return function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var o=s.bind.apply(s,[this,e].concat(n));if(null!==e.relatedTarget)return o();setTimeout(function(){return r||!document.hasFocus||document.hasFocus()?void(a||l()(document).one("mouseenter",function(t){l()(e.currentTarget).has(t.target).length||(e.relatedTarget=t.target,o())})):o()},0)}}},"./js/foundation.drilldown.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Drilldown",function(){return i});var e=n("jquery"),r=n.n(e),a=n("./js/foundation.util.keyboard.js"),s=n("./js/foundation.util.nest.js"),l=n("./js/foundation.core.utils.js"),u=n("./js/foundation.util.box.js"),c=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,c["Plugin"]);var t,e,n,i=h(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=r.a.extend({},o.defaults,this.$element.data(),e),this.className="Drilldown",this._init(),a.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){s.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({"aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var t=r()(this),e=t.parent();n.options.parentLink&&t.clone().prependTo(e.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="none"></li>'),t.data("savedHref",t.attr("href")).removeAttr("href").attr("tabindex",0),t.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(t)}),this.$submenus.each(function(){var t=r()(this);if(!t.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":t.append(n.options.backButton);break;case"top":t.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(t)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=r()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(t){var e;r()(t.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&t.preventDefault(),i._show(n.parent("li")),i.options.closeOnClick&&(e=r()("body")).off(".zf.drilldown").on("click.zf.drilldown",function(t){t.target===i.$element[0]||r.a.contains(i.$element[0],t.target)||(t.preventDefault(),i._hideAll(),e.off(".zf.drilldown"))})})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var t=this,e=""!==t.options.scrollTopElement?r()(t.options.scrollTopElement):t.$element,e=parseInt(e.offset().top+t.options.scrollTopOffset,10);r()("html, body").stop(!0).animate({scrollTop:e},t.options.animationDuration,t.options.animationEasing,function(){this===r()("html")[0]&&t.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var t=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(e){var n,i,o=r()(this),s=o.parent("li").parent("ul").children("li").children("a");s.each(function(t){r()(this).is(o)&&(n=s.eq(Math.max(0,t-1)),i=s.eq(Math.min(t+1,s.length-1)))}),a.Keyboard.handleKey(e,"Drilldown",{next:function(){if(o.is(t.$submenuAnchors))return t._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return t._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(t.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(t.$element.find("> li:last-child > a"))},close:function(){o.is(t.$element.find("> li > a"))||(t._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!t.options.parentLink||!o.attr("href"))&&(o.is(t.$menuItems)?o.is(t.$submenuAnchors)?(t._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(t._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(t){t&&e.preventDefault()}})})}},{key:"_hideAll",value:function(){var t,e=this,n=this.$element.find(".is-drilldown-submenu.is-active");n.addClass("is-closing"),this.options.autoHeight&&(t=n.parent().closest("ul").data("calcHeight"),this.$wrapper.css({height:t})),this.$element.trigger("close.zf.drilldown"),n.one(Object(l.transitionend)(n),function(){n.removeClass("is-active is-closing"),e.$element.trigger("closed.zf.drilldown")})}},{key:"_back",value:function(e){var n=this;e.off("click.zf.drilldown"),e.children(".js-drilldown-back").on("click.zf.drilldown",function(){n._hide(e);var t=e.parent("li").parent("ul").parent("li");t.length?n._show(t):n.$currentMenu=n.$element})}},{key:"_menuLinkEvents",value:function(){var t=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(){setTimeout(function(){t._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(t,e){t.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),t.parent("li").attr("aria-expanded",!0),!0===e&&this.$element.trigger("open.zf.drilldown",[t])}},{key:"_setHideSubMenuClasses",value:function(t,e){t.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),t.parent("li").attr("aria-expanded",!1),!0===e&&t.trigger("hide.zf.drilldown",[t])}},{key:"_showMenu",value:function(e,n){var i=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(){i._setHideSubMenuClasses(r()(this))}),(this.$currentMenu=e).is("[data-drilldown]"))return!0===n&&e.find("li > a").first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",e.data("calcHeight")));var o=e.children().first().parentsUntil("[data-drilldown]","[data-submenu]");o.each(function(t){0===t&&i.options.autoHeight&&i.$wrapper.css("height",r()(this).data("calcHeight"));t=t===o.length-1;!0==t&&r()(this).one(Object(l.transitionend)(r()(this)),function(){!0===n&&e.find("li > a").first().focus()}),i._setShowSubMenuClasses(r()(this),t)})}},{key:"_show",value:function(t){var e=t.children("[data-submenu]");t.attr("aria-expanded",!0),this.$currentMenu=e,t.parent().closest("ul").addClass("invisible"),e.addClass("is-active visible").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:e.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[t])}},{key:"_hide",value:function(t){this.options.autoHeight&&this.$wrapper.css({height:t.parent().closest("ul").data("calcHeight")}),t.parent().closest("ul").removeClass("invisible"),t.parent("li").attr("aria-expanded",!1),t.attr("aria-hidden",!0),t.addClass("is-closing").one(Object(l.transitionend)(t),function(){t.removeClass("is-active is-closing visible"),t.blur().addClass("invisible")}),t.trigger("hide.zf.drilldown",[t])}},{key:"_getMaxDims",value:function(){var e=0,t={},n=this;return this.$submenus.add(this.$element).each(function(){var t=u.Box.GetDimensions(this).height;e=e<t?t:e,n.options.autoHeight&&r()(this).data("calcHeight",t)}),this.options.autoHeight?t.height=this.$currentMenu.data("calcHeight"):t["min-height"]="".concat(e,"px"),t["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),t}},{key:"_destroy",value:function(){r()("body").off(".zf.drilldown"),this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),s.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").off("transitionend otransitionend webkitTransitionEnd").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){r()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var t=r()(this);t.removeAttr("tabindex"),t.data("savedHref")&&t.attr("href",t.data("savedHref")).removeData("savedHref")})}}])&&f(t.prototype,e),n&&f(t,n),o}();i.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},"./js/foundation.dropdown.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Dropdown",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.keyboard.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.positionable.js"),u=n("./js/foundation.util.triggers.js"),c=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e,n){return(d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){t=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=m(t)););return t}(t,e);if(t){e=Object.getOwnPropertyDescriptor(t,e);return e.get?e.get.call(n):e.value}})(t,e,n||t)}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(o,l["Positionable"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Dropdown",c.Touch.init(s.a),u.Triggers.init(s.a),this._init(),r.Keyboard.register("Dropdown",{ENTER:"toggle",SPACE:"toggle",ESCAPE:"close"})}},{key:"_init",value:function(){var t=this.$element.attr("id");this.$anchors=s()('[data-toggle="'.concat(t,'"]')).length?s()('[data-toggle="'.concat(t,'"]')):s()('[data-open="'.concat(t,'"]')),this.$anchors.attr({"aria-controls":t,"data-is-focus":!1,"data-yeti-box":t,"aria-haspopup":!0,"aria-expanded":!1}),this._setCurrentAnchor(this.$anchors.first()),this.options.parentClass?this.$parent=this.$element.parents("."+this.options.parentClass):this.$parent=null,void 0===this.$element.attr("aria-labelledby")&&(void 0===this.$currentAnchor.attr("id")&&this.$currentAnchor.attr("id",Object(a.GetYoDigits)(6,"dd-anchor")),this.$element.attr("aria-labelledby",this.$currentAnchor.attr("id"))),this.$element.attr({"aria-hidden":"true","data-yeti-box":t,"data-resize":t}),d(m(o.prototype),"_init",this).call(this),this._events()}},{key:"_getDefaultPosition",value:function(){var t=this.$element[0].className.match(/(top|left|right|bottom)/g);return t?t[0]:"bottom"}},{key:"_getDefaultAlignment",value:function(){var t=/float-(\S+)/.exec(this.$currentAnchor.attr("class"));return t?t[1]:d(m(o.prototype),"_getDefaultAlignment",this).call(this)}},{key:"_setPosition",value:function(){this.$element.removeClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment)),d(m(o.prototype),"_setPosition",this).call(this,this.$currentAnchor,this.$element,this.$parent),this.$element.addClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment))}},{key:"_setCurrentAnchor",value:function(t){this.$currentAnchor=s()(t)}},{key:"_events",value:function(){var n=this,e="ontouchstart"in window||void 0!==window.ontouchstart;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":this._setPosition.bind(this)}),this.$anchors.off("click.zf.trigger").on("click.zf.trigger",function(t){n._setCurrentAnchor(this),(!1===n.options.forceFollow||e&&n.options.hover&&!1===n.$element.hasClass("is-open"))&&t.preventDefault()}),this.options.hover&&(this.$anchors.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){n._setCurrentAnchor(this);var t=s()("body").data();void 0!==t.whatinput&&"mouse"!==t.whatinput||(clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.open(),n.$anchors.data("hover",!0)},n.options.hoverDelay))}).on("mouseleave.zf.dropdown",Object(a.ignoreMousedisappear)(function(){clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.close(),n.$anchors.data("hover",!1)},n.options.hoverDelay)})),this.options.hoverPane&&this.$element.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){clearTimeout(n.timeout)}).on("mouseleave.zf.dropdown",Object(a.ignoreMousedisappear)(function(){clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.close(),n.$anchors.data("hover",!1)},n.options.hoverDelay)}))),this.$anchors.add(this.$element).on("keydown.zf.dropdown",function(t){var e=s()(this);r.Keyboard.handleKey(t,"Dropdown",{open:function(){e.is(n.$anchors)&&!e.is("input, textarea")&&(n.open(),n.$element.attr("tabindex",-1).focus(),t.preventDefault())},close:function(){n.close(),n.$anchors.focus()}})})}},{key:"_addBodyHandler",value:function(){var e=s()(document.body).not(this.$element),n=this;e.off("click.zf.dropdown tap.zf.dropdown").on("click.zf.dropdown tap.zf.dropdown",function(t){n.$anchors.is(t.target)||n.$anchors.find(t.target).length||n.$element.is(t.target)||n.$element.find(t.target).length||(n.close(),e.off("click.zf.dropdown tap.zf.dropdown"))})}},{key:"open",value:function(){var t;this.$element.trigger("closeme.zf.dropdown",this.$element.attr("id")),this.$anchors.addClass("hover").attr({"aria-expanded":!0}),this.$element.addClass("is-opening"),this._setPosition(),this.$element.removeClass("is-opening").addClass("is-open").attr({"aria-hidden":!1}),!this.options.autoFocus||(t=r.Keyboard.findFocusable(this.$element)).length&&t.eq(0).focus(),this.options.closeOnClick&&this._addBodyHandler(),this.options.trapFocus&&r.Keyboard.trapFocus(this.$element),this.$element.trigger("show.zf.dropdown",[this.$element])}},{key:"close",value:function(){if(!this.$element.hasClass("is-open"))return!1;this.$element.removeClass("is-open").attr({"aria-hidden":!0}),this.$anchors.removeClass("hover").attr("aria-expanded",!1),this.$element.trigger("hide.zf.dropdown",[this.$element]),this.options.trapFocus&&r.Keyboard.releaseFocus(this.$element)}},{key:"toggle",value:function(){this.$element.hasClass("is-open")?this.$anchors.data("hover")||this.close():this.open()}},{key:"_destroy",value:function(){this.$element.off(".zf.trigger").hide(),this.$anchors.off(".zf.dropdown"),s()(document.body).off("click.zf.dropdown tap.zf.dropdown")}}])&&f(t.prototype,e),n&&f(t,n),o}();i.defaults={parentClass:null,hoverDelay:250,hover:!1,hoverPane:!1,vOffset:0,hOffset:0,position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,trapFocus:!1,autoFocus:!1,closeOnClick:!1,forceFollow:!0}},"./js/foundation.dropdownMenu.js":function(t,e,n){"use strict";n.r(e),n.d(e,"DropdownMenu",function(){return i});var e=n("jquery"),d=n.n(e),s=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),h=n("./js/foundation.util.keyboard.js"),r=n("./js/foundation.util.nest.js"),l=n("./js/foundation.util.box.js"),u=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=d.a.extend({},o.defaults,this.$element.data(),e),this.className="DropdownMenu",u.Touch.init(d.a),this._init(),h.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"dropdown");var t=this.$element.find("li.is-dropdown-submenu-parent");this.$element.children(".is-dropdown-submenu-parent").children(".is-dropdown-submenu").addClass("first-sub"),this.$menuItems=this.$element.find('li[role="none"]'),this.$tabs=this.$element.children('li[role="none"]'),this.$tabs.find("ul.is-dropdown-submenu").addClass(this.options.verticalClass),"auto"===this.options.alignment?this.$element.hasClass(this.options.rightClass)||Object(a.rtl)()||this.$element.parents(".top-bar-right").is("*")?(this.options.alignment="right",t.addClass("opens-left")):(this.options.alignment="left",t.addClass("opens-right")):"right"===this.options.alignment?t.addClass("opens-left"):t.addClass("opens-right"),this.changed=!1,this._events()}},{key:"_isVertical",value:function(){return"block"===this.$tabs.css("display")||"column"===this.$element.css("flex-direction")}},{key:"_isRtl",value:function(){return this.$element.hasClass("align-right")||Object(a.rtl)()&&!this.$element.hasClass("align-left")}},{key:"_events",value:function(){var f=this,s="ontouchstart"in window||void 0!==window.ontouchstart,r="is-dropdown-submenu-parent";(this.options.clickOpen||s)&&this.$menuItems.on("click.zf.dropdownMenu touchstart.zf.dropdownMenu",function(t){var e=d()(t.target).parentsUntil("ul",".".concat(r)),n=e.hasClass(r),i="true"===e.attr("data-is-click"),o=e.children(".is-dropdown-submenu");n&&(i?!f.options.closeOnClick||!f.options.clickOpen&&!s||f.options.forceFollow&&s||(t.stopImmediatePropagation(),t.preventDefault(),f._hide(e)):(t.stopImmediatePropagation(),t.preventDefault(),f._show(o),e.add(e.parentsUntil(f.$element,".".concat(r))).attr("data-is-click",!0)))}),f.options.closeOnClickInside&&this.$menuItems.on("click.zf.dropdownMenu",function(){d()(this).hasClass(r)||f._hide()}),s&&this.options.disableHoverOnTouch&&(this.options.disableHover=!0),this.options.disableHover||this.$menuItems.on("mouseenter.zf.dropdownMenu",function(){var t=d()(this);t.hasClass(r)&&(clearTimeout(t.data("_delay")),t.data("_delay",setTimeout(function(){f._show(t.children(".is-dropdown-submenu"))},f.options.hoverDelay)))}).on("mouseleave.zf.dropdownMenu",Object(a.ignoreMousedisappear)(function(){var t=d()(this);if(t.hasClass(r)&&f.options.autoclose){if("true"===t.attr("data-is-click")&&f.options.clickOpen)return!1;clearTimeout(t.data("_delay")),t.data("_delay",setTimeout(function(){f._hide(t)},f.options.closingTime))}})),this.$menuItems.on("keydown.zf.dropdownMenu",function(e){var n,i,o=d()(e.target).parentsUntil("ul",'[role="none"]'),t=-1<f.$tabs.index(o),s=t?f.$tabs:o.siblings("li").add(o);s.each(function(t){d()(this).is(o)&&(n=s.eq(t-1),i=s.eq(t+1))});function r(){i.children("a:first").focus(),e.preventDefault()}function a(){n.children("a:first").focus(),e.preventDefault()}function l(){var t=o.children("ul.is-dropdown-submenu");t.length&&(f._show(t),o.find("li > a:first").focus(),e.preventDefault())}function u(){var t=o.parent("ul").parent("li");t.children("a:first").focus(),f._hide(t),e.preventDefault()}var c={open:l,close:function(){f._hide(f.$element),f.$menuItems.eq(0).children("a").focus(),e.preventDefault()}};t?f._isVertical()?f._isRtl()?d.a.extend(c,{down:r,up:a,next:u,previous:l}):d.a.extend(c,{down:r,up:a,next:l,previous:u}):f._isRtl()?d.a.extend(c,{next:a,previous:r,down:l,up:u}):d.a.extend(c,{next:r,previous:a,down:l,up:u}):f._isRtl()?d.a.extend(c,{next:u,previous:l,down:r,up:a}):d.a.extend(c,{next:l,previous:u,down:r,up:a}),h.Keyboard.handleKey(e,"DropdownMenu",c)})}},{key:"_addBodyHandler",value:function(){var e=this,t=d()(document.body);this._removeBodyHandler(),t.on("click.zf.dropdownMenu tap.zf.dropdownMenu",function(t){!d()(t.target).closest(e.$element).length&&(e._hide(),e._removeBodyHandler())})}},{key:"_removeBodyHandler",value:function(){d()(document.body).off("click.zf.dropdownMenu tap.zf.dropdownMenu")}},{key:"_show",value:function(n){var t=this.$tabs.index(this.$tabs.filter(function(t,e){return 0<d()(e).find(n).length})),e=n.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent");this._hide(e,t),n.css("visibility","hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active"),l.Box.ImNotTouchingYou(n,null,!0)||(e="left"===this.options.alignment?"-right":"-left",(t=n.parent(".is-dropdown-submenu-parent")).removeClass("opens".concat(e)).addClass("opens-".concat(this.options.alignment)),l.Box.ImNotTouchingYou(n,null,!0)||t.removeClass("opens-".concat(this.options.alignment)).addClass("opens-inner"),this.changed=!0),n.css("visibility",""),this.options.closeOnClick&&this._addBodyHandler(),this.$element.trigger("show.zf.dropdownMenu",[n])}},{key:"_hide",value:function(t,e){var n,i=t&&t.length?t:void 0!==e?this.$tabs.not(function(t){return t===e}):this.$element;(i.hasClass("is-active")||0<i.find(".is-active").length)&&((n=i.find("li.is-active")).add(i).attr({"data-is-click":!1}).removeClass("is-active"),i.find("ul.js-dropdown-active").removeClass("js-dropdown-active"),(this.changed||i.find("opens-inner").length)&&(t="left"===this.options.alignment?"right":"left",i.find("li.is-dropdown-submenu-parent").add(i).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(t)),this.changed=!1),clearTimeout(n.data("_delay")),this._removeBodyHandler(),this.$element.trigger("hide.zf.dropdownMenu",[i]))}},{key:"_destroy",value:function(){this.$menuItems.off(".zf.dropdownMenu").removeAttr("data-is-click").removeClass("is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner"),d()(document.body).off(".zf.dropdownMenu"),r.Nest.Burn(this.$element,"dropdown")}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={disableHover:!1,disableHoverOnTouch:!0,autoclose:!0,hoverDelay:50,clickOpen:!1,closingTime:500,alignment:"auto",closeOnClick:!0,closeOnClickInside:!0,verticalClass:"vertical",rightClass:"align-right",forceFollow:!0}},"./js/foundation.equalizer.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Equalizer",function(){return i});var e=n("jquery"),c=n.n(e),s=n("./js/foundation.util.mediaQuery.js"),r=n("./js/foundation.util.imageLoader.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,l["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=c.a.extend({},o.defaults,this.$element.data(),e),this.className="Equalizer",this._init()}},{key:"_init",value:function(){var t=this.$element.attr("data-equalizer")||"",e=this.$element.find('[data-equalizer-watch="'.concat(t,'"]'));s.MediaQuery._init(),this.$watched=e.length?e:this.$element.find("[data-equalizer-watch]"),this.$element.attr("data-resize",t||Object(a.GetYoDigits)(6,"eq")),this.$element.attr("data-mutate",t||Object(a.GetYoDigits)(6,"eq")),this.hasNested=0<this.$element.find("[data-equalizer]").length,this.isNested=0<this.$element.parentsUntil(document.body,"[data-equalizer]").length,this.isOn=!1,this._bindHandler={onResizeMeBound:this._onResizeMe.bind(this),onPostEqualizedBound:this._onPostEqualized.bind(this)};var n,t=this.$element.find("img");this.options.equalizeOn?(n=this._checkMQ(),c()(window).on("changed.zf.mediaquery",this._checkMQ.bind(this))):this._events(),(void 0!==n&&!1===n||void 0===n)&&(t.length?Object(r.onImagesLoaded)(t,this._reflow.bind(this)):this._reflow())}},{key:"_pauseEvents",value:function(){this.isOn=!1,this.$element.off({".zf.equalizer":this._bindHandler.onPostEqualizedBound,"resizeme.zf.trigger":this._bindHandler.onResizeMeBound,"mutateme.zf.trigger":this._bindHandler.onResizeMeBound})}},{key:"_onResizeMe",value:function(){this._reflow()}},{key:"_onPostEqualized",value:function(t){t.target!==this.$element[0]&&this._reflow()}},{key:"_events",value:function(){this._pauseEvents(),this.hasNested?this.$element.on("postequalized.zf.equalizer",this._bindHandler.onPostEqualizedBound):(this.$element.on("resizeme.zf.trigger",this._bindHandler.onResizeMeBound),this.$element.on("mutateme.zf.trigger",this._bindHandler.onResizeMeBound)),this.isOn=!0}},{key:"_checkMQ",value:function(){var t=!s.MediaQuery.is(this.options.equalizeOn);return t?this.isOn&&(this._pauseEvents(),this.$watched.css("height","auto")):this.isOn||this._events(),t}},{key:"_killswitch",value:function(){}},{key:"_reflow",value:function(){if(!this.options.equalizeOnStack&&this._isStacked())return this.$watched.css("height","auto"),!1;this.options.equalizeByRow?this.getHeightsByRow(this.applyHeightByRow.bind(this)):this.getHeights(this.applyHeight.bind(this))}},{key:"_isStacked",value:function(){return!this.$watched[0]||!this.$watched[1]||this.$watched[0].getBoundingClientRect().top!==this.$watched[1].getBoundingClientRect().top}},{key:"getHeights",value:function(t){for(var e=[],n=0,i=this.$watched.length;n<i;n++)this.$watched[n].style.height="auto",e.push(this.$watched[n].offsetHeight);t(e)}},{key:"getHeightsByRow",value:function(t){var e=this.$watched.length?this.$watched.first().offset().top:0,n=[],i=0;n[i]=[];for(var o=0,s=this.$watched.length;o<s;o++){this.$watched[o].style.height="auto";var r=c()(this.$watched[o]).offset().top;r!==e&&(n[++i]=[],e=r),n[i].push([this.$watched[o],this.$watched[o].offsetHeight])}for(var a=0,l=n.length;a<l;a++){var u=c()(n[a]).map(function(){return this[1]}).get(),u=Math.max.apply(null,u);n[a].push(u)}t(n)}},{key:"applyHeight",value:function(t){t=Math.max.apply(null,t);this.$element.trigger("preequalized.zf.equalizer"),this.$watched.css("height",t),this.$element.trigger("postequalized.zf.equalizer")}},{key:"applyHeightByRow",value:function(t){this.$element.trigger("preequalized.zf.equalizer");for(var e=0,n=t.length;e<n;e++){var i=t[e].length,o=t[e][i-1];if(i<=2)c()(t[e][0][0]).css({height:"auto"});else{this.$element.trigger("preequalizedrow.zf.equalizer");for(var s=0,r=i-1;s<r;s++)c()(t[e][s][0]).css({height:o});this.$element.trigger("postequalizedrow.zf.equalizer")}}this.$element.trigger("postequalized.zf.equalizer")}},{key:"_destroy",value:function(){this._pauseEvents(),this.$watched.css("height","auto")}}])&&u(t.prototype,e),n&&u(t,n),o}();i.defaults={equalizeOnStack:!1,equalizeByRow:!1,equalizeOn:""}},"./js/foundation.interchange.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Interchange",function(){return i});var e=n("jquery"),o=n.n(e),r=n("./js/foundation.util.mediaQuery.js"),a=n("./js/foundation.core.plugin.js"),l=n("./js/foundation.core.utils.js"),u=n("./js/foundation.util.triggers.js");function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(s,a["Plugin"]);var t,e,n,i=d(s);function s(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),i.apply(this,arguments)}return t=s,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=o.a.extend({},s.defaults,this.$element.data(),e),this.rules=[],this.currentPath="",this.className="Interchange",u.Triggers.init(o.a),this._init(),this._events()}},{key:"_init",value:function(){r.MediaQuery._init();var t=this.$element[0].id||Object(l.GetYoDigits)(6,"interchange");this.$element.attr({"data-resize":t,id:t}),this._parseOptions(),this._addBreakpoints(),this._generateRules(),this._reflow()}},{key:"_events",value:function(){var t=this;this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(){return t._reflow()})}},{key:"_reflow",value:function(){var t,e,n;for(e in this.rules)this.rules.hasOwnProperty(e)&&(n=this.rules[e],window.matchMedia(n.query).matches&&(t=n));t&&this.replace(t.path)}},{key:"_parseOptions",value:function(){void 0===this.options.type?this.options.type="auto":-1===["auto","src","background","html"].indexOf(this.options.type)&&(console.warn('Warning: invalid value "'.concat(this.options.type,'" for Interchange option "type"')),this.options.type="auto")}},{key:"_addBreakpoints",value:function(){for(var t in r.MediaQuery.queries)r.MediaQuery.queries.hasOwnProperty(t)&&(t=r.MediaQuery.queries[t],s.SPECIAL_QUERIES[t.name]=t.value)}},{key:"_generateRules",value:function(){var t,e,n,i=[],o=this.options.rules||this.$element.data("interchange");for(t in o="string"==typeof o?o.match(/\[.*?, .*?\]/g):o)o.hasOwnProperty(t)&&(e=(n=o[t].slice(1,-1).split(", ")).slice(0,-1).join(""),n=n[n.length-1],s.SPECIAL_QUERIES[n]&&(n=s.SPECIAL_QUERIES[n]),i.push({path:e,query:n}));this.rules=i}},{key:"replace",value:function(e){var n,t,i=this;this.currentPath!==e&&(n="replaced.zf.interchange","src"===(t="auto"===(t=this.options.type)?"IMG"===this.$element[0].nodeName?"src":e.match(/\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i)?"background":"html":t)?this.$element.attr("src",e).on("load",function(){i.currentPath=e}).trigger(n):"background"===t?(e=e.replace(/\(/g,"%28").replace(/\)/g,"%29"),this.$element.css({"background-image":"url("+e+")"}).trigger(n)):"html"===t&&o.a.get(e,function(t){i.$element.html(t).trigger(n),o()(t).foundation(),i.currentPath=e}))}},{key:"_destroy",value:function(){this.$element.off("resizeme.zf.trigger")}}])&&c(t.prototype,e),n&&c(t,n),s}();i.defaults={rules:null,type:"auto"},i.SPECIAL_QUERIES={landscape:"screen and (orientation: landscape)",portrait:"screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)"}},"./js/foundation.magellan.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Magellan",function(){return i});var e=n("jquery"),a=n.n(e),s=n("./js/foundation.core.plugin.js"),r=n("./js/foundation.core.utils.js"),l=n("./js/foundation.smoothScroll.js"),u=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="Magellan",u.Triggers.init(a.a),this._init(),this.calcPoints()}},{key:"_init",value:function(){var t=this.$element[0].id||Object(r.GetYoDigits)(6,"magellan");this.$targets=a()("[data-magellan-target]"),this.$links=this.$element.find("a"),this.$element.attr({"data-resize":t,"data-scroll":t,id:t}),this.$active=a()(),this.scrollPos=parseInt(window.pageYOffset,10),this._events()}},{key:"calcPoints",value:function(){var n=this,t=document.body,e=document.documentElement;this.points=[],this.winHeight=Math.round(Math.max(window.innerHeight,e.clientHeight)),this.docHeight=Math.round(Math.max(t.scrollHeight,t.offsetHeight,e.clientHeight,e.scrollHeight,e.offsetHeight)),this.$targets.each(function(){var t=a()(this),e=Math.round(t.offset().top-n.options.threshold);t.targetPoint=e,n.points.push(e)})}},{key:"_events",value:function(){var e=this;a()(window).one("load",function(){e.options.deepLinking&&location.hash&&e.scrollToLoc(location.hash),e.calcPoints(),e._updateActive()}),e.onLoadListener=Object(r.onLoad)(a()(window),function(){e.$element.on({"resizeme.zf.trigger":e.reflow.bind(e),"scrollme.zf.trigger":e._updateActive.bind(e)}).on("click.zf.magellan",'a[href^="#"]',function(t){t.preventDefault();t=this.getAttribute("href");e.scrollToLoc(t)})}),this._deepLinkScroll=function(){e.options.deepLinking&&e.scrollToLoc(window.location.hash)},a()(window).on("hashchange",this._deepLinkScroll)}},{key:"scrollToLoc",value:function(t){this._inTransition=!0;var e=this,n={animationEasing:this.options.animationEasing,animationDuration:this.options.animationDuration,threshold:this.options.threshold,offset:this.options.offset};l.SmoothScroll.scrollToLoc(t,n,function(){e._inTransition=!1})}},{key:"reflow",value:function(){this.calcPoints(),this._updateActive()}},{key:"_updateActive",value:function(){var e,n,t,i,o,s,r=this;this._inTransition||(e=parseInt(window.pageYOffset,10),n=this.scrollPos>e,(this.scrollPos=e)<this.points[0]-this.options.offset-(n?this.options.threshold:0)||(s=e+this.winHeight===this.docHeight?this.points.length-1:(o=this.points.filter(function(t){return t-r.options.offset-(n?r.options.threshold:0)<=e})).length?o.length-1:0),t=this.$active,i="",void 0!==s?(this.$active=this.$links.filter('[href="#'+this.$targets.eq(s).data("magellan-target")+'"]'),this.$active.length&&(i=this.$active[0].getAttribute("href"))):this.$active=a()(),o=!(!this.$active.length&&!t.length||this.$active.is(t)),s=i!==window.location.hash,o&&(t.removeClass(this.options.activeClass),this.$active.addClass(this.options.activeClass)),this.options.deepLinking&&s&&(window.history.pushState?(s=i||window.location.pathname+window.location.search,this.options.updateHistory?window.history.pushState({},"",s):window.history.replaceState({},"",s)):window.location.hash=i),o&&this.$element.trigger("update.zf.magellan",[this.$active]))}},{key:"_destroy",value:function(){var t;this.$element.off(".zf.trigger .zf.magellan").find(".".concat(this.options.activeClass)).removeClass(this.options.activeClass),this.options.deepLinking&&(t=this.$active[0].getAttribute("href"),window.location.hash.replace(t,"")),a()(window).off("hashchange",this._deepLinkScroll),this.onLoadListener&&a()(window).off(this.onLoadListener)}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={animationDuration:500,animationEasing:"linear",threshold:50,activeClass:"is-active",deepLinking:!1,updateHistory:!1,offset:0}},"./js/foundation.offcanvas.js":function(t,e,n){"use strict";n.r(e),n.d(e,"OffCanvas",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.keyboard.js"),u=n("./js/foundation.util.mediaQuery.js"),c=n("./js/foundation.util.triggers.js");function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=o(n);return function(t,e){{if(e&&("object"===f(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=o(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(o,r["Plugin"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){var n=this;this.className="OffCanvas",this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.contentClasses={base:[],reveal:[]},this.$lastTrigger=s()(),this.$triggers=s()(),this.position="left",this.$content=s()(),this.nested=!!this.options.nested,this.$sticky=s()(),this.isInCanvas=!1,s()(["push","overlap"]).each(function(t,e){n.contentClasses.base.push("has-transition-"+e)}),s()(["left","right","top","bottom"]).each(function(t,e){n.contentClasses.base.push("has-position-"+e),n.contentClasses.reveal.push("has-reveal-"+e)}),c.Triggers.init(s.a),u.MediaQuery._init(),this._init(),this._events(),l.Keyboard.register("OffCanvas",{ESCAPE:"close"})}},{key:"_init",value:function(){var t=this.$element.attr("id");this.$element.attr("aria-hidden","true"),this.options.contentId?this.$content=s()("#"+this.options.contentId):this.$element.siblings("[data-off-canvas-content]").length?this.$content=this.$element.siblings("[data-off-canvas-content]").first():this.$content=this.$element.closest("[data-off-canvas-content]").first(),this.options.contentId?this.options.contentId&&null===this.options.nested&&console.warn("Remember to use the nested option if using the content ID option!"):this.nested=0===this.$element.siblings("[data-off-canvas-content]").length,!0===this.nested&&(this.options.transition="overlap",this.$element.removeClass("is-transition-push")),this.$element.addClass("is-transition-".concat(this.options.transition," is-closed")),this.$triggers=s()(document).find('[data-open="'+t+'"], [data-close="'+t+'"], [data-toggle="'+t+'"]').attr("aria-expanded","false").attr("aria-controls",t),this.position=this.$element.is(".position-left, .position-top, .position-right, .position-bottom")?this.$element.attr("class").match(/position\-(left|top|right|bottom)/)[1]:this.position,!0===this.options.contentOverlay&&(t=document.createElement("div"),e="fixed"===s()(this.$element).css("position")?"is-overlay-fixed":"is-overlay-absolute",t.setAttribute("class","js-off-canvas-overlay "+e),this.$overlay=s()(t),"is-overlay-fixed"==e?s()(this.$overlay).insertAfter(this.$element):this.$content.append(this.$overlay));var e=new RegExp(Object(a.RegExpEscape)(this.options.revealClass)+"([^\\s]+)","g").exec(this.$element[0].className);e&&(this.options.isRevealed=!0,this.options.revealOn=this.options.revealOn||e[1]),!0===this.options.isRevealed&&this.options.revealOn&&(this.$element.first().addClass("".concat(this.options.revealClass).concat(this.options.revealOn)),this._setMQChecker()),this.options.transitionTime&&this.$element.css("transition-duration",this.options.transitionTime),this.$sticky=this.$content.find("[data-off-canvas-sticky]"),0<this.$sticky.length&&"push"===this.options.transition&&(this.options.contentScroll=!1);e=this.$element.attr("class").match(/\bin-canvas-for-(\w+)/);e&&2===e.length?this.options.inCanvasOn=e[1]:this.options.inCanvasOn&&this.$element.addClass("in-canvas-for-".concat(this.options.inCanvasOn)),this.options.inCanvasOn&&this._checkInCanvas(),this._removeContentClasses()}},{key:"_events",value:function(){var t=this;this.$element.off(".zf.trigger .zf.offCanvas").on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"keydown.zf.offCanvas":this._handleKeyboard.bind(this)}),!0===this.options.closeOnClick&&(this.options.contentOverlay?this.$overlay:this.$content).on({"click.zf.offCanvas":this.close.bind(this)}),this.options.inCanvasOn&&s()(window).on("changed.zf.mediaquery",function(){t._checkInCanvas()})}},{key:"_setMQChecker",value:function(){var t=this;this.onLoadListener=Object(a.onLoad)(s()(window),function(){u.MediaQuery.atLeast(t.options.revealOn)&&t.reveal(!0)}),s()(window).on("changed.zf.mediaquery",function(){u.MediaQuery.atLeast(t.options.revealOn)?t.reveal(!0):t.reveal(!1)})}},{key:"_checkInCanvas",value:function(){this.isInCanvas=u.MediaQuery.atLeast(this.options.inCanvasOn),!0===this.isInCanvas&&this.close()}},{key:"_removeContentClasses",value:function(t){"boolean"!=typeof t?this.$content.removeClass(this.contentClasses.base.join(" ")):!1===t&&this.$content.removeClass("has-reveal-".concat(this.position))}},{key:"_addContentClasses",value:function(t){this._removeContentClasses(t),"boolean"!=typeof t?this.$content.addClass("has-transition-".concat(this.options.transition," has-position-").concat(this.position)):!0===t&&this.$content.addClass("has-reveal-".concat(this.position))}},{key:"_fixStickyElements",value:function(){this.$sticky.each(function(t,e){var n=s()(e);"fixed"===n.css("position")&&(e=parseInt(n.css("top"),10),n.data("offCanvasSticky",{top:e}),e=s()(document).scrollTop()+e,n.css({top:"".concat(e,"px"),width:"100%",transition:"none"}))})}},{key:"_unfixStickyElements",value:function(){this.$sticky.each(function(t,e){var n=s()(e),e=n.data("offCanvasSticky");"object"===f(e)&&(n.css({top:"".concat(e.top,"px"),width:"",transition:""}),n.data("offCanvasSticky",""))})}},{key:"reveal",value:function(t){t?(this.close(),this.isRevealed=!0,this.$element.attr("aria-hidden","false"),this.$element.off("open.zf.trigger toggle.zf.trigger"),this.$element.removeClass("is-closed")):(this.isRevealed=!1,this.$element.attr("aria-hidden","true"),this.$element.off("open.zf.trigger toggle.zf.trigger").on({"open.zf.trigger":this.open.bind(this),"toggle.zf.trigger":this.toggle.bind(this)}),this.$element.addClass("is-closed")),this._addContentClasses(t)}},{key:"_stopScrolling",value:function(){return!1}},{key:"_recordScrollable",value:function(t){this.lastY=t.touches[0].pageY}},{key:"_preventDefaultAtEdges",value:function(t){var e=t.data,n=this.lastY-t.touches[0].pageY;this.lastY=t.touches[0].pageY,e._canScroll(n,this)||t.preventDefault()}},{key:"_scrollboxTouchMoved",value:function(t){var e=t.data,n=this.closest("[data-off-canvas], [data-off-canvas-scrollbox-outer]"),i=this.lastY-t.touches[0].pageY;n.lastY=this.lastY=t.touches[0].pageY,t.stopPropagation(),e._canScroll(i,this)||(e._canScroll(i,n)?n.scrollTop+=i:t.preventDefault())}},{key:"_canScroll",value:function(t,e){var n=0<e.scrollTop,e=e.scrollTop<e.scrollHeight-e.clientHeight;return t<0&&n||0<t&&e}},{key:"open",value:function(t,e){var n,i=this;this.$element.hasClass("is-open")||this.isRevealed||this.isInCanvas||(n=this,e&&(this.$lastTrigger=e),"top"===this.options.forceTo?window.scrollTo(0,0):"bottom"===this.options.forceTo&&window.scrollTo(0,document.body.scrollHeight),this.options.transitionTime&&"overlap"!==this.options.transition?this.$element.siblings("[data-off-canvas-content]").css("transition-duration",this.options.transitionTime):this.$element.siblings("[data-off-canvas-content]").css("transition-duration",""),this.$element.addClass("is-open").removeClass("is-closed"),this.$triggers.attr("aria-expanded","true"),this.$element.attr("aria-hidden","false"),this.$content.addClass("is-open-"+this.position),!1===this.options.contentScroll&&(s()("body").addClass("is-off-canvas-open").on("touchmove",this._stopScrolling),this.$element.on("touchstart",this._recordScrollable),this.$element.on("touchmove",this,this._preventDefaultAtEdges),this.$element.on("touchstart","[data-off-canvas-scrollbox]",this._recordScrollable),this.$element.on("touchmove","[data-off-canvas-scrollbox]",this,this._scrollboxTouchMoved)),!0===this.options.contentOverlay&&this.$overlay.addClass("is-visible"),!0===this.options.closeOnClick&&!0===this.options.contentOverlay&&this.$overlay.addClass("is-closable"),!0===this.options.autoFocus&&this.$element.one(Object(a.transitionend)(this.$element),function(){var t;n.$element.hasClass("is-open")&&((t=n.$element.find("[data-autofocus]")).length?t:n.$element.find("a, button")).eq(0).focus()}),!0===this.options.trapFocus&&(this.$content.attr("tabindex","-1"),l.Keyboard.trapFocus(this.$element)),"push"===this.options.transition&&this._fixStickyElements(),this._addContentClasses(),this.$element.trigger("opened.zf.offCanvas"),this.$element.one(Object(a.transitionend)(this.$element),function(){i.$element.trigger("openedEnd.zf.offCanvas")}))}},{key:"close",value:function(){var t=this;this.$element.hasClass("is-open")&&!this.isRevealed&&(this.$element.trigger("close.zf.offCanvas"),this.$element.removeClass("is-open"),this.$element.attr("aria-hidden","true"),this.$content.removeClass("is-open-left is-open-top is-open-right is-open-bottom"),!0===this.options.contentOverlay&&this.$overlay.removeClass("is-visible"),!0===this.options.closeOnClick&&!0===this.options.contentOverlay&&this.$overlay.removeClass("is-closable"),this.$triggers.attr("aria-expanded","false"),this.$element.one(Object(a.transitionend)(this.$element),function(){t.$element.addClass("is-closed"),t._removeContentClasses(),"push"===t.options.transition&&t._unfixStickyElements(),!1===t.options.contentScroll&&(s()("body").removeClass("is-off-canvas-open").off("touchmove",t._stopScrolling),t.$element.off("touchstart",t._recordScrollable),t.$element.off("touchmove",t._preventDefaultAtEdges),t.$element.off("touchstart","[data-off-canvas-scrollbox]",t._recordScrollable),t.$element.off("touchmove","[data-off-canvas-scrollbox]",t._scrollboxTouchMoved)),!0===t.options.trapFocus&&(t.$content.removeAttr("tabindex"),l.Keyboard.releaseFocus(t.$element)),t.$element.trigger("closed.zf.offCanvas")}))}},{key:"toggle",value:function(t,e){this.$element.hasClass("is-open")?this.close(t,e):this.open(t,e)}},{key:"_handleKeyboard",value:function(t){var e=this;l.Keyboard.handleKey(t,"OffCanvas",{close:function(){return e.close(),e.$lastTrigger.focus(),!0},handled:function(){t.preventDefault()}})}},{key:"_destroy",value:function(){this.close(),this.$element.off(".zf.trigger .zf.offCanvas"),this.$overlay.off(".zf.offCanvas"),this.onLoadListener&&s()(window).off(this.onLoadListener)}}])&&d(t.prototype,e),n&&d(t,n),o}();i.defaults={closeOnClick:!0,contentOverlay:!0,contentId:null,nested:null,contentScroll:!0,transitionTime:null,transition:"push",forceTo:null,isRevealed:!1,revealOn:null,inCanvasOn:null,autoFocus:!0,revealClass:"reveal-for-",trapFocus:!1}},"./js/foundation.orbit.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Orbit",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.keyboard.js"),c=n("./js/foundation.util.motion.js"),a=n("./js/foundation.util.timer.js"),l=n("./js/foundation.util.imageLoader.js"),u=n("./js/foundation.core.utils.js"),f=n("./js/foundation.core.plugin.js"),d=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function h(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function p(t,e){return(p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function m(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=g(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=g(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function g(t){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(o,f["Plugin"]);var t,e,n,i=m(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Orbit",d.Touch.init(s.a),this._init(),r.Keyboard.register("Orbit",{ltr:{ARROW_RIGHT:"next",ARROW_LEFT:"previous"},rtl:{ARROW_LEFT:"next",ARROW_RIGHT:"previous"}})}},{key:"_init",value:function(){this._reset(),this.$wrapper=this.$element.find(".".concat(this.options.containerClass)),this.$slides=this.$element.find(".".concat(this.options.slideClass));var t=this.$element.find("img"),e=this.$slides.filter(".is-active"),n=this.$element[0].id||Object(u.GetYoDigits)(6,"orbit");this.$element.attr({"data-resize":n,id:n}),e.length||this.$slides.eq(0).addClass("is-active"),this.options.useMUI||this.$slides.addClass("no-motionui"),t.length?Object(l.onImagesLoaded)(t,this._prepareForOrbit.bind(this)):this._prepareForOrbit(),this.options.bullets&&this._loadBullets(),this._events(),this.options.autoPlay&&1<this.$slides.length&&this.geoSync(),this.options.accessible&&this.$wrapper.attr("tabindex",0)}},{key:"_loadBullets",value:function(){this.$bullets=this.$element.find(".".concat(this.options.boxOfBullets)).find("button")}},{key:"geoSync",value:function(){var t=this;this.timer=new a.Timer(this.$element,{duration:this.options.timerDelay,infinite:!1},function(){t.changeSlide(!0)}),this.timer.start()}},{key:"_prepareForOrbit",value:function(){this._setWrapperHeight()}},{key:"_setWrapperHeight",value:function(t){var e,n=0,i=0,o=this;this.$slides.each(function(){e=this.getBoundingClientRect().height,s()(this).attr("data-slide",i),/mui/g.test(s()(this)[0].className)||o.$slides.filter(".is-active")[0]===o.$slides.eq(i)[0]||s()(this).css({display:"none"}),n=n<e?e:n,i++}),i===this.$slides.length&&(this.$wrapper.css({height:n}),t&&t(n))}},{key:"_setSlideHeight",value:function(t){this.$slides.each(function(){s()(this).css("max-height",t)})}},{key:"_events",value:function(){var i=this;this.$element.off(".resizeme.zf.trigger").on({"resizeme.zf.trigger":this._prepareForOrbit.bind(this)}),1<this.$slides.length&&(this.options.swipe&&this.$slides.off("swipeleft.zf.orbit swiperight.zf.orbit").on("swipeleft.zf.orbit",function(t){t.preventDefault(),i.changeSlide(!0)}).on("swiperight.zf.orbit",function(t){t.preventDefault(),i.changeSlide(!1)}),this.options.autoPlay&&(this.$slides.on("click.zf.orbit",function(){i.$element.data("clickedOn",!i.$element.data("clickedOn")),i.timer[i.$element.data("clickedOn")?"pause":"start"]()}),this.options.pauseOnHover&&this.$element.on("mouseenter.zf.orbit",function(){i.timer.pause()}).on("mouseleave.zf.orbit",function(){i.$element.data("clickedOn")||i.timer.start()})),this.options.navButtons&&this.$element.find(".".concat(this.options.nextClass,", .").concat(this.options.prevClass)).attr("tabindex",0).on("click.zf.orbit touchend.zf.orbit",function(t){t.preventDefault(),i.changeSlide(s()(this).hasClass(i.options.nextClass))}),this.options.bullets&&this.$bullets.on("click.zf.orbit touchend.zf.orbit",function(){if(/is-active/g.test(this.className))return!1;var t=s()(this).data("slide"),e=t>i.$slides.filter(".is-active").data("slide"),n=i.$slides.eq(t);i.changeSlide(e,n,t)}),this.options.accessible&&this.$wrapper.add(this.$bullets).on("keydown.zf.orbit",function(t){r.Keyboard.handleKey(t,"Orbit",{next:function(){i.changeSlide(!0)},previous:function(){i.changeSlide(!1)},handled:function(){s()(t.target).is(i.$bullets)&&i.$bullets.filter(".is-active").focus()}})}))}},{key:"_reset",value:function(){void 0!==this.$slides&&1<this.$slides.length&&(this.$element.off(".zf.orbit").find("*").off(".zf.orbit"),this.options.autoPlay&&this.timer.restart(),this.$slides.each(function(t){s()(t).removeClass("is-active is-active is-in").removeAttr("aria-live").hide()}),this.$slides.first().addClass("is-active").show(),this.$element.trigger("slidechange.zf.orbit",[this.$slides.first()]),this.options.bullets&&this._updateBullets(0))}},{key:"changeSlide",value:function(t,e,n){if(this.$slides){var i=this.$slides.filter(".is-active").eq(0);if(/mui/g.test(i[0].className))return!1;var o=this.$slides.first(),s=this.$slides.last(),r=t?"Right":"Left",a=t?"Left":"Right",l=this,u=e||(t?!this.options.infiniteWrap||i.next(".".concat(this.options.slideClass)).length?i.next(".".concat(this.options.slideClass)):o:!this.options.infiniteWrap||i.prev(".".concat(this.options.slideClass)).length?i.prev(".".concat(this.options.slideClass)):s);u.length&&(this.$element.trigger("beforeslidechange.zf.orbit",[i,u]),this.options.bullets&&(n=n||this.$slides.index(u),this._updateBullets(n)),this.options.useMUI&&!this.$element.is(":hidden")?(c.Motion.animateIn(u.addClass("is-active"),this.options["animInFrom".concat(r)],function(){u.css({display:"block"}).attr("aria-live","polite")}),c.Motion.animateOut(i.removeClass("is-active"),this.options["animOutTo".concat(a)],function(){i.removeAttr("aria-live"),l.options.autoPlay&&!l.timer.isPaused&&l.timer.restart()})):(i.removeClass("is-active is-in").removeAttr("aria-live").hide(),u.addClass("is-active is-in").attr("aria-live","polite").show(),this.options.autoPlay&&!this.timer.isPaused&&this.timer.restart()),this.$element.trigger("slidechange.zf.orbit",[u]))}}},{key:"_updateBullets",value:function(t){var e=this.$bullets.filter(".is-active"),n=this.$bullets.not(".is-active"),i=this.$bullets.eq(t);e.removeClass("is-active").blur(),i.addClass("is-active");var o,t=e.children("[data-slide-active-label]").last();t.length||(o=e.children("span"),n.toArray().map(function(t){return s()(t).children("span").length}).every(function(t){return t<o.length})&&(t=o.last()).attr("data-slide-active-label","")),t.length&&(t.detach(),i.append(t))}},{key:"_destroy",value:function(){this.$element.off(".zf.orbit").find("*").off(".zf.orbit").end().hide()}}])&&h(t.prototype,e),n&&h(t,n),o}();i.defaults={bullets:!0,navButtons:!0,animInFromRight:"slide-in-right",animOutToRight:"slide-out-right",animInFromLeft:"slide-in-left",animOutToLeft:"slide-out-left",autoPlay:!0,timerDelay:5e3,infiniteWrap:!0,swipe:!0,pauseOnHover:!0,accessible:!0,containerClass:"orbit-container",slideClass:"orbit-slide",boxOfBullets:"orbit-bullets",nextClass:"orbit-next",prevClass:"orbit-previous",useMUI:!0}},"./js/foundation.positionable.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Positionable",function(){return i});var r=n("./js/foundation.util.box.js"),s=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=f(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=f(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var d=["left","right","top","bottom"],e=["top","bottom","center"],n=["left","right","center"],h={left:e,right:e,top:n,bottom:n};function p(t,e){t=e.indexOf(t);return t===e.length-1?e[0]:e[t+1]}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(o,s["Plugin"]);var t,e,n,i=c(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_init",value:function(){this.triedPositions={},this.position="auto"===this.options.position?this._getDefaultPosition():this.options.position,this.alignment="auto"===this.options.alignment?this._getDefaultAlignment():this.options.alignment,this.originalPosition=this.position,this.originalAlignment=this.alignment}},{key:"_getDefaultPosition",value:function(){return"bottom"}},{key:"_getDefaultAlignment",value:function(){switch(this.position){case"bottom":case"top":return Object(a.rtl)()?"right":"left";case"left":case"right":return"bottom"}}},{key:"_reposition",value:function(){this._alignmentsExhausted(this.position)?(this.position=p(this.position,d),this.alignment=h[this.position][0]):this._realign()}},{key:"_realign",value:function(){this._addTriedPosition(this.position,this.alignment),this.alignment=p(this.alignment,h[this.position])}},{key:"_addTriedPosition",value:function(t,e){this.triedPositions[t]=this.triedPositions[t]||[],this.triedPositions[t].push(e)}},{key:"_positionsExhausted",value:function(){for(var t=!0,e=0;e<d.length;e++)t=t&&this._alignmentsExhausted(d[e]);return t}},{key:"_alignmentsExhausted",value:function(t){return this.triedPositions[t]&&this.triedPositions[t].length===h[t].length}},{key:"_getVOffset",value:function(){return this.options.vOffset}},{key:"_getHOffset",value:function(){return this.options.hOffset}},{key:"_setPosition",value:function(t,e,n){if("false"===t.attr("aria-expanded"))return!1;if(this.options.allowOverlap||(this.position=this.originalPosition,this.alignment=this.originalAlignment),e.offset(r.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset())),!this.options.allowOverlap){for(var i=1e8,o={position:this.position,alignment:this.alignment};!this._positionsExhausted();){var s=r.Box.OverlapArea(e,n,!1,!1,this.options.allowBottomOverlap);if(0===s)return;s<i&&(i=s,o={position:this.position,alignment:this.alignment}),this._reposition(),e.offset(r.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}this.position=o.position,this.alignment=o.alignment,e.offset(r.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}}}])&&l(t.prototype,e),n&&l(t,n),o}();i.defaults={position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,vOffset:0,hOffset:0}},"./js/foundation.responsiveAccordionTabs.js":function(t,e,n){"use strict";n.r(e),n.d(e,"ResponsiveAccordionTabs",function(){return m});var e=n("jquery"),u=n.n(e),s=n("./js/foundation.util.mediaQuery.js"),c=n("./js/foundation.core.utils.js"),r=n("./js/foundation.core.plugin.js"),e=n("./js/foundation.accordion.js");function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=o(n);return d(this,i?(t=o(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t,e){if(e&&("object"===i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return h(t)}function h(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var p={tabs:{cssClass:"tabs",plugin:n("./js/foundation.tabs.js").Tabs,open:function(t,e){return t.selectTab(e)},close:null,toggle:null},accordion:{cssClass:"accordion",plugin:e.Accordion,open:function(t,e){return t.down(u()(e))},close:function(t,e){return t.up(u()(e))},toggle:function(t,e){return t.toggle(u()(e))}}},m=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(o,r["Plugin"]);var t,e,n,i=f(o);function o(t,e){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),d(e=i.call(this,t,e),e.options.reflow&&e.storezfData||h(e))}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=u()(t),this.$element.data("zfPluginBase",this),this.options=u.a.extend({},o.defaults,this.$element.data(),e),this.rules=this.$element.data("responsive-accordion-tabs"),this.currentMq=null,this.currentRule=null,this.currentPlugin=null,this.className="ResponsiveAccordionTabs",this.$element.attr("id")||this.$element.attr("id",Object(c.GetYoDigits)(6,"responsiveaccordiontabs")),this._init(),this._events()}},{key:"_init",value:function(){if(s.MediaQuery._init(),"string"==typeof this.rules){for(var t={},e=this.rules.split(" "),n=0;n<e.length;n++){var i=e[n].split("-"),o=1<i.length?i[0]:"small",i=1<i.length?i[1]:i[0];null!==p[i]&&(t[o]=p[i])}this.rules=t}this._getAllOptions(),u.a.isEmptyObject(this.rules)||this._checkMediaQueries()}},{key:"_getAllOptions",value:function(){for(var t in this.allOptions={},p)if(p.hasOwnProperty(t)){var e=p[t];try{var n,i,o=u()("<ul></ul>"),s=new e.plugin(o,this.options);for(n in s.options)s.options.hasOwnProperty(n)&&"zfPlugin"!==n&&(i=s.options[n],this.allOptions[n]=i);s.destroy()}catch(t){console.warn("Warning: Problems getting Accordion/Tab options: ".concat(t))}}}},{key:"_events",value:function(){this._changedZfMediaQueryHandler=this._checkMediaQueries.bind(this),u()(window).on("changed.zf.mediaquery",this._changedZfMediaQueryHandler)}},{key:"_checkMediaQueries",value:function(){var e,n=this;u.a.each(this.rules,function(t){s.MediaQuery.atLeast(t)&&(e=t)}),e&&(this.currentPlugin instanceof this.rules[e].plugin||(u.a.each(p,function(t,e){n.$element.removeClass(e.cssClass)}),this.$element.addClass(this.rules[e].cssClass),this.currentPlugin&&(!this.currentPlugin.$element.data("zfPlugin")&&this.storezfData&&this.currentPlugin.$element.data("zfPlugin",this.storezfData),this.currentPlugin.destroy()),this._handleMarkup(this.rules[e].cssClass),this.currentRule=this.rules[e],this.currentPlugin=new this.currentRule.plugin(this.$element,this.options),this.storezfData=this.currentPlugin.$element.data("zfPlugin")))}},{key:"_handleMarkup",value:function(t){var e,s,r,a,l,n=this,i="accordion",o=u()("[data-tabs-content="+this.$element.attr("id")+"]");(i=o.length?"tabs":i)!==t&&(e=n.allOptions.linkClass||"tabs-title",s=n.allOptions.panelClass||"tabs-panel",this.$element.removeAttr("role"),r=this.$element.children("."+e+",[data-accordion-item]").removeClass(e).removeClass("accordion-item").removeAttr("data-accordion-item"),a=r.children("a").removeClass("accordion-title"),"tabs"===i?(o=o.children("."+s).removeClass(s).removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby")).children("a").removeAttr("role").removeAttr("aria-controls").removeAttr("aria-selected"):o=r.children("[data-tab-content]").removeClass("accordion-content"),o.css({display:"",visibility:""}),r.css({display:"",visibility:""}),"accordion"===t?o.each(function(t,e){u()(e).appendTo(r.get(t)).addClass("accordion-content").attr("data-tab-content","").removeClass("is-active").css({height:""}),u()("[data-tabs-content="+n.$element.attr("id")+"]").after('<div id="tabs-placeholder-'+n.$element.attr("id")+'"></div>').detach(),r.addClass("accordion-item").attr("data-accordion-item",""),a.addClass("accordion-title")}):"tabs"===t&&(l=u()("[data-tabs-content="+n.$element.attr("id")+"]"),(t=u()("#tabs-placeholder-"+n.$element.attr("id"))).length?(l=u()('<div class="tabs-content"></div>').insertAfter(t).attr("data-tabs-content",n.$element.attr("id")),t.remove()):l=u()('<div class="tabs-content"></div>').insertAfter(n.$element).attr("data-tabs-content",n.$element.attr("id")),o.each(function(t,e){var n=u()(e).appendTo(l).addClass(s),i=a.get(t).hash.slice(1),o=u()(e).attr("id")||Object(c.GetYoDigits)(6,"accordion");i!==o&&(""!==i?u()(e).attr("id",i):(i=o,u()(e).attr("id",i),u()(a.get(t)).attr("href",u()(a.get(t)).attr("href").replace("#","")+"#"+i))),u()(r.get(t)).hasClass("is-active")&&n.addClass("is-active")}),r.addClass(e)))}},{key:"open",value:function(){var t;if(this.currentRule&&"function"==typeof this.currentRule.open)return(t=this.currentRule).open.apply(t,[this.currentPlugin].concat(Array.prototype.slice.call(arguments)))}},{key:"close",value:function(){var t;if(this.currentRule&&"function"==typeof this.currentRule.close)return(t=this.currentRule).close.apply(t,[this.currentPlugin].concat(Array.prototype.slice.call(arguments)))}},{key:"toggle",value:function(){var t;if(this.currentRule&&"function"==typeof this.currentRule.toggle)return(t=this.currentRule).toggle.apply(t,[this.currentPlugin].concat(Array.prototype.slice.call(arguments)))}},{key:"_destroy",value:function(){this.currentPlugin&&this.currentPlugin.destroy(),u()(window).off("changed.zf.mediaquery",this._changedZfMediaQueryHandler)}}])&&a(t.prototype,e),n&&a(t,n),o}();m.defaults={}},"./js/foundation.responsiveMenu.js":function(t,e,n){"use strict";n.r(e),n.d(e,"ResponsiveMenu",function(){return p});var i=n("jquery"),s=n.n(i),r=n("./js/foundation.util.mediaQuery.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.core.plugin.js"),e=n("./js/foundation.dropdownMenu.js"),i=n("./js/foundation.drilldown.js"),n=n("./js/foundation.accordionMenu.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h={dropdown:{cssClass:"dropdown",plugin:e.DropdownMenu},drilldown:{cssClass:"drilldown",plugin:i.Drilldown},accordion:{cssClass:"accordion-menu",plugin:n.AccordionMenu}},p=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,l["Plugin"]);var t,e,n,i=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t){this.$element=s()(t),this.rules=this.$element.data("responsive-menu"),this.currentMq=null,this.currentPlugin=null,this.className="ResponsiveMenu",this._init(),this._events()}},{key:"_init",value:function(){if(r.MediaQuery._init(),"string"==typeof this.rules){for(var t={},e=this.rules.split(" "),n=0;n<e.length;n++){var i=e[n].split("-"),o=1<i.length?i[0]:"small",i=1<i.length?i[1]:i[0];null!==h[i]&&(t[o]=h[i])}this.rules=t}s.a.isEmptyObject(this.rules)||this._checkMediaQueries(),this.$element.attr("data-mutate",this.$element.attr("data-mutate")||Object(a.GetYoDigits)(6,"responsive-menu"))}},{key:"_events",value:function(){var t=this;s()(window).on("changed.zf.mediaquery",function(){t._checkMediaQueries()})}},{key:"_checkMediaQueries",value:function(){var e,n=this;s.a.each(this.rules,function(t){r.MediaQuery.atLeast(t)&&(e=t)}),e&&(this.currentPlugin instanceof this.rules[e].plugin||(s.a.each(h,function(t,e){n.$element.removeClass(e.cssClass)}),this.$element.addClass(this.rules[e].cssClass),this.currentPlugin&&this.currentPlugin.destroy(),this.currentPlugin=new this.rules[e].plugin(this.$element,{})))}},{key:"_destroy",value:function(){this.currentPlugin.destroy(),s()(window).off(".zf.ResponsiveMenu")}}])&&u(t.prototype,e),n&&u(t,n),o}();p.defaults={}},"./js/foundation.responsiveToggle.js":function(t,e,n){"use strict";n.r(e),n.d(e,"ResponsiveToggle",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.mediaQuery.js"),a=n("./js/foundation.util.motion.js"),l=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,l["Plugin"]);var t,e,n,i=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=s()(t),this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="ResponsiveToggle",this._init(),this._events()}},{key:"_init",value:function(){r.MediaQuery._init();var t,e=this.$element.data("responsive-toggle");e||console.error("Your tab bar needs an ID of a Menu as the value of data-tab-bar."),this.$targetMenu=s()("#".concat(e)),this.$toggler=this.$element.find("[data-toggle]").filter(function(){var t=s()(this).data("toggle");return t===e||""===t}),this.options=s.a.extend({},this.options,this.$targetMenu.data()),this.options.animate&&(t=this.options.animate.split(" "),this.animationIn=t[0],this.animationOut=t[1]||null),this._update()}},{key:"_events",value:function(){this._updateMqHandler=this._update.bind(this),s()(window).on("changed.zf.mediaquery",this._updateMqHandler),this.$toggler.on("click.zf.responsiveToggle",this.toggleMenu.bind(this))}},{key:"_update",value:function(){r.MediaQuery.atLeast(this.options.hideFor)?(this.$element.hide(),this.$targetMenu.show()):(this.$element.show(),this.$targetMenu.hide())}},{key:"toggleMenu",value:function(){var t=this;r.MediaQuery.atLeast(this.options.hideFor)||(this.options.animate?this.$targetMenu.is(":hidden")?a.Motion.animateIn(this.$targetMenu,this.animationIn,function(){t.$element.trigger("toggled.zf.responsiveToggle"),t.$targetMenu.find("[data-mutate]").triggerHandler("mutateme.zf.trigger")}):a.Motion.animateOut(this.$targetMenu,this.animationOut,function(){t.$element.trigger("toggled.zf.responsiveToggle")}):(this.$targetMenu.toggle(0),this.$targetMenu.find("[data-mutate]").trigger("mutateme.zf.trigger"),this.$element.trigger("toggled.zf.responsiveToggle")))}},{key:"_destroy",value:function(){this.$element.off(".zf.responsiveToggle"),this.$toggler.off(".zf.responsiveToggle"),s()(window).off("changed.zf.mediaquery",this._updateMqHandler)}}])&&u(t.prototype,e),n&&u(t,n),o}();i.defaults={hideFor:"medium",animate:!1}},"./js/foundation.reveal.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Reveal",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.keyboard.js"),u=n("./js/foundation.util.mediaQuery.js"),c=n("./js/foundation.util.motion.js"),f=n("./js/foundation.util.triggers.js"),d=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function h(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function p(t,e){return(p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function m(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=g(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=g(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function g(t){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(o,r["Plugin"]);var t,e,n,i=m(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Reveal",this._init(),d.Touch.init(s.a),f.Triggers.init(s.a),l.Keyboard.register("Reveal",{ESCAPE:"close"})}},{key:"_init",value:function(){var t=this;u.MediaQuery._init(),this.id=this.$element.attr("id"),this.isActive=!1,this.cached={mq:u.MediaQuery.current},this.$anchor=s()('[data-open="'.concat(this.id,'"]')).length?s()('[data-open="'.concat(this.id,'"]')):s()('[data-toggle="'.concat(this.id,'"]')),this.$anchor.attr({"aria-controls":this.id,"aria-haspopup":"dialog",tabindex:0}),(this.options.fullScreen||this.$element.hasClass("full"))&&(this.options.fullScreen=!0,this.options.overlay=!1),this.options.overlay&&!this.$overlay&&(this.$overlay=this._makeOverlay(this.id)),this.$element.attr({role:"dialog","aria-hidden":!0,"data-yeti-box":this.id,"data-resize":this.id}),this.$overlay?this.$element.detach().appendTo(this.$overlay):(this.$element.detach().appendTo(s()(this.options.appendTo)),this.$element.addClass("without-overlay")),this._events(),this.options.deepLink&&window.location.hash==="#".concat(this.id)&&(this.onLoadListener=Object(a.onLoad)(s()(window),function(){return t.open()}))}},{key:"_makeOverlay",value:function(){var t="";return this.options.additionalOverlayClasses&&(t=" "+this.options.additionalOverlayClasses),s()("<div></div>").addClass("reveal-overlay"+t).appendTo(this.options.appendTo)}},{key:"_updatePosition",value:function(){var t=this.$element.outerWidth(),e=s()(window).width(),n=this.$element.outerHeight(),i=s()(window).height(),o=null,t="auto"===this.options.hOffset?parseInt((e-t)/2,10):parseInt(this.options.hOffset,10);"auto"===this.options.vOffset?o=i<n?parseInt(Math.min(100,i/10),10):parseInt((i-n)/4,10):null!==this.options.vOffset&&(o=parseInt(this.options.vOffset,10)),null!==o&&this.$element.css({top:o+"px"}),this.$overlay&&"auto"===this.options.hOffset||(this.$element.css({left:t+"px"}),this.$element.css({margin:"0px"}))}},{key:"_events",value:function(){var n=this,i=this;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":function(t,e){if(t.target===i.$element[0]||s()(t.target).parents("[data-closable]")[0]===e)return n.close.apply(n)},"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":function(){i._updatePosition()}}),this.options.closeOnClick&&this.options.overlay&&this.$overlay.off(".zf.reveal").on("click.zf.dropdown tap.zf.dropdown",function(t){t.target!==i.$element[0]&&!s.a.contains(i.$element[0],t.target)&&s.a.contains(document,t.target)&&i.close()}),this.options.deepLink&&s()(window).on("hashchange.zf.reveal:".concat(this.id),this._handleState.bind(this))}},{key:"_handleState",value:function(){window.location.hash!=="#"+this.id||this.isActive?this.close():this.open()}},{key:"_disableScroll",value:function(t){t=t||s()(window).scrollTop(),s()(document).height()>s()(window).height()&&s()("html").css("top",-t)}},{key:"_enableScroll",value:function(t){t=t||parseInt(s()("html").css("top"),10),s()(document).height()>s()(window).height()&&(s()("html").css("top",""),s()(window).scrollTop(-t))}},{key:"open",value:function(){var t=this,e="#".concat(this.id);this.options.deepLink&&window.location.hash!==e&&(window.history.pushState?this.options.updateHistory?window.history.pushState({},"",e):window.history.replaceState({},"",e):window.location.hash=e),this.$activeAnchor=s()(document.activeElement).is(this.$anchor)?s()(document.activeElement):this.$anchor,this.isActive=!0,this.$element.css({visibility:"hidden"}).show().scrollTop(0),this.options.overlay&&this.$overlay.css({visibility:"hidden"}).show(),this._updatePosition(),this.$element.hide().css({visibility:""}),this.$overlay&&(this.$overlay.css({visibility:""}).hide(),this.$element.hasClass("fast")?this.$overlay.addClass("fast"):this.$element.hasClass("slow")&&this.$overlay.addClass("slow")),this.options.multipleOpened||this.$element.trigger("closeme.zf.reveal",this.id),0===s()(".reveal:visible").length&&this._disableScroll();var n=this;this.options.animationIn?(this.options.overlay&&c.Motion.animateIn(this.$overlay,"fade-in"),c.Motion.animateIn(this.$element,this.options.animationIn,function(){t.$element&&(t.focusableElements=l.Keyboard.findFocusable(t.$element),n.$element.attr({"aria-hidden":!1,tabindex:-1}).focus(),n._addGlobalClasses(),l.Keyboard.trapFocus(n.$element))})):(this.options.overlay&&this.$overlay.show(0),this.$element.show(this.options.showDelay)),this.$element.attr({"aria-hidden":!1,tabindex:-1}).focus(),l.Keyboard.trapFocus(this.$element),this._addGlobalClasses(),this._addGlobalListeners(),this.$element.trigger("open.zf.reveal")}},{key:"_addGlobalClasses",value:function(){function t(){s()("html").toggleClass("zf-has-scroll",!!(s()(document).height()>s()(window).height()))}this.$element.on("resizeme.zf.trigger.revealScrollbarListener",t),t(),s()("html").addClass("is-reveal-open")}},{key:"_removeGlobalClasses",value:function(){this.$element.off("resizeme.zf.trigger.revealScrollbarListener"),s()("html").removeClass("is-reveal-open"),s()("html").removeClass("zf-has-scroll")}},{key:"_addGlobalListeners",value:function(){var e=this;this.$element&&(this.focusableElements=l.Keyboard.findFocusable(this.$element),this.options.overlay||!this.options.closeOnClick||this.options.fullScreen||s()("body").on("click.zf.dropdown tap.zf.dropdown",function(t){t.target!==e.$element[0]&&!s.a.contains(e.$element[0],t.target)&&s.a.contains(document,t.target)&&e.close()}),this.options.closeOnEsc&&s()(window).on("keydown.zf.reveal",function(t){l.Keyboard.handleKey(t,"Reveal",{close:function(){e.options.closeOnEsc&&e.close()}})}))}},{key:"close",value:function(){if(!this.isActive||!this.$element.is(":visible"))return!1;var t,e=this;function n(){var t=parseInt(s()("html").css("top"),10);0===s()(".reveal:visible").length&&e._removeGlobalClasses(),l.Keyboard.releaseFocus(e.$element),e.$element.attr("aria-hidden",!0),0===s()(".reveal:visible").length&&e._enableScroll(t),e.$element.trigger("closed.zf.reveal")}this.options.animationOut?(this.options.overlay&&c.Motion.animateOut(this.$overlay,"fade-out"),c.Motion.animateOut(this.$element,this.options.animationOut,n)):(this.$element.hide(this.options.hideDelay),this.options.overlay?this.$overlay.hide(0,n):n()),this.options.closeOnEsc&&s()(window).off("keydown.zf.reveal"),!this.options.overlay&&this.options.closeOnClick&&s()("body").off("click.zf.dropdown tap.zf.dropdown"),this.$element.off("keydown.zf.reveal"),this.options.resetOnClose&&this.$element.html(this.$element.html()),this.isActive=!1,e.options.deepLink&&window.location.hash==="#".concat(this.id)&&(window.history.replaceState?(t=window.location.pathname+window.location.search,this.options.updateHistory?window.history.pushState({},"",t):window.history.replaceState("",document.title,t)):window.location.hash=""),this.$activeAnchor.focus()}},{key:"toggle",value:function(){this.isActive?this.close():this.open()}},{key:"_destroy",value:function(){this.options.overlay&&(this.$element.appendTo(s()(this.options.appendTo)),this.$overlay.hide().off().remove()),this.$element.hide().off(),this.$anchor.off(".zf"),s()(window).off(".zf.reveal:".concat(this.id)),this.onLoadListener&&s()(window).off(this.onLoadListener),0===s()(".reveal:visible").length&&this._removeGlobalClasses()}}])&&h(t.prototype,e),n&&h(t,n),o}();i.defaults={animationIn:"",animationOut:"",showDelay:0,hideDelay:0,closeOnClick:!0,closeOnEsc:!0,multipleOpened:!1,vOffset:"auto",hOffset:"auto",fullScreen:!1,overlay:!0,resetOnClose:!1,deepLink:!1,updateHistory:!1,appendTo:"body",additionalOverlayClasses:""}},"./js/foundation.slider.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Slider",function(){return i});var e=n("jquery"),u=n.n(e),r=n("./js/foundation.util.keyboard.js"),h=n("./js/foundation.util.motion.js"),c=n("./js/foundation.core.utils.js"),s=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.util.touch.js"),l=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,s["Plugin"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=u.a.extend({},o.defaults,this.$element.data(),e),this.className="Slider",this.initialized=!1,a.Touch.init(u.a),l.Triggers.init(u.a),this._init(),r.Keyboard.register("Slider",{ltr:{ARROW_RIGHT:"increase",ARROW_UP:"increase",ARROW_DOWN:"decrease",ARROW_LEFT:"decrease",SHIFT_ARROW_RIGHT:"increaseFast",SHIFT_ARROW_UP:"increaseFast",SHIFT_ARROW_DOWN:"decreaseFast",SHIFT_ARROW_LEFT:"decreaseFast",HOME:"min",END:"max"},rtl:{ARROW_LEFT:"increase",ARROW_RIGHT:"decrease",SHIFT_ARROW_LEFT:"increaseFast",SHIFT_ARROW_RIGHT:"decreaseFast"}})}},{key:"_init",value:function(){this.inputs=this.$element.find("input"),this.handles=this.$element.find("[data-slider-handle]"),this.$handle=this.handles.eq(0),this.$input=this.inputs.length?this.inputs.eq(0):u()("#".concat(this.$handle.attr("aria-controls"))),this.$fill=this.$element.find("[data-slider-fill]").css(this.options.vertical?"height":"width",0),(this.options.disabled||this.$element.hasClass(this.options.disabledClass))&&(this.options.disabled=!0,this.$element.addClass(this.options.disabledClass)),this.inputs.length||(this.inputs=u()().add(this.$input),this.options.binding=!0),this._setInitAttr(0),this.handles[1]&&(this.options.doubleSided=!0,this.$handle2=this.handles.eq(1),this.$input2=1<this.inputs.length?this.inputs.eq(1):u()("#".concat(this.$handle2.attr("aria-controls"))),this.inputs[1]||(this.inputs=this.inputs.add(this.$input2)),this._setInitAttr(1)),this.setHandles(),this._events(),this.initialized=!0}},{key:"setHandles",value:function(){var t=this;this.handles[1]?this._setHandlePos(this.$handle,this.inputs.eq(0).val(),function(){t._setHandlePos(t.$handle2,t.inputs.eq(1).val())}):this._setHandlePos(this.$handle,this.inputs.eq(0).val())}},{key:"_reflow",value:function(){this.setHandles()}},{key:"_pctOfBar",value:function(t){var e=(t-this.options.start)/(this.options.end-this.options.start);switch(this.options.positionValueFunction){case"pow":e=this._logTransform(e);break;case"log":e=this._powTransform(e)}return e.toFixed(2)}},{key:"_value",value:function(t){switch(this.options.positionValueFunction){case"pow":t=this._powTransform(t);break;case"log":t=this._logTransform(t)}var e=this.options.vertical?parseFloat(this.options.end)+t*(this.options.start-this.options.end):(this.options.end-this.options.start)*t+parseFloat(this.options.start);return e}},{key:"_logTransform",value:function(t){return e=this.options.nonLinearBase,t=t*(this.options.nonLinearBase-1)+1,Math.log(t)/Math.log(e);var e}},{key:"_powTransform",value:function(t){return(Math.pow(this.options.nonLinearBase,t)-1)/(this.options.nonLinearBase-1)}},{key:"_setHandlePos",value:function(t,e,n){var i,o,s,r,a,l,u,c,f,d;this.$element.hasClass(this.options.disabledClass)||((e=parseFloat(e))<this.options.start?e=this.options.start:e>this.options.end&&(e=this.options.end),(c=this.options.doubleSided)&&(e=0===this.handles.index(t)?(f=parseFloat(this.$handle2.attr("aria-valuenow")))<=e?f-this.options.step:e:e<=(r=parseFloat(this.$handle.attr("aria-valuenow")))?r+this.options.step:e),f=(i=this).options.vertical,o=f?"height":"width",s=f?"top":"left",r=t[0].getBoundingClientRect()[o],f=this.$element[0].getBoundingClientRect()[o],a=this._pctOfBar(e),l=((f-r)*a/f*100).toFixed(this.options.decimal),e=parseFloat(e.toFixed(this.options.decimal)),u={},this._setValues(t,e),c&&(c=0===this.handles.index(t),f=Math.floor(r/f*100),c?(u[s]="".concat(l,"%"),d=parseFloat(this.$handle2[0].style[s])-l+f,n&&"function"==typeof n&&n()):(n=parseFloat(this.$handle[0].style[s]),d=l-(isNaN(n)?(this.options.initialStart-this.options.start)/((this.options.end-this.options.start)/100):n)+f),u["min-".concat(o)]="".concat(d,"%")),d=this.$element.data("dragging")?1e3/60:this.options.moveTime,Object(h.Move)(d,t,function(){isNaN(l)?t.css(s,"".concat(100*a,"%")):t.css(s,"".concat(l,"%")),i.options.doubleSided?i.$fill.css(u):i.$fill.css(o,"".concat(100*a,"%"))}),this.initialized&&(this.$element.one("finished.zf.animate",function(){i.$element.trigger("moved.zf.slider",[t])}),clearTimeout(i.timeout),i.timeout=setTimeout(function(){i.$element.trigger("changed.zf.slider",[t])},i.options.changedDelay)))}},{key:"_setInitAttr",value:function(t){var e=0===t?this.options.initialStart:this.options.initialEnd,n=this.inputs.eq(t).attr("id")||Object(c.GetYoDigits)(6,"slider");this.inputs.eq(t).attr({id:n,max:this.options.end,min:this.options.start,step:this.options.step}),this.inputs.eq(t).val(e),this.handles.eq(t).attr({role:"slider","aria-controls":n,"aria-valuemax":this.options.end,"aria-valuemin":this.options.start,"aria-valuenow":e,"aria-orientation":this.options.vertical?"vertical":"horizontal",tabindex:0})}},{key:"_setValues",value:function(t,e){var n=this.options.doubleSided?this.handles.index(t):0;this.inputs.eq(n).val(e),t.attr("aria-valuenow",e)}},{key:"_handleEvent",value:function(t,e,n){var i,o,s,r,a,l;n?l=this._adjustValue(null,n):(t.preventDefault(),i=(a=this.options.vertical)?"height":"width",o=a?"top":"left",s=a?t.pageY:t.pageX,r=this.$element[0].getBoundingClientRect()[i],n=a?u()(window).scrollTop():u()(window).scrollLeft(),a=this.$element.offset()[o],t.clientY===t.pageY&&(s+=n),l=this._value((a=(a=s-a)<0?0:r<a?r:a)/r),Object(c.rtl)()&&!this.options.vertical&&(l=this.options.end-l),l=this._adjustValue(null,l),e=e||(g(this.$handle,o,a,i)<=g(this.$handle2,o,a,i)?this.$handle:this.$handle2)),this._setHandlePos(e,l)}},{key:"_adjustValue",value:function(t,e){var n=this.options.step,i=parseFloat(n/2),o=t?parseFloat(t.attr("aria-valuenow")):e,t=0<=o?o%n:n+o%n,e=o-t;return 0===t?o:o=e+i<=o?e+n:e}},{key:"_events",value:function(){this._eventsForHandle(this.$handle),this.handles[1]&&this._eventsForHandle(this.$handle2)}},{key:"_eventsForHandle",value:function(e){function n(t){var e=s.inputs.index(u()(this));s._handleEvent(t,s.handles.eq(e),u()(this).val())}var i,o,s=this;this.inputs.off("keyup.zf.slider").on("keyup.zf.slider",function(t){13===t.keyCode&&n.call(this,t)}),this.inputs.off("change.zf.slider").on("change.zf.slider",n),this.options.clickSelect&&this.$element.off("click.zf.slider").on("click.zf.slider",function(t){return!s.$element.data("dragging")&&void(u()(t.target).is("[data-slider-handle]")||(s.options.doubleSided?s._handleEvent(t):s._handleEvent(t,s.$handle)))}),this.options.draggable&&(this.handles.addTouch(),o=u()("body"),e.off("mousedown.zf.slider").on("mousedown.zf.slider",function(t){e.addClass("is-dragging"),s.$fill.addClass("is-dragging"),s.$element.data("dragging",!0),i=u()(t.currentTarget),o.on("mousemove.zf.slider",function(t){t.preventDefault(),s._handleEvent(t,i)}).on("mouseup.zf.slider",function(t){s._handleEvent(t,i),e.removeClass("is-dragging"),s.$fill.removeClass("is-dragging"),s.$element.data("dragging",!1),o.off("mousemove.zf.slider mouseup.zf.slider")})}).on("selectstart.zf.slider touchmove.zf.slider",function(t){t.preventDefault()})),e.off("keydown.zf.slider").on("keydown.zf.slider",function(t){var e,n=u()(this),i=s.options.doubleSided?s.handles.index(n):0,o=parseFloat(s.inputs.eq(i).val());r.Keyboard.handleKey(t,"Slider",{decrease:function(){e=o-s.options.step},increase:function(){e=o+s.options.step},decreaseFast:function(){e=o-10*s.options.step},increaseFast:function(){e=o+10*s.options.step},min:function(){e=s.options.start},max:function(){e=s.options.end},handled:function(){t.preventDefault(),s._setHandlePos(n,e)}})})}},{key:"_destroy",value:function(){this.handles.off(".zf.slider"),this.inputs.off(".zf.slider"),this.$element.off(".zf.slider"),clearTimeout(this.timeout)}}])&&f(t.prototype,e),n&&f(t,n),o}();function g(t,e,n,i){return Math.abs(t.position()[e]+t[i]()/2-n)}i.defaults={start:0,end:100,step:1,initialStart:0,initialEnd:100,binding:!1,clickSelect:!0,vertical:!1,draggable:!0,disabled:!1,doubleSided:!1,decimal:2,moveTime:200,disabledClass:"disabled",invertVertical:!1,changedDelay:500,nonLinearBase:5,positionValueFunction:"linear"}},"./js/foundation.smoothScroll.js":function(t,e,n){"use strict";n.r(e),n.d(e,"SmoothScroll",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.utils.js"),a=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=f(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=f(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(o,a["Plugin"]);var t,e,n,i=c(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,n=[{key:"scrollToLoc",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:o.defaults,n=2<arguments.length?arguments[2]:void 0,t=s()(t);if(!t.length)return!1;t=Math.round(t.offset().top-e.threshold/2-e.offset);s()("html, body").stop(!0).animate({scrollTop:t},e.animationDuration,e.animationEasing,function(){"function"==typeof n&&n()})}}],(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="SmoothScroll",this._init()}},{key:"_init",value:function(){var t=this.$element[0].id||Object(r.GetYoDigits)(6,"smooth-scroll");this.$element.attr({id:t}),this._events()}},{key:"_events",value:function(){this._linkClickListener=this._handleLinkClick.bind(this),this.$element.on("click.zf.smoothScroll",this._linkClickListener),this.$element.on("click.zf.smoothScroll",'a[href^="#"]',this._linkClickListener)}},{key:"_handleLinkClick",value:function(t){var e,n=this;s()(t.currentTarget).is('a[href^="#"]')&&(e=t.currentTarget.getAttribute("href"),this._inTransition=!0,o.scrollToLoc(e,this.options,function(){n._inTransition=!1}),t.preventDefault())}},{key:"_destroy",value:function(){this.$element.off("click.zf.smoothScroll",this._linkClickListener),this.$element.off("click.zf.smoothScroll",'a[href^="#"]',this._linkClickListener)}}])&&l(t.prototype,e),n&&l(t,n),o}();i.defaults={animationDuration:500,animationEasing:"linear",threshold:50,offset:0}},"./js/foundation.sticky.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Sticky",function(){return i});var e=n("jquery"),a=n.n(e),s=n("./js/foundation.core.plugin.js"),r=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.mediaQuery.js"),u=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="Sticky",u.Triggers.init(a.a),this._init()}},{key:"_init",value:function(){l.MediaQuery._init();var t=this.$element.parent("[data-sticky-container]"),e=this.$element[0].id||Object(r.GetYoDigits)(6,"sticky"),n=this;t.length?this.$container=t:(this.wasWrapped=!0,this.$element.wrap(this.options.container),this.$container=this.$element.parent()),this.$container.addClass(this.options.containerClass),this.$element.addClass(this.options.stickyClass).attr({"data-resize":e,"data-mutate":e}),""!==this.options.anchor&&a()("#"+n.options.anchor).attr({"data-mutate":e}),this.scrollCount=this.options.checkEvery,this.isStuck=!1,this.onLoadListener=Object(r.onLoad)(a()(window),function(){n.containerHeight="none"===n.$element.css("display")?0:n.$element[0].getBoundingClientRect().height,n.$container.css("height",n.containerHeight),n.elemHeight=n.containerHeight,""!==n.options.anchor?n.$anchor=a()("#"+n.options.anchor):n._parsePoints(),n._setSizes(function(){var t=window.pageYOffset;n._calc(!1,t),n.isStuck||n._removeSticky(!(t>=n.topPoint))}),n._events(e.split("-").reverse().join("-"))})}},{key:"_parsePoints",value:function(){for(var t,e,n,i=[""===this.options.topAnchor?1:this.options.topAnchor,""===this.options.btmAnchor?document.documentElement.scrollHeight:this.options.btmAnchor],o={},s=0,r=i.length;s<r&&i[s];s++)"number"==typeof i[s]?n=i[s]:(t=i[s].split(":"),n=(e=a()("#".concat(t[0]))).offset().top,t[1]&&"bottom"===t[1].toLowerCase()&&(n+=e[0].getBoundingClientRect().height)),o[s]=n;this.points=o}},{key:"_events",value:function(t){var e=this,n=this.scrollListener="scroll.zf.".concat(t);this.isOn||(this.canStick&&(this.isOn=!0,a()(window).off(n).on(n,function(){0===e.scrollCount?(e.scrollCount=e.options.checkEvery,e._setSizes(function(){e._calc(!1,window.pageYOffset)})):(e.scrollCount--,e._calc(!1,window.pageYOffset))})),this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(){e._eventsHandler(t)}),this.$element.on("mutateme.zf.trigger",function(){e._eventsHandler(t)}),this.$anchor&&this.$anchor.on("mutateme.zf.trigger",function(){e._eventsHandler(t)}))}},{key:"_eventsHandler",value:function(t){var e=this,n=this.scrollListener="scroll.zf.".concat(t);e._setSizes(function(){e._calc(!1),e.canStick?e.isOn||e._events(t):e.isOn&&e._pauseListeners(n)})}},{key:"_pauseListeners",value:function(t){this.isOn=!1,a()(window).off(t),this.$element.trigger("pause.zf.sticky")}},{key:"_calc",value:function(t,e){if(t&&this._setSizes(),!this.canStick)return this.isStuck&&this._removeSticky(!0),!1;(e=e||window.pageYOffset)>=this.topPoint?e<=this.bottomPoint?this.isStuck||this._setSticky():this.isStuck&&this._removeSticky(!1):this.isStuck&&this._removeSticky(!0)}},{key:"_setSticky",value:function(){var t=this,e=this.options.stickTo,n="top"===e?"marginTop":"marginBottom",i="top"===e?"bottom":"top",o={};o[n]="".concat(this.options[n],"em"),o[e]=0,o[i]="auto",this.isStuck=!0,this.$element.removeClass("is-anchored is-at-".concat(i)).addClass("is-stuck is-at-".concat(e)).css(o).trigger("sticky.zf.stuckto:".concat(e)),this.$element.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",function(){t._setSizes()})}},{key:"_removeSticky",value:function(t){var e=this.options.stickTo,n={},i=(this.points?this.points[1]-this.points[0]:this.anchorHeight)-this.elemHeight,o=t?"top":"bottom";n["top"===e?"marginTop":"marginBottom"]=0,n.bottom="auto",n.top=t?0:i,this.isStuck=!1,this.$element.removeClass("is-stuck is-at-".concat(e)).addClass("is-anchored is-at-".concat(o)).css(n).trigger("sticky.zf.unstuckfrom:".concat(o))}},{key:"_setSizes",value:function(t){this.canStick=l.MediaQuery.is(this.options.stickyOn),this.canStick||t&&"function"==typeof t&&t();var e,n=this.$container[0].getBoundingClientRect().width,i=window.getComputedStyle(this.$container[0]),o=parseInt(i["padding-left"],10),i=parseInt(i["padding-right"],10);this.$anchor&&this.$anchor.length?this.anchorHeight=this.$anchor[0].getBoundingClientRect().height:this._parsePoints(),this.$element.css({"max-width":"".concat(n-o-i,"px")}),!this.options.dynamicHeight&&this.containerHeight||(e=this.$element[0].getBoundingClientRect().height||this.containerHeight,e="none"===this.$element.css("display")?0:e,this.$container.css("height",e),this.containerHeight=e),this.elemHeight=this.containerHeight,this.isStuck||this.$element.hasClass("is-at-bottom")&&(e=(this.points?this.points[1]-this.$container.offset().top:this.anchorHeight)-this.elemHeight,this.$element.css("top",e)),this._setBreakPoints(this.containerHeight,function(){t&&"function"==typeof t&&t()})}},{key:"_setBreakPoints",value:function(t,e){if(!this.canStick){if(!e||"function"!=typeof e)return!1;e()}var n=p(this.options.marginTop),i=p(this.options.marginBottom),o=this.points?this.points[0]:this.$anchor.offset().top,s=this.points?this.points[1]:o+this.anchorHeight,r=window.innerHeight;"top"===this.options.stickTo?(o-=n,s-=t+n):"bottom"===this.options.stickTo&&(o-=r-(t+i),s-=r-i),this.topPoint=o,this.bottomPoint=s,e&&"function"==typeof e&&e()}},{key:"_destroy",value:function(){this._removeSticky(!0),this.$element.removeClass("".concat(this.options.stickyClass," is-anchored is-at-top")).css({height:"",top:"",bottom:"","max-width":""}).off("resizeme.zf.trigger").off("mutateme.zf.trigger"),this.$anchor&&this.$anchor.length&&this.$anchor.off("change.zf.sticky"),this.scrollListener&&a()(window).off(this.scrollListener),this.onLoadListener&&a()(window).off(this.onLoadListener),this.wasWrapped?this.$element.unwrap():this.$container.removeClass(this.options.containerClass).css({height:""})}}])&&c(t.prototype,e),n&&c(t,n),o}();function p(t){return parseInt(window.getComputedStyle(document.body,null).fontSize,10)*t}i.defaults={container:"<div data-sticky-container></div>",stickTo:"top",anchor:"",topAnchor:"",btmAnchor:"",marginTop:1,marginBottom:1,stickyOn:"medium",stickyClass:"sticky",containerClass:"sticky-container",dynamicHeight:!0,checkEvery:-1}},"./js/foundation.tabs.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Tabs",function(){return i});var e=n("jquery"),a=n.n(e),s=n("./js/foundation.core.plugin.js"),l=n("./js/foundation.core.utils.js"),r=n("./js/foundation.util.keyboard.js"),u=n("./js/foundation.util.imageLoader.js");function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=o(n);return function(t,e){{if(e&&("object"===c(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=o(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,s["Plugin"]);var t,e,n,i=h(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="Tabs",this._init(),r.Keyboard.register("Tabs",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"previous",ARROW_DOWN:"next",ARROW_LEFT:"previous"})}},{key:"_init",value:function(){var t,i=this,r=this;this._isInitializing=!0,this.$element.attr({role:"tablist"}),this.$tabTitles=this.$element.find(".".concat(this.options.linkClass)),this.$tabContent=a()('[data-tabs-content="'.concat(this.$element[0].id,'"]')),this.$tabTitles.each(function(){var t=a()(this),e=t.find("a"),n=t.hasClass("".concat(r.options.linkActiveClass)),i=e.attr("data-tabs-target")||e[0].hash.slice(1),o=e[0].id||"".concat(i,"-label"),s=a()("#".concat(i));t.attr({role:"presentation"}),e.attr({role:"tab","aria-controls":i,"aria-selected":n,id:o,tabindex:n?"0":"-1"}),s.attr({role:"tabpanel","aria-labelledby":o}),n&&(r._initialAnchor="#".concat(i)),n||s.attr("aria-hidden","true"),n&&r.options.autoFocus&&(r.onLoadListener=Object(l.onLoad)(a()(window),function(){a()("html, body").animate({scrollTop:t.offset().top},r.options.deepLinkSmudgeDelay,function(){e.focus()})}))}),this.options.matchHeight&&((t=this.$tabContent.find("img")).length?Object(u.onImagesLoaded)(t,this._setHeight.bind(this)):this._setHeight()),this._checkDeepLink=function(){var t=window.location.hash;if(!t.length){if(i._isInitializing)return;i._initialAnchor&&(t=i._initialAnchor)}var e=0<=t.indexOf("#")?t.slice(1):t,n=e&&a()("#".concat(e)),t=t&&i.$element.find('[href$="'.concat(t,'"],[data-tabs-target="').concat(e,'"]')).first();!n.length||!t.length||(n&&n.length&&t&&t.length?i.selectTab(n,!0):i._collapse(),i.options.deepLinkSmudge&&(e=i.$element.offset(),a()("html, body").animate({scrollTop:e.top-i.options.deepLinkSmudgeOffset},i.options.deepLinkSmudgeDelay)),i.$element.trigger("deeplink.zf.tabs",[t,n]))},this.options.deepLink&&this._checkDeepLink(),this._events(),this._isInitializing=!1}},{key:"_events",value:function(){this._addKeyHandler(),this._addClickHandler(),this._setHeightMqHandler=null,this.options.matchHeight&&(this._setHeightMqHandler=this._setHeight.bind(this),a()(window).on("changed.zf.mediaquery",this._setHeightMqHandler)),this.options.deepLink&&a()(window).on("hashchange",this._checkDeepLink)}},{key:"_addClickHandler",value:function(){var e=this;this.$element.off("click.zf.tabs").on("click.zf.tabs",".".concat(this.options.linkClass),function(t){t.preventDefault(),e._handleTabChange(a()(this))})}},{key:"_addKeyHandler",value:function(){var s=this;this.$tabTitles.off("keydown.zf.tabs").on("keydown.zf.tabs",function(t){var e,n,i,o;9!==t.which&&(e=a()(this),(n=e.parent("ul").children("li")).each(function(t){a()(this).is(e)&&(o=s.options.wrapOnKeys?(i=0===t?n.last():n.eq(t-1),t===n.length-1?n.first():n.eq(t+1)):(i=n.eq(Math.max(0,t-1)),n.eq(Math.min(t+1,n.length-1))))}),r.Keyboard.handleKey(t,"Tabs",{open:function(){e.find('[role="tab"]').focus(),s._handleTabChange(e)},previous:function(){i.find('[role="tab"]').focus(),s._handleTabChange(i)},next:function(){o.find('[role="tab"]').focus(),s._handleTabChange(o)},handled:function(){t.preventDefault()}}))})}},{key:"_handleTabChange",value:function(t,e){var n,i,o;t.hasClass("".concat(this.options.linkActiveClass))?this.options.activeCollapse&&this._collapse():(n=this.$element.find(".".concat(this.options.linkClass,".").concat(this.options.linkActiveClass)),i=(i=(o=t.find('[role="tab"]')).attr("data-tabs-target"))&&i.length?"#".concat(i):o[0].hash,o=this.$tabContent.find(i),this._collapseTab(n),this._openTab(t),this.options.deepLink&&!e&&(this.options.updateHistory?history.pushState({},"",i):history.replaceState({},"",i)),this.$element.trigger("change.zf.tabs",[t,o]),o.find("[data-mutate]").trigger("mutateme.zf.trigger"))}},{key:"_openTab",value:function(t){var e=t.find('[role="tab"]'),n=e.attr("data-tabs-target")||e[0].hash.slice(1),n=this.$tabContent.find("#".concat(n));t.addClass("".concat(this.options.linkActiveClass)),e.attr({"aria-selected":"true",tabindex:"0"}),n.addClass("".concat(this.options.panelActiveClass)).removeAttr("aria-hidden")}},{key:"_collapseTab",value:function(t){t=t.removeClass("".concat(this.options.linkActiveClass)).find('[role="tab"]').attr({"aria-selected":"false",tabindex:-1});a()("#".concat(t.attr("aria-controls"))).removeClass("".concat(this.options.panelActiveClass)).attr({"aria-hidden":"true"})}},{key:"_collapse",value:function(){var t=this.$element.find(".".concat(this.options.linkClass,".").concat(this.options.linkActiveClass));t.length&&(this._collapseTab(t),this.$element.trigger("collapse.zf.tabs",[t]))}},{key:"selectTab",value:function(t,e){var n,t="object"===c(t)?t[0].id:t;t.indexOf("#")<0?n="#".concat(t):t=(n=t).slice(1);t=this.$tabTitles.has('[href$="'.concat(n,'"],[data-tabs-target="').concat(t,'"]')).first();this._handleTabChange(t,e)}},{key:"_setHeight",value:function(){var i=0,o=this;this.$tabContent&&this.$tabContent.find(".".concat(this.options.panelClass)).css("min-height","").each(function(){var t=a()(this),e=t.hasClass("".concat(o.options.panelActiveClass));e||t.css({visibility:"hidden",display:"block"});var n=this.getBoundingClientRect().height;e||t.css({visibility:"",display:""}),i=i<n?n:i}).css("min-height","".concat(i,"px"))}},{key:"_destroy",value:function(){this.$element.find(".".concat(this.options.linkClass)).off(".zf.tabs").hide().end().find(".".concat(this.options.panelClass)).hide(),this.options.matchHeight&&null!=this._setHeightMqHandler&&a()(window).off("changed.zf.mediaquery",this._setHeightMqHandler),this.options.deepLink&&a()(window).off("hashchange",this._checkDeepLink),this.onLoadListener&&a()(window).off(this.onLoadListener)}}])&&f(t.prototype,e),n&&f(t,n),o}();i.defaults={deepLink:!1,deepLinkSmudge:!1,deepLinkSmudgeDelay:300,deepLinkSmudgeOffset:0,updateHistory:!1,autoFocus:!1,wrapOnKeys:!0,matchHeight:!1,activeCollapse:!1,linkClass:"tabs-title",linkActiveClass:"is-active",panelClass:"tabs-panel",panelActiveClass:"is-active"}},"./js/foundation.toggler.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Toggler",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.motion.js"),a=n("./js/foundation.core.plugin.js"),l=n("./js/foundation.core.utils.js"),u=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,a["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,t.data(),e),this.className="",this.className="Toggler",u.Triggers.init(s.a),this._init(),this._events()}},{key:"_init",value:function(){var t,i=this.$element[0].id,e=s()('[data-open~="'.concat(i,'"], [data-close~="').concat(i,'"], [data-toggle~="').concat(i,'"]'));if(this.options.animate)t=this.options.animate.split(" "),this.animationIn=t[0],this.animationOut=t[1]||null,e.attr("aria-expanded",!this.$element.is(":hidden"));else{if("string"!=typeof(t=this.options.toggler)||!t.length)throw new Error("The 'toggler' option containing the target class is required, got \"".concat(t,'"'));this.className="."===t[0]?t.slice(1):t,e.attr("aria-expanded",this.$element.hasClass(this.className))}e.each(function(t,e){var n=s()(e),e=n.attr("aria-controls")||"";new RegExp("\\b".concat(Object(l.RegExpEscape)(i),"\\b")).test(e)||n.attr("aria-controls",e?"".concat(e," ").concat(i):i)})}},{key:"_events",value:function(){this.$element.off("toggle.zf.trigger").on("toggle.zf.trigger",this.toggle.bind(this))}},{key:"toggle",value:function(){this[this.options.animate?"_toggleAnimate":"_toggleClass"]()}},{key:"_toggleClass",value:function(){this.$element.toggleClass(this.className);var t=this.$element.hasClass(this.className);t?this.$element.trigger("on.zf.toggler"):this.$element.trigger("off.zf.toggler"),this._updateARIA(t),this.$element.find("[data-mutate]").trigger("mutateme.zf.trigger")}},{key:"_toggleAnimate",value:function(){var t=this;this.$element.is(":hidden")?r.Motion.animateIn(this.$element,this.animationIn,function(){t._updateARIA(!0),this.trigger("on.zf.toggler"),this.find("[data-mutate]").trigger("mutateme.zf.trigger")}):r.Motion.animateOut(this.$element,this.animationOut,function(){t._updateARIA(!1),this.trigger("off.zf.toggler"),this.find("[data-mutate]").trigger("mutateme.zf.trigger")})}},{key:"_updateARIA",value:function(t){var e=this.$element[0].id;s()('[data-open="'.concat(e,'"], [data-close="').concat(e,'"], [data-toggle="').concat(e,'"]')).attr({"aria-expanded":!!t})}},{key:"_destroy",value:function(){this.$element.off(".zf.toggler")}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={toggler:void 0,animate:!1}},"./js/foundation.tooltip.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Tooltip",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.utils.js"),a=n("./js/foundation.util.mediaQuery.js"),l=n("./js/foundation.util.triggers.js"),u=n("./js/foundation.positionable.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){t=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t}(t,e);if(t){e=Object.getOwnPropertyDescriptor(t,e);return e.get?e.get.call(n):e.value}})(t,e,n||t)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,u["Positionable"]);var t,e,n,i=h(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Tooltip",this.isActive=!1,this.isClick=!1,l.Triggers.init(s.a),this._init()}},{key:"_init",value:function(){a.MediaQuery._init();var t=this.$element.attr("aria-describedby")||Object(r.GetYoDigits)(6,"tooltip");this.options.tipText=this.options.tipText||this.$element.attr("title"),this.template=this.options.template?s()(this.options.template):this._buildTemplate(t),(this.options.allowHtml?this.template.appendTo(document.body).html(this.options.tipText):this.template.appendTo(document.body).text(this.options.tipText)).hide(),this.$element.attr({title:"","aria-describedby":t,"data-yeti-box":t,"data-toggle":t,"data-resize":t}).addClass(this.options.triggerClass),f(p(o.prototype),"_init",this).call(this),this._events()}},{key:"_getDefaultPosition",value:function(){var t=this.$element[0].className,t=(t=this.$element[0]instanceof SVGElement?t.baseVal:t).match(/\b(top|left|right|bottom)\b/g);return t?t[0]:"top"}},{key:"_getDefaultAlignment",value:function(){return"center"}},{key:"_getHOffset",value:function(){return"left"===this.position||"right"===this.position?this.options.hOffset+this.options.tooltipWidth:this.options.hOffset}},{key:"_getVOffset",value:function(){return"top"===this.position||"bottom"===this.position?this.options.vOffset+this.options.tooltipHeight:this.options.vOffset}},{key:"_buildTemplate",value:function(t){var e="".concat(this.options.tooltipClass," ").concat(this.options.templateClasses).trim();return s()("<div></div>").addClass(e).attr({role:"tooltip","aria-hidden":!0,"data-is-active":!1,"data-is-focus":!1,id:t})}},{key:"_setPosition",value:function(){f(p(o.prototype),"_setPosition",this).call(this,this.$element,this.template)}},{key:"show",value:function(){if("all"!==this.options.showOn&&!a.MediaQuery.is(this.options.showOn))return!1;this.template.css("visibility","hidden").show(),this._setPosition(),this.template.removeClass("top bottom left right").addClass(this.position),this.template.removeClass("align-top align-bottom align-left align-right align-center").addClass("align-"+this.alignment),this.$element.trigger("closeme.zf.tooltip",this.template.attr("id")),this.template.attr({"data-is-active":!0,"aria-hidden":!1}),this.isActive=!0,this.template.stop().hide().css("visibility","").fadeIn(this.options.fadeInDuration,function(){}),this.$element.trigger("show.zf.tooltip")}},{key:"hide",value:function(){var t=this;this.template.stop().attr({"aria-hidden":!0,"data-is-active":!1}).fadeOut(this.options.fadeOutDuration,function(){t.isActive=!1,t.isClick=!1}),this.$element.trigger("hide.zf.tooltip")}},{key:"_events",value:function(){var t=this,e="ontouchstart"in window||void 0!==window.ontouchstart,n=!1;e&&this.options.disableForTouch||(this.options.disableHover||this.$element.on("mouseenter.zf.tooltip",function(){t.isActive||(t.timeout=setTimeout(function(){t.show()},t.options.hoverDelay))}).on("mouseleave.zf.tooltip",Object(r.ignoreMousedisappear)(function(){clearTimeout(t.timeout),n&&(!t.isClick||t.options.clickOpen)||t.hide()})),e&&this.$element.on("tap.zf.tooltip touchend.zf.tooltip",function(){t.isActive?t.hide():t.show()}),this.options.clickOpen?this.$element.on("mousedown.zf.tooltip",function(){t.isClick||(t.isClick=!0,!t.options.disableHover&&t.$element.attr("tabindex")||t.isActive||t.show())}):this.$element.on("mousedown.zf.tooltip",function(){t.isClick=!0}),this.$element.on({"close.zf.trigger":this.hide.bind(this)}),this.$element.on("focus.zf.tooltip",function(){return n=!0,t.isClick?(t.options.clickOpen||(n=!1),!1):void t.show()}).on("focusout.zf.tooltip",function(){n=!1,t.isClick=!1,t.hide()}).on("resizeme.zf.trigger",function(){t.isActive&&t._setPosition()}))}},{key:"toggle",value:function(){this.isActive?this.hide():this.show()}},{key:"_destroy",value:function(){this.$element.attr("title",this.template.text()).off(".zf.trigger .zf.tooltip").removeClass(this.options.triggerClass).removeClass("top right left bottom").removeAttr("aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box"),this.template.remove()}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={hoverDelay:200,fadeInDuration:150,fadeOutDuration:150,disableHover:!1,disableForTouch:!1,templateClasses:"",tooltipClass:"tooltip",triggerClass:"has-tip",showOn:"small",template:"",tipText:"",touchCloseText:"Tap to close.",clickOpen:!0,position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!1,vOffset:0,hOffset:0,tooltipHeight:14,tooltipWidth:12,allowHtml:!1}},"./js/foundation.util.box.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Box",function(){return i});var i={ImNotTouchingYou:function(t,e,n,i,o){return 0===s(t,e,n,i,o)},OverlapArea:s,GetDimensions:f,GetExplicitOffsets:function(t,e,n,i,o,s,r){var a,l,u=f(t),c=e?f(e):null;if(null!==c){switch(n){case"top":a=c.offset.top-(u.height+o);break;case"bottom":a=c.offset.top+c.height+o;break;case"left":l=c.offset.left-(u.width+s);break;case"right":l=c.offset.left+c.width+s}switch(n){case"top":case"bottom":switch(i){case"left":l=c.offset.left+s;break;case"right":l=c.offset.left-u.width+c.width-s;break;case"center":l=r?s:c.offset.left+c.width/2-u.width/2+s}break;case"right":case"left":switch(i){case"bottom":a=c.offset.top-o+c.height-u.height;break;case"top":a=c.offset.top+o;break;case"center":a=c.offset.top+o+c.height/2-u.height/2}}}return{top:a,left:l}}};function s(t,e,n,i,o){var s,r,a,t=f(t);return t=e?(s=(e=f(e)).height+e.offset.top-(t.offset.top+t.height),r=t.offset.top-e.offset.top,a=t.offset.left-e.offset.left,e.width+e.offset.left-(t.offset.left+t.width)):(s=t.windowDims.height+t.windowDims.offset.top-(t.offset.top+t.height),r=t.offset.top-t.windowDims.offset.top,a=t.offset.left-t.windowDims.offset.left,t.windowDims.width-(t.offset.left+t.width)),s=o?0:Math.min(s,0),r=Math.min(r,0),a=Math.min(a,0),t=Math.min(t,0),n?a+t:i?r+s:Math.sqrt(r*r+s*s+a*a+t*t)}function f(t){if((t=t.length?t[0]:t)===window||t===document)throw new Error("I'm sorry, Dave. I'm afraid I can't do that.");var e=t.getBoundingClientRect(),n=t.parentNode.getBoundingClientRect(),i=document.body.getBoundingClientRect(),o=window.pageYOffset,t=window.pageXOffset;return{width:e.width,height:e.height,offset:{top:e.top+o,left:e.left+t},parentDims:{width:n.width,height:n.height,offset:{top:n.top+o,left:n.left+t}},windowDims:{width:i.width,height:i.height,offset:{top:o,left:t}}}}},"./js/foundation.util.imageLoader.js":function(t,e,n){"use strict";n.r(e),n.d(e,"onImagesLoaded",function(){return i});var e=n("jquery"),o=n.n(e);function i(t,e){var n=t.length;function i(){0===--n&&e()}0===n&&e(),t.each(function(){var t,e;this.complete&&void 0!==this.naturalWidth?i():(t=new Image,e="load.zf.images error.zf.images",o()(t).one(e,function t(){o()(this).off(e,t),i()}),t.src=o()(this).attr("src"))})}},"./js/foundation.util.keyboard.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Keyboard",function(){return u});var e=n("jquery"),o=n.n(e),s=n("./js/foundation.core.utils.js"),i={9:"TAB",13:"ENTER",27:"ESCAPE",32:"SPACE",35:"END",36:"HOME",37:"ARROW_LEFT",38:"ARROW_UP",39:"ARROW_RIGHT",40:"ARROW_DOWN"},r={};function a(t){return!!t&&t.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(function(){return!(!o()(this).is(":visible")||o()(this).attr("tabindex")<0)}).sort(function(t,e){if(o()(t).attr("tabindex")===o()(e).attr("tabindex"))return 0;var n=parseInt(o()(t).attr("tabindex"),10),i=parseInt(o()(e).attr("tabindex"),10);return void 0===o()(t).attr("tabindex")&&0<i?1:void 0===o()(e).attr("tabindex")&&0<n?-1:0===n&&0<i?1:0===i&&0<n||n<i?-1:i<n?1:void 0})}function l(t){var e=(e=i[t.which||t.keyCode]||String.fromCharCode(t.which).toUpperCase()).replace(/\W+/,"");return t.shiftKey&&(e="SHIFT_".concat(e)),t.ctrlKey&&(e="CTRL_".concat(e)),e=(e=t.altKey?"ALT_".concat(e):e).replace(/_$/,"")}var u={keys:function(t){var e,n={};for(e in t)t.hasOwnProperty(e)&&(n[t[e]]=t[e]);return n}(i),parseKey:l,handleKey:function(t,e,n){var i=r[e],e=this.parseKey(t);if(!i)return console.warn("Component not defined!");!0!==t.zfIsKeyHandled&&((e=n[(void 0===i.ltr?i:Object(s.rtl)()?o.a.extend({},i.ltr,i.rtl):o.a.extend({},i.rtl,i.ltr))[e]])&&"function"==typeof e?(e=e.apply(),t.zfIsKeyHandled=!0,!n.handled&&"function"!=typeof n.handled||n.handled(e)):!n.unhandled&&"function"!=typeof n.unhandled||n.unhandled())},findFocusable:a,register:function(t,e){r[t]=e},trapFocus:function(t){var e=a(t),n=e.eq(0),i=e.eq(-1);t.on("keydown.zf.trapfocus",function(t){t.target===i[0]&&"TAB"===l(t)?(t.preventDefault(),n.focus()):t.target===n[0]&&"SHIFT_TAB"===l(t)&&(t.preventDefault(),i.focus())})},releaseFocus:function(t){t.off("keydown.zf.trapfocus")}}},"./js/foundation.util.mediaQuery.js":function(t,e,n){"use strict";n.r(e),n.d(e,"MediaQuery",function(){return c});var i,o,s,e=n("jquery"),r=n.n(e);function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,s=[],r=!0,a=!1;try{for(n=n.call(t);!(r=(i=n.next()).done)&&(s.push(i.value),!e||s.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{r||null==n.return||n.return()}finally{if(a)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(n="Object"===n&&t.constructor?t.constructor.name:n)||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}window.matchMedia||(window.matchMedia=((s=window.styleMedia||window.media)||(i=document.createElement("style"),e=document.getElementsByTagName("script")[0],o=null,i.type="text/css",i.id="matchmediajs-test",e?e.parentNode.insertBefore(i,e):document.head.appendChild(i),o="getComputedStyle"in window&&window.getComputedStyle(i,null)||i.currentStyle,s={matchMedium:function(t){t="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=t:i.textContent=t,"1px"===o.width}}),function(t){return{matches:s.matchMedium(t||"all"),media:t||"all"}}));var c={queries:[],current:"",_init:function(){if(!0===this.isInitialized)return this;this.isInitialized=!0;r()("meta.foundation-mq").length||r()('<meta class="foundation-mq" name="foundation-mq" content>').appendTo(document.head);var t,e,n,i=r()(".foundation-mq").css("font-family");for(n in e={},t="string"==typeof(i=i)&&(i=i.trim().slice(1,-1))?e=i.split("&").reduce(function(t,e){var n=e.replace(/\+/g," ").split("="),e=n[0],n=n[1],e=decodeURIComponent(e),n=void 0===n?null:decodeURIComponent(n);return t.hasOwnProperty(e)?Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]:t[e]=n,t},{}):e,this.queries=[],t)t.hasOwnProperty(n)&&this.queries.push({name:n,value:"only screen and (min-width: ".concat(t[n],")")});this.current=this._getCurrentSize(),this._watcher()},_reInit:function(){this.isInitialized=!1,this._init()},atLeast:function(t){t=this.get(t);return!!t&&window.matchMedia(t).matches},only:function(t){return t===this._getCurrentSize()},upTo:function(t){t=this.next(t);return!t||!this.atLeast(t)},is:function(t){var e=l(t.trim().split(" ").filter(function(t){return!!t.length}),2),n=e[0],e=e[1],e=void 0===e?"":e;if("only"===e)return this.only(n);if(!e||"up"===e)return this.atLeast(n);if("down"===e)return this.upTo(n);throw new Error('\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like "<size> <modifier>", got "'.concat(t,'".\n    '))},get:function(t){for(var e in this.queries)if(this.queries.hasOwnProperty(e)){e=this.queries[e];if(t===e.name)return e.value}return null},next:function(e){var n=this,t=this.queries.findIndex(function(t){return n._getQueryName(t)===e});if(-1===t)throw new Error('\n        Unknown breakpoint "'.concat(e,'" passed to MediaQuery.next().\n        Ensure it is present in your Sass "$breakpoints" setting.\n      '));t=this.queries[t+1];return t?t.name:null},_getQueryName:function(t){if("string"==typeof t)return t;if("object"===a(t))return t.name;throw new TypeError('\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got "'.concat(t,'" (').concat(a(t),")\n    "))},_getCurrentSize:function(){for(var t,e=0;e<this.queries.length;e++){var n=this.queries[e];window.matchMedia(n.value).matches&&(t=n)}return t&&this._getQueryName(t)},_watcher:function(){var n=this;r()(window).on("resize.zf.trigger",function(){var t=n._getCurrentSize(),e=n.current;t!==e&&(n.current=t,r()(window).trigger("changed.zf.mediaquery",[t,e]))})}}},"./js/foundation.util.motion.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Move",function(){return o}),n.d(e,"Motion",function(){return i});var e=n("jquery"),a=n.n(e),l=n("./js/foundation.core.utils.js"),u=["mui-enter","mui-leave"],c=["mui-enter-active","mui-leave-active"],i={animateIn:function(t,e,n){s(!0,t,e,n)},animateOut:function(t,e,n){s(!1,t,e,n)}};function o(n,i,o){var s,r,a=null;if(0===n)return o.apply(i),void i.trigger("finished.zf.animate",[i]).triggerHandler("finished.zf.animate",[i]);s=window.requestAnimationFrame(function t(e){r=e-(a=a||e),o.apply(i),r<n?s=window.requestAnimationFrame(t,i):(window.cancelAnimationFrame(s),i.trigger("finished.zf.animate",[i]).triggerHandler("finished.zf.animate",[i]))})}function s(t,e,n,i){var o,s;function r(){e[0].style.transitionDuration=0,e.removeClass("".concat(o," ").concat(s," ").concat(n))}(e=a()(e).eq(0)).length&&(o=t?u[0]:u[1],s=t?c[0]:c[1],r(),e.addClass(n).css("transition","none"),requestAnimationFrame(function(){e.addClass(o),t&&e.show()}),requestAnimationFrame(function(){e[0].offsetWidth,e.css("transition","").addClass(s)}),e.one(Object(l.transitionend)(e),function(){t||e.hide();r(),i&&i.apply(e)}))}},"./js/foundation.util.nest.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Nest",function(){return i});var e=n("jquery"),a=n.n(e),i={Feather:function(t){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"zf";t.attr("role","menubar"),t.find("a").attr({role:"menuitem"});var t=t.find("li").attr({role:"none"}),i="is-".concat(n,"-submenu"),o="".concat(i,"-item"),s="is-".concat(n,"-submenu-parent"),r="accordion"!==n;t.each(function(){var t=a()(this),e=t.children("ul");e.length&&(t.addClass(s),r&&(t.children("a:first").attr({"aria-haspopup":!0,"aria-label":t.children("a:first").text()}),"drilldown"===n&&t.attr({"aria-expanded":!1})),e.addClass("submenu ".concat(i)).attr({"data-submenu":"",role:"menubar"}),"drilldown"===n&&e.attr({"aria-hidden":!0})),t.parent("[data-submenu]").length&&t.addClass("is-submenu-item ".concat(o))})},Burn:function(t,e){var n="is-".concat(e,"-submenu"),i="".concat(n,"-item"),e="is-".concat(e,"-submenu-parent");t.find(">li, > li > ul, .menu, .menu > li, [data-submenu] > li").removeClass("".concat(n," ").concat(i," ").concat(e," is-submenu-item submenu is-active")).removeAttr("data-submenu").css("display","")}}},"./js/foundation.util.timer.js":function(t,e,n){"use strict";function i(e,t,n){var i,o,s=this,r=t.duration,a=Object.keys(e.data())[0]||"timer",l=-1;this.isPaused=!1,this.restart=function(){l=-1,clearTimeout(o),this.start()},this.start=function(){this.isPaused=!1,clearTimeout(o),l=l<=0?r:l,e.data("paused",!1),i=Date.now(),o=setTimeout(function(){t.infinite&&s.restart(),n&&"function"==typeof n&&n()},l),e.trigger("timerstart.zf.".concat(a))},this.pause=function(){this.isPaused=!0,clearTimeout(o),e.data("paused",!0);var t=Date.now();l-=t-i,e.trigger("timerpaused.zf.".concat(a))}}n.r(e),n.d(e,"Timer",function(){return i})},"./js/foundation.util.touch.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Touch",function(){return u});var e=n("jquery"),o=n.n(e);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}var i,r,a,l,u={},c=!1,f=!1;function d(t){this.removeEventListener("touchmove",h),this.removeEventListener("touchend",d),f||(t=o.a.Event("tap",l||t),o()(this).trigger(t)),l=null,f=c=!1}function h(t){var e,n;!0===o.a.spotSwipe.preventDefault&&t.preventDefault(),c&&(e=t.touches[0].pageX,e=i-e,f=!0,a=(new Date).getTime()-r,(n=Math.abs(e)>=o.a.spotSwipe.moveThreshold&&a<=o.a.spotSwipe.timeThreshold?0<e?"left":"right":n)&&(t.preventDefault(),d.apply(this,arguments),o()(this).trigger(o.a.Event("swipe",Object.assign({},t)),n).trigger(o.a.Event("swipe".concat(n),Object.assign({},t)))))}function p(t){1===t.touches.length&&(i=t.touches[0].pageX,l=t,f=!(c=!0),r=(new Date).getTime(),this.addEventListener("touchmove",h,{passive:!0===o.a.spotSwipe.preventDefault}),this.addEventListener("touchend",d,!1))}function m(){this.addEventListener&&this.addEventListener("touchstart",p,{passive:!0})}var g=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.version="1.0.0",this.enabled="ontouchstart"in document.documentElement,this.preventDefault=!1,this.moveThreshold=75,this.timeThreshold=200,this._init()}var e,n,i;return e=t,(n=[{key:"_init",value:function(){o.a.event.special.swipe={setup:m},o.a.event.special.tap={setup:m},o.a.each(["left","up","down","right"],function(){o.a.event.special["swipe".concat(this)]={setup:function(){o()(this).on("swipe",o.a.noop)}}})}}])&&s(e.prototype,n),i&&s(e,i),t}();u.setupSpotSwipe=function(){o.a.spotSwipe=new g(o.a)},u.setupTouchHandler=function(){o.a.fn.addTouch=function(){this.each(function(t,e){o()(e).bind("touchstart touchmove touchend touchcancel",function(t){n(t)})});var n=function(t){var e,n=t.changedTouches[0],t={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}[t.type];"MouseEvent"in window&&"function"==typeof window.MouseEvent?e=new window.MouseEvent(t,{bubbles:!0,cancelable:!0,screenX:n.screenX,screenY:n.screenY,clientX:n.clientX,clientY:n.clientY}):(e=document.createEvent("MouseEvent")).initMouseEvent(t,!0,!0,window,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(e)}}},u.init=function(){void 0===o.a.spotSwipe&&(u.setupSpotSwipe(o.a),u.setupTouchHandler(o.a))}},"./js/foundation.util.triggers.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Triggers",function(){return u});var e=n("jquery"),s=n.n(e),i=n("./js/foundation.core.utils.js"),o=n("./js/foundation.util.motion.js");function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(e,n){e.data(n).split(" ").forEach(function(t){s()("#".concat(t))["close"===n?"trigger":"triggerHandler"]("".concat(n,".zf.trigger"),[e])})}var l=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),u={Listeners:{Basic:{},Global:{}},Initializers:{}};function c(t,e,n){var i,o=Array.prototype.slice.call(arguments,3);s()(window).on(e,function(){i&&clearTimeout(i),i=setTimeout(function(){n.apply(null,o)},t||10)})}u.Listeners.Basic={openListener:function(){a(s()(this),"open")},closeListener:function(){s()(this).data("close")?a(s()(this),"close"):s()(this).trigger("close.zf.trigger")},toggleListener:function(){s()(this).data("toggle")?a(s()(this),"toggle"):s()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){var e=s()(this).data("closable");t.stopPropagation(),""!==e?o.Motion.animateOut(s()(this),e,function(){s()(this).trigger("closed.zf")}):s()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=s()(this).data("toggle-focus");s()("#".concat(t)).triggerHandler("toggle.zf.trigger",[s()(this)])}},u.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",u.Listeners.Basic.openListener)},u.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",u.Listeners.Basic.closeListener)},u.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",u.Listeners.Basic.toggleListener)},u.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",u.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",u.Listeners.Basic.closeableListener)},u.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",u.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",u.Listeners.Basic.toggleFocusListener)},u.Listeners.Global={resizeListener:function(t){l||t.each(function(){s()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){l||t.each(function(){s()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){t=t.namespace.split(".")[0];s()("[data-".concat(t,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=s()(this);t.triggerHandler("close.zf.trigger",[t])})}},u.Initializers.addClosemeListener=function(t){var e=s()("[data-yeti-box]"),n=["dropdown","tooltip","reveal"];t&&("string"==typeof t?n.push(t):"object"===r(t)&&"string"==typeof t[0]?n=n.concat(t):console.error("Plugin names must be strings")),e.length&&(n=n.map(function(t){return"closeme.zf.".concat(t)}).join(" "),s()(window).off(n).on(n,u.Listeners.Global.closeMeListener))},u.Initializers.addResizeListener=function(t){var e=s()("[data-resize]");e.length&&c(t,"resize.zf.trigger",u.Listeners.Global.resizeListener,e)},u.Initializers.addScrollListener=function(t){var e=s()("[data-scroll]");e.length&&c(t,"scroll.zf.trigger",u.Listeners.Global.scrollListener,e)},u.Initializers.addMutationEventsListener=function(t){if(!l)return!1;function e(t){var e=s()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}}var n=t.find("[data-resize], [data-scroll], [data-mutate]");if(n.length)for(var i=0;i<=n.length-1;i++)new l(e).observe(n[i],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})},u.Initializers.addSimpleListeners=function(){var t=s()(document);u.Initializers.addOpenListener(t),u.Initializers.addCloseListener(t),u.Initializers.addToggleListener(t),u.Initializers.addCloseableListener(t),u.Initializers.addToggleFocusListener(t)},u.Initializers.addGlobalListeners=function(){var t=s()(document);u.Initializers.addMutationEventsListener(t),u.Initializers.addResizeListener(250),u.Initializers.addScrollListener(),u.Initializers.addClosemeListener()},u.init=function(t,e){Object(i.onLoad)(s()(window),function(){!0!==s.a.triggersInitialized&&(u.Initializers.addSimpleListeners(),u.Initializers.addGlobalListeners(),s.a.triggersInitialized=!0)}),e&&(e.Triggers=u,e.IHearYou=u.Initializers.addGlobalListeners)}},0:function(t,e,n){t.exports=n("./js/entries/foundation.js")},jquery:function(t,e){t.exports=n}},s={},o.m=i,o.c=s,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=0);function o(t){if(s[t])return s[t].exports;var e=s[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}var i,s});
+!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("jquery"));else if("function"==typeof define&&define.amd)define(["jquery"],e);else{var n,i="object"==typeof exports?e(require("jquery")):e(t.jQuery);for(n in i)("object"==typeof exports?exports:t)[n]=i[n]}}(window,function(n){return i={"./js/entries/foundation.js":function(t,e,n){"use strict";n.r(e);var i=n("jquery"),i=n.n(i),o=n("./js/foundation.core.js");n.d(e,"Foundation",function(){return o.Foundation});var s=n("./js/foundation.core.utils.js");n.d(e,"CoreUtils",function(){return s});var r=n("./js/foundation.util.box.js");n.d(e,"Box",function(){return r.Box});var a=n("./js/foundation.util.imageLoader.js");n.d(e,"onImagesLoaded",function(){return a.onImagesLoaded});var l=n("./js/foundation.util.keyboard.js");n.d(e,"Keyboard",function(){return l.Keyboard});var u=n("./js/foundation.util.mediaQuery.js");n.d(e,"MediaQuery",function(){return u.MediaQuery});var c=n("./js/foundation.util.motion.js");n.d(e,"Motion",function(){return c.Motion});var f=n("./js/foundation.util.nest.js");n.d(e,"Nest",function(){return f.Nest});var d=n("./js/foundation.util.timer.js");n.d(e,"Timer",function(){return d.Timer});var h=n("./js/foundation.util.touch.js");n.d(e,"Touch",function(){return h.Touch});var p=n("./js/foundation.util.triggers.js");n.d(e,"Triggers",function(){return p.Triggers});var m=n("./js/foundation.abide.js");n.d(e,"Abide",function(){return m.Abide});var v=n("./js/foundation.accordion.js");n.d(e,"Accordion",function(){return v.Accordion});var g=n("./js/foundation.accordionMenu.js");n.d(e,"AccordionMenu",function(){return g.AccordionMenu});var y=n("./js/foundation.drilldown.js");n.d(e,"Drilldown",function(){return y.Drilldown});var b=n("./js/foundation.dropdown.js");n.d(e,"Dropdown",function(){return b.Dropdown});var w=n("./js/foundation.dropdownMenu.js");n.d(e,"DropdownMenu",function(){return w.DropdownMenu});var _=n("./js/foundation.equalizer.js");n.d(e,"Equalizer",function(){return _.Equalizer});var $=n("./js/foundation.interchange.js");n.d(e,"Interchange",function(){return $.Interchange});var k=n("./js/foundation.magellan.js");n.d(e,"Magellan",function(){return k.Magellan});var j=n("./js/foundation.offcanvas.js");n.d(e,"OffCanvas",function(){return j.OffCanvas});var O=n("./js/foundation.orbit.js");n.d(e,"Orbit",function(){return O.Orbit});var C=n("./js/foundation.responsiveMenu.js");n.d(e,"ResponsiveMenu",function(){return C.ResponsiveMenu});var z=n("./js/foundation.responsiveToggle.js");n.d(e,"ResponsiveToggle",function(){return z.ResponsiveToggle});var T=n("./js/foundation.reveal.js");n.d(e,"Reveal",function(){return T.Reveal});var S=n("./js/foundation.slider.js");n.d(e,"Slider",function(){return S.Slider});var R=n("./js/foundation.smoothScroll.js");n.d(e,"SmoothScroll",function(){return R.SmoothScroll});var E=n("./js/foundation.sticky.js");n.d(e,"Sticky",function(){return E.Sticky});var x=n("./js/foundation.tabs.js");n.d(e,"Tabs",function(){return x.Tabs});var P=n("./js/foundation.toggler.js");n.d(e,"Toggler",function(){return P.Toggler});var A=n("./js/foundation.tooltip.js");n.d(e,"Tooltip",function(){return A.Tooltip});var L=n("./js/foundation.responsiveAccordionTabs.js");n.d(e,"ResponsiveAccordionTabs",function(){return L.ResponsiveAccordionTabs}),o.Foundation.addToJquery(i.a),o.Foundation.rtl=s.rtl,o.Foundation.GetYoDigits=s.GetYoDigits,o.Foundation.transitionend=s.transitionend,o.Foundation.RegExpEscape=s.RegExpEscape,o.Foundation.onLoad=s.onLoad,o.Foundation.Box=r.Box,o.Foundation.onImagesLoaded=a.onImagesLoaded,o.Foundation.Keyboard=l.Keyboard,o.Foundation.MediaQuery=u.MediaQuery,o.Foundation.Motion=c.Motion,o.Foundation.Move=c.Move,o.Foundation.Nest=f.Nest,o.Foundation.Timer=d.Timer,h.Touch.init(i.a),p.Triggers.init(i.a,o.Foundation),u.MediaQuery._init(),o.Foundation.plugin(m.Abide,"Abide"),o.Foundation.plugin(v.Accordion,"Accordion"),o.Foundation.plugin(g.AccordionMenu,"AccordionMenu"),o.Foundation.plugin(y.Drilldown,"Drilldown"),o.Foundation.plugin(b.Dropdown,"Dropdown"),o.Foundation.plugin(w.DropdownMenu,"DropdownMenu"),o.Foundation.plugin(_.Equalizer,"Equalizer"),o.Foundation.plugin($.Interchange,"Interchange"),o.Foundation.plugin(k.Magellan,"Magellan"),o.Foundation.plugin(j.OffCanvas,"OffCanvas"),o.Foundation.plugin(O.Orbit,"Orbit"),o.Foundation.plugin(C.ResponsiveMenu,"ResponsiveMenu"),o.Foundation.plugin(z.ResponsiveToggle,"ResponsiveToggle"),o.Foundation.plugin(T.Reveal,"Reveal"),o.Foundation.plugin(S.Slider,"Slider"),o.Foundation.plugin(R.SmoothScroll,"SmoothScroll"),o.Foundation.plugin(E.Sticky,"Sticky"),o.Foundation.plugin(x.Tabs,"Tabs"),o.Foundation.plugin(P.Toggler,"Toggler"),o.Foundation.plugin(A.Tooltip,"Tooltip"),o.Foundation.plugin(L.ResponsiveAccordionTabs,"ResponsiveAccordionTabs"),e.default=o.Foundation},"./js/foundation.abide.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Abide",function(){return i});var e=n("jquery"),c=n.n(e),s=n("./js/foundation.core.plugin.js"),r=n("./js/foundation.core.utils.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function u(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=f(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=f(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(o,s["Plugin"]);var t,e,n,i=u(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.$element=t,this.options=c.a.extend(!0,{},o.defaults,this.$element.data(),e),this.isEnabled=!0,this.formnovalidate=null,this.className="Abide",this._init()}},{key:"_init",value:function(){var n=this;this.$inputs=c.a.merge(this.$element.find("input").not('[type="submit"]'),this.$element.find("textarea, select")),this.$submits=this.$element.find('[type="submit"]');var t=this.$element.find("[data-abide-error]");this.options.a11yAttributes&&(this.$inputs.each(function(t,e){return n.addA11yAttributes(c()(e))}),t.each(function(t,e){return n.addGlobalErrorA11yAttributes(c()(e))})),this._events()}},{key:"_events",value:function(){var e=this;this.$element.off(".abide").on("reset.zf.abide",function(){e.resetForm()}).on("submit.zf.abide",function(){return e.validateForm()}),this.$submits.off("click.zf.abide keydown.zf.abide").on("click.zf.abide keydown.zf.abide",function(t){t.key&&" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),e.formnovalidate=null!==t.target.getAttribute("formnovalidate"),e.$element.submit())}),"fieldChange"===this.options.validateOn&&this.$inputs.off("change.zf.abide").on("change.zf.abide",function(t){e.validateInput(c()(t.target))}),this.options.liveValidate&&this.$inputs.off("input.zf.abide").on("input.zf.abide",function(t){e.validateInput(c()(t.target))}),this.options.validateOnBlur&&this.$inputs.off("blur.zf.abide").on("blur.zf.abide",function(t){e.validateInput(c()(t.target))})}},{key:"_reflow",value:function(){this._init()}},{key:"_validationIsDisabled",value:function(){return!1===this.isEnabled||("boolean"==typeof this.formnovalidate?this.formnovalidate:!!this.$submits.length&&null!==this.$submits[0].getAttribute("formnovalidate"))}},{key:"enableValidation",value:function(){this.isEnabled=!0}},{key:"disableValidation",value:function(){this.isEnabled=!1}},{key:"requiredCheck",value:function(t){if(!t.attr("required"))return!0;var e=!0;switch(t[0].type){case"checkbox":e=t[0].checked;break;case"select":case"select-one":case"select-multiple":var n=t.find("option:selected");n.length&&n.val()||(e=!1);break;default:t.val()&&t.val().length||(e=!1)}return e}},{key:"findFormError",value:function(e,t){var n=this,i=e.length?e[0].id:"",o=e.siblings(this.options.formErrorSelector);return o.length||(o=e.parent().find(this.options.formErrorSelector)),i&&(o=o.add(this.$element.find('[data-form-error-for="'.concat(i,'"]')))),t&&(o=o.not("[data-form-error-on]"),t.forEach(function(t){o=(o=o.add(e.siblings('[data-form-error-on="'.concat(t,'"]')))).add(n.$element.find('[data-form-error-for="'.concat(i,'"][data-form-error-on="').concat(t,'"]')))})),o}},{key:"findLabel",value:function(t){var e=t[0].id,e=this.$element.find('label[for="'.concat(e,'"]'));return e.length?e:t.closest("label")}},{key:"findRadioLabels",value:function(t){var i=this,t=t.map(function(t,e){var n=e.id,n=i.$element.find('label[for="'.concat(n,'"]'));return(n=!n.length?c()(e).closest("label"):n)[0]});return c()(t)}},{key:"findCheckboxLabels",value:function(t){var i=this,t=t.map(function(t,e){var n=e.id,n=i.$element.find('label[for="'.concat(n,'"]'));return(n=!n.length?c()(e).closest("label"):n)[0]});return c()(t)}},{key:"addErrorClasses",value:function(t,e){var n=this.findLabel(t),e=this.findFormError(t,e);n.length&&n.addClass(this.options.labelErrorClass),e.length&&e.addClass(this.options.formErrorClass),t.addClass(this.options.inputErrorClass).attr({"data-invalid":"","aria-invalid":!0}),e.filter(":visible").length&&this.addA11yErrorDescribe(t,e)}},{key:"addA11yAttributes",value:function(t){var e,n,i=this.findFormError(t),o=i.filter("label");i.length&&((e=i.filter(":visible").first()).length&&this.addA11yErrorDescribe(t,e),o.filter("[for]").length<o.length&&(void 0===(n=t.attr("id"))&&(n=Object(r.GetYoDigits)(6,"abide-input"),t.attr("id",n)),o.each(function(t,e){e=c()(e);void 0===e.attr("for")&&e.attr("for",n)})),i.each(function(t,e){e=c()(e);void 0===e.attr("role")&&e.attr("role","alert")}).end())}},{key:"addA11yErrorDescribe",value:function(t,e){var n;void 0===t.attr("aria-describedby")&&(void 0===(n=e.attr("id"))&&(n=Object(r.GetYoDigits)(6,"abide-error"),e.attr("id",n)),t.attr("aria-describedby",n).data("abide-describedby",!0))}},{key:"addGlobalErrorA11yAttributes",value:function(t){void 0===t.attr("aria-live")&&t.attr("aria-live",this.options.a11yErrorLevel)}},{key:"removeRadioErrorClasses",value:function(t){var e=this.$element.find(':radio[name="'.concat(t,'"]')),n=this.findRadioLabels(e),t=this.findFormError(e);n.length&&n.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeCheckboxErrorClasses",value:function(t){var e=this.$element.find(':checkbox[name="'.concat(t,'"]')),n=this.findCheckboxLabels(e),t=this.findFormError(e);n.length&&n.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeErrorClasses",value:function(t){if("radio"===t[0].type)return this.removeRadioErrorClasses(t.attr("name"));if("checkbox"===t[0].type)return this.removeCheckboxErrorClasses(t.attr("name"));var e=this.findLabel(t),n=this.findFormError(t);e.length&&e.removeClass(this.options.labelErrorClass),n.length&&n.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null}),t.data("abide-describedby")&&t.removeAttr("aria-describedby").removeData("abide-describedby")}},{key:"validateInput",value:function(e){var n,i=this,t=this.requiredCheck(e),o=e.attr("data-validator"),s=[],r=!0;if(this._validationIsDisabled())return!0;if(e.is("[data-abide-ignore]")||e.is('[type="hidden"]')||e.is("[disabled]"))return!0;switch(e[0].type){case"radio":this.validateRadio(e.attr("name"))||s.push("required");break;case"checkbox":this.validateCheckbox(e.attr("name"))||s.push("required"),r=!1;break;case"select":case"select-one":case"select-multiple":t||s.push("required");break;default:t||s.push("required"),this.validateText(e)||s.push("pattern")}o&&(n=!!e.attr("required"),o.split(" ").forEach(function(t){i.options.validators[t](e,n,e.parent())||s.push(t)})),e.attr("data-equalto")&&(this.options.validators.equalTo(e)||s.push("equalTo"));var a,l=0===s.length,u=(l?"valid":"invalid")+".zf.abide";return!l||(o=this.$element.find('[data-equalto="'.concat(e.attr("id"),'"]'))).length&&(a=this,o.each(function(){c()(this).val()&&a.validateInput(c()(this))})),r&&(l?this.removeErrorClasses(e):this.addErrorClasses(e,s)),e.trigger(u,[e]),l}},{key:"validateForm",value:function(){var t,n=this,e=[],i=this;if(this.initialized||(this.initialized=!0),this._validationIsDisabled())return!(this.formnovalidate=null);this.$inputs.each(function(){if("checkbox"===c()(this)[0].type){if(c()(this).attr("name")===t)return!0;t=c()(this).attr("name")}e.push(i.validateInput(c()(this)))});var o=-1===e.indexOf(!1);return this.$element.find("[data-abide-error]").each(function(t,e){e=c()(e);n.options.a11yAttributes&&n.addGlobalErrorA11yAttributes(e),e.css("display",o?"none":"block")}),this.$element.trigger((o?"formvalid":"forminvalid")+".zf.abide",[this.$element]),o}},{key:"validateText",value:function(t,e){e=e||t.attr("data-pattern")||t.attr("pattern")||t.attr("type");var n=t.val(),i=!0;return n.length&&(this.options.patterns.hasOwnProperty(e)?i=this.options.patterns[e].test(n):e!==t.attr("type")&&(i=new RegExp(e).test(n))),i}},{key:"validateRadio",value:function(t){var t=this.$element.find(':radio[name="'.concat(t,'"]')),n=!1,i=!1;return t.each(function(t,e){c()(e).attr("required")&&(i=!0)}),(n=!i?!0:n)||t.each(function(t,e){c()(e).prop("checked")&&(n=!0)}),n}},{key:"validateCheckbox",value:function(t){var n=this,t=this.$element.find(':checkbox[name="'.concat(t,'"]')),i=!1,o=!1,s=1,r=0;return t.each(function(t,e){c()(e).attr("required")&&(o=!0)}),(i=!o?!0:i)||(t.each(function(t,e){c()(e).prop("checked")&&r++,void 0!==c()(e).attr("data-min-required")&&(s=parseInt(c()(e).attr("data-min-required"),10))}),s<=r&&(i=!0)),!0!==this.initialized&&1<s||(t.each(function(t,e){i?n.removeErrorClasses(c()(e)):n.addErrorClasses(c()(e),["required"])}),i)}},{key:"matchValidation",value:function(e,t,n){var i=this;return n=!!n,-1===t.split(" ").map(function(t){return i.options.validators[t](e,n,e.parent())}).indexOf(!1)}},{key:"resetForm",value:function(){var t=this.$element,e=this.options;c()(".".concat(e.labelErrorClass),t).not("small").removeClass(e.labelErrorClass),c()(".".concat(e.inputErrorClass),t).not("small").removeClass(e.inputErrorClass),c()("".concat(e.formErrorSelector,".").concat(e.formErrorClass)).removeClass(e.formErrorClass),t.find("[data-abide-error]").css("display","none"),c()(":input",t).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").attr({"data-invalid":null,"aria-invalid":null}),c()(":input:radio",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),c()(":input:checkbox",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),t.trigger("formreset.zf.abide",[t])}},{key:"_destroy",value:function(){var t=this;this.$element.off(".abide").find("[data-abide-error]").css("display","none"),this.$inputs.off(".abide").each(function(){t.removeErrorClasses(c()(this))}),this.$submits.off(".abide")}}])&&a(t.prototype,e),n&&a(t,n),o}();i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",a11yAttributes:!0,a11yErrorLevel:"assertive",liveValidate:!1,validateOnBlur:!1,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,website:{test:function(t){return i.defaults.patterns.domain.test(t)||i.defaults.patterns.url.test(t)}}},validators:{equalTo:function(t){return c()("#".concat(t.attr("data-equalto"))).val()===t.val()}}}},"./js/foundation.accordion.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Accordion",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.keyboard.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,r["Plugin"]);var t,e,n,i=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Accordion",this._init(),l.Keyboard.register("Accordion",{ENTER:"toggle",SPACE:"toggle",ARROW_DOWN:"next",ARROW_UP:"previous",HOME:"first",END:"last"})}},{key:"_init",value:function(){var n=this;this._isInitializing=!0,this.$tabs=this.$element.children("[data-accordion-item]"),this.$tabs.each(function(t,e){var n=s()(e),i=n.children("[data-tab-content]"),o=i[0].id||Object(a.GetYoDigits)(6,"accordion"),e=e.id?"".concat(e.id,"-label"):"".concat(o,"-label");n.find("a:first").attr({"aria-controls":o,id:e,"aria-expanded":!1}),i.attr({role:"region","aria-labelledby":e,"aria-hidden":!0,id:o})});var t=this.$element.find(".is-active").children("[data-tab-content]");t.length&&(this._initialAnchor=t.prev("a").attr("href"),this._openSingleTab(t)),this._checkDeepLink=function(){var t=window.location.hash;if(!t.length){if(n._isInitializing)return;n._initialAnchor&&(t=n._initialAnchor)}var e=t&&s()(t),t=t&&n.$element.find('[href$="'.concat(t,'"]'));!e.length||!t.length||(e&&t&&t.length?t.parent("[data-accordion-item]").hasClass("is-active")||n._openSingleTab(e):n._closeAllTabs(),n.options.deepLinkSmudge&&Object(a.onLoad)(s()(window),function(){var t=n.$element.offset();s()("html, body").animate({scrollTop:t.top-n.options.deepLinkSmudgeOffset},n.options.deepLinkSmudgeDelay)}),n.$element.trigger("deeplink.zf.accordion",[t,e]))},this.options.deepLink&&this._checkDeepLink(),this._events(),this._isInitializing=!1}},{key:"_events",value:function(){var i=this;this.$tabs.each(function(){var e=s()(this),n=e.children("[data-tab-content]");n.length&&e.children("a").off("click.zf.accordion keydown.zf.accordion").on("click.zf.accordion",function(t){t.preventDefault(),i.toggle(n)}).on("keydown.zf.accordion",function(t){l.Keyboard.handleKey(t,"Accordion",{toggle:function(){i.toggle(n)},next:function(){var t=e.next().find("a").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},previous:function(){var t=e.prev().find("a").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},first:function(){var t=i.$tabs.first().find(".accordion-title").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},last:function(){var t=i.$tabs.last().find(".accordion-title").focus();i.options.multiExpand||t.trigger("click.zf.accordion")},handled:function(){t.preventDefault()}})})}),this.options.deepLink&&s()(window).on("hashchange",this._checkDeepLink)}},{key:"toggle",value:function(t){t.closest("[data-accordion]").is("[disabled]")?console.info("Cannot toggle an accordion that is disabled."):(t.parent().hasClass("is-active")?this.up(t):this.down(t),this.options.deepLink&&(t=t.prev("a").attr("href"),this.options.updateHistory?history.pushState({},"",t):history.replaceState({},"",t)))}},{key:"down",value:function(t){t.closest("[data-accordion]").is("[disabled]")?console.info("Cannot call down on an accordion that is disabled."):this.options.multiExpand?this._openTab(t):this._openSingleTab(t)}},{key:"up",value:function(t){var e;this.$element.is("[disabled]")?console.info("Cannot call up on an accordion that is disabled."):(e=t.parent()).hasClass("is-active")&&(e=e.siblings(),(this.options.allowAllClosed||e.hasClass("is-active"))&&this._closeTab(t))}},{key:"_openSingleTab",value:function(t){var e=this.$element.children(".is-active").children("[data-tab-content]");e.length&&this._closeTab(e.not(t)),this._openTab(t)}},{key:"_openTab",value:function(t){var e=this,n=t.parent(),i=t.attr("aria-labelledby");t.attr("aria-hidden",!1),n.addClass("is-active"),s()("#".concat(i)).attr({"aria-expanded":!0}),t.finish().slideDown(this.options.slideSpeed,function(){e.$element.trigger("down.zf.accordion",[t])})}},{key:"_closeTab",value:function(t){var e=this,n=t.parent(),i=t.attr("aria-labelledby");t.attr("aria-hidden",!0),n.removeClass("is-active"),s()("#".concat(i)).attr({"aria-expanded":!1}),t.finish().slideUp(this.options.slideSpeed,function(){e.$element.trigger("up.zf.accordion",[t])})}},{key:"_closeAllTabs",value:function(){var t=this.$element.children(".is-active").children("[data-tab-content]");t.length&&this._closeTab(t)}},{key:"_destroy",value:function(){this.$element.find("[data-tab-content]").stop(!0).slideUp(0).css("display",""),this.$element.find("a").off(".zf.accordion"),this.options.deepLink&&s()(window).off("hashchange",this._checkDeepLink)}}])&&u(t.prototype,e),n&&u(t,n),o}();i.defaults={slideSpeed:250,multiExpand:!1,allowAllClosed:!1,deepLink:!1,deepLinkSmudge:!1,deepLinkSmudgeDelay:300,deepLinkSmudgeOffset:0,updateHistory:!1}},"./js/foundation.accordionMenu.js":function(t,e,n){"use strict";n.r(e),n.d(e,"AccordionMenu",function(){return i});var e=n("jquery"),a=n.n(e),l=n("./js/foundation.util.keyboard.js"),r=n("./js/foundation.util.nest.js"),u=n("./js/foundation.core.utils.js"),s=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="AccordionMenu",this._init(),l.Keyboard.register("AccordionMenu",{ENTER:"toggle",SPACE:"toggle",ARROW_RIGHT:"open",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"close",ESCAPE:"closeAll"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"accordion");var s=this;this.$element.find("[data-submenu]").not(".is-active").slideUp(0),this.$element.attr({"aria-multiselectable":this.options.multiOpen}),this.$menuLinks=this.$element.find(".is-accordion-submenu-parent"),this.$menuLinks.each(function(){var t=this.id||Object(u.GetYoDigits)(6,"acc-menu-link"),e=a()(this),n=e.children("[data-submenu]"),i=n[0].id||Object(u.GetYoDigits)(6,"acc-menu"),o=n.hasClass("is-active");s.options.parentLink&&e.children("a").clone().prependTo(n).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-accordion-submenu-item"></li>'),s.options.submenuToggle?(e.addClass("has-submenu-toggle"),e.children("a").after('<button id="'+t+'" class="submenu-toggle" aria-controls="'+i+'" aria-expanded="'+o+'" title="'+s.options.submenuToggleText+'"><span class="submenu-toggle-text">'+s.options.submenuToggleText+"</span></button>")):e.attr({"aria-controls":i,"aria-expanded":o,id:t}),n.attr({"aria-labelledby":t,"aria-hidden":!o,role:"group",id:i})});var t=this.$element.find(".is-active");t.length&&t.each(function(){s.down(a()(this))}),this._events()}},{key:"_events",value:function(){var r=this;this.$element.find("li").each(function(){var e=a()(this).children("[data-submenu]");e.length&&(r.options.submenuToggle?a()(this).children(".submenu-toggle").off("click.zf.accordionMenu").on("click.zf.accordionMenu",function(){r.toggle(e)}):a()(this).children("a").off("click.zf.accordionMenu").on("click.zf.accordionMenu",function(t){t.preventDefault(),r.toggle(e)}))}).on("keydown.zf.accordionMenu",function(e){var n,i,o=a()(this),s=o.parent("ul").children("li"),t=o.children("[data-submenu]");s.each(function(t){a()(this).is(o)&&(n=s.eq(Math.max(0,t-1)).find("a").first(),i=s.eq(Math.min(t+1,s.length-1)).find("a").first(),a()(this).children("[data-submenu]:visible").length&&(i=o.find("li:first-child").find("a").first()),a()(this).is(":first-child")?n=o.parents("li").first().find("a").first():n.parents("li").first().children("[data-submenu]:visible").length&&(n=n.parents("li").find("li:last-child").find("a").first()),a()(this).is(":last-child")&&(i=o.parents("li").first().next("li").find("a").first()))}),l.Keyboard.handleKey(e,"AccordionMenu",{open:function(){t.is(":hidden")&&(r.down(t),t.find("li").first().find("a").first().focus())},close:function(){t.length&&!t.is(":hidden")?r.up(t):o.parent("[data-submenu]").length&&(r.up(o.parent("[data-submenu]")),o.parents("li").first().find("a").first().focus())},up:function(){return n.focus(),!0},down:function(){return i.focus(),!0},toggle:function(){return!r.options.submenuToggle&&(o.children("[data-submenu]").length?(r.toggle(o.children("[data-submenu]")),!0):void 0)},closeAll:function(){r.hideAll()},handled:function(t){t&&e.preventDefault()}})})}},{key:"hideAll",value:function(){this.up(this.$element.find("[data-submenu]"))}},{key:"showAll",value:function(){this.down(this.$element.find("[data-submenu]"))}},{key:"toggle",value:function(t){t.is(":animated")||(t.is(":hidden")?this.down(t):this.up(t))}},{key:"down",value:function(t){var e,n=this;this.options.multiOpen||(e=t.parentsUntil(this.$element).add(t).add(t.find(".is-active")),e=this.$element.find(".is-active").not(e),this.up(e)),t.addClass("is-active").attr({"aria-hidden":!1}),(this.options.submenuToggle?t.prev(".submenu-toggle"):t.parent(".is-accordion-submenu-parent")).attr({"aria-expanded":!0}),t.slideDown(this.options.slideSpeed,function(){n.$element.trigger("down.zf.accordionMenu",[t])})}},{key:"up",value:function(t){var e=this,n=t.find("[data-submenu]"),i=t.add(n);n.slideUp(0),i.removeClass("is-active").attr("aria-hidden",!0),(this.options.submenuToggle?i.prev(".submenu-toggle"):i.parent(".is-accordion-submenu-parent")).attr("aria-expanded",!1),t.slideUp(this.options.slideSpeed,function(){e.$element.trigger("up.zf.accordionMenu",[t])})}},{key:"_destroy",value:function(){this.$element.find("[data-submenu]").slideDown(0).css("display",""),this.$element.find("a").off("click.zf.accordionMenu"),this.$element.find("[data-is-parent-link]").detach(),this.options.submenuToggle&&(this.$element.find(".has-submenu-toggle").removeClass("has-submenu-toggle"),this.$element.find(".submenu-toggle").remove()),r.Nest.Burn(this.$element,"accordion")}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={parentLink:!1,slideSpeed:250,submenuToggle:!1,submenuToggleText:"Toggle menu",multiOpen:!0}},"./js/foundation.core.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Foundation",function(){return l});var e=n("jquery"),s=n.n(e),i=n("./js/foundation.core.utils.js"),r=n("./js/foundation.util.mediaQuery.js");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var l={version:"6.7.5",_plugins:{},_uuids:[],plugin:function(t,e){var n=e||u(t),e=o(n);this._plugins[e]=this[n]=t},registerPlugin:function(t,e){e=e?o(e):u(t.constructor).toLowerCase();t.uuid=Object(i.GetYoDigits)(6,e),t.$element.attr("data-".concat(e))||t.$element.attr("data-".concat(e),t.uuid),t.$element.data("zfPlugin")||t.$element.data("zfPlugin",t),t.$element.trigger("init.zf.".concat(e)),this._uuids.push(t.uuid)},unregisterPlugin:function(t){var e,n=o(u(t.$element.data("zfPlugin").constructor));for(e in this._uuids.splice(this._uuids.indexOf(t.uuid),1),t.$element.removeAttr("data-".concat(n)).removeData("zfPlugin").trigger("destroyed.zf.".concat(n)),t)"function"==typeof t[e]&&(t[e]=null)},reInit:function(t){var e,n,i=t instanceof s.a;try{i?t.each(function(){s()(this).data("zfPlugin")._init()}):(e=a(t),n=this,{object:function(t){t.forEach(function(t){t=o(t),s()("[data-"+t+"]").foundation("_init")})},string:function(){t=o(t),s()("[data-"+t+"]").foundation("_init")},undefined:function(){this.object(Object.keys(n._plugins))}}[e](t))}catch(t){console.error(t)}finally{return t}},reflow:function(i,t){void 0===t?t=Object.keys(this._plugins):"string"==typeof t&&(t=[t]);var o=this;s.a.each(t,function(t,e){var n=o._plugins[e];s()(i).find("[data-"+e+"]").addBack("[data-"+e+"]").filter(function(){return void 0===s()(this).data("zfPlugin")}).each(function(){var t=s()(this),e={reflow:!0};t.attr("data-options")&&t.attr("data-options").split(";").forEach(function(t){t=t.split(":").map(function(t){return t.trim()});t[0]&&(e[t[0]]=function(t){{if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(+t))return parseFloat(t)}return t}(t[1]))});try{t.data("zfPlugin",new n(s()(this),e))}catch(t){console.error(t)}finally{return}})})},getFnName:u,addToJquery:function(){return s.a.fn.foundation=function(n){var t=a(n),e=s()(".no-js");if(e.length&&e.removeClass("no-js"),"undefined"===t)r.MediaQuery._init(),l.reflow(this);else{if("string"!==t)throw new TypeError("We're sorry, ".concat(t," is not a valid parameter. You must use a string representing the method you wish to invoke."));var i=Array.prototype.slice.call(arguments,1),o=this.data("zfPlugin");if(void 0===o||void 0===o[n])throw new ReferenceError("We're sorry, '"+n+"' is not an available method for "+(o?u(o):"this element")+".");1===this.length?o[n].apply(o,i):this.each(function(t,e){o[n].apply(s()(e).data("zfPlugin"),i)})}return this},s.a}};function u(t){if(void 0!==Function.prototype.name)return(void 0===t.prototype?t:t.prototype).constructor.name;t=/function\s([^(]{1,})\(/.exec(t.toString());return t&&1<t.length?t[1].trim():""}function o(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}l.util={throttle:function(n,i){var o=null;return function(){var t=this,e=arguments;null===o&&(o=setTimeout(function(){n.apply(t,e),o=null},i))}}},window.Foundation=l,function(){Date.now&&window.Date.now||(window.Date.now=Date.now=function(){return(new Date).getTime()});for(var i,t=["webkit","moz"],e=0;e<t.length&&!window.requestAnimationFrame;++e){var n=t[e];window.requestAnimationFrame=window[n+"RequestAnimationFrame"],window.cancelAnimationFrame=window[n+"CancelAnimationFrame"]||window[n+"CancelRequestAnimationFrame"]}!/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)&&window.requestAnimationFrame&&window.cancelAnimationFrame||(i=0,window.requestAnimationFrame=function(t){var e=Date.now(),n=Math.max(i+16,e);return setTimeout(function(){t(i=n)},n-e)},window.cancelAnimationFrame=clearTimeout),window.performance&&window.performance.now||(window.performance={start:Date.now(),now:function(){return Date.now()-this.start}})}(),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function e(){return i.apply(this instanceof o?this:t,n.concat(Array.prototype.slice.call(arguments)))}var n=Array.prototype.slice.call(arguments,1),i=this,o=function(){};return this.prototype&&(o.prototype=this.prototype),e.prototype=new o,e})},"./js/foundation.core.plugin.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Plugin",function(){return i});var o=n("./js/foundation.core.utils.js");function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}var i=function(){function n(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),this._setup(t,e);e=r(this);this.uuid=Object(o.GetYoDigits)(6,e),this.$element.attr("data-".concat(e))||this.$element.attr("data-".concat(e),this.uuid),this.$element.data("zfPlugin")||this.$element.data("zfPlugin",this),this.$element.trigger("init.zf.".concat(e))}var t,e,i;return t=n,(e=[{key:"destroy",value:function(){this._destroy();var t,e=r(this);for(t in this.$element.removeAttr("data-".concat(e)).removeData("zfPlugin").trigger("destroyed.zf.".concat(e)),this)this.hasOwnProperty(t)&&(this[t]=null)}}])&&s(t.prototype,e),i&&s(t,i),n}();function r(t){return t.className.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}},"./js/foundation.core.utils.js":function(t,e,n){"use strict";n.r(e),n.d(e,"rtl",function(){return i}),n.d(e,"GetYoDigits",function(){return o}),n.d(e,"RegExpEscape",function(){return s}),n.d(e,"transitionend",function(){return r}),n.d(e,"onLoad",function(){return a}),n.d(e,"ignoreMousedisappear",function(){return u});var e=n("jquery"),l=n.n(e);function i(){return"rtl"===l()("html").attr("dir")}function o(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,e=1<arguments.length?arguments[1]:void 0,n="",i="0123456789abcdefghijklmnopqrstuvwxyz",o=i.length,s=0;s<t;s++)n+=i[Math.floor(Math.random()*o)];return e?"".concat(n,"-").concat(e):n}function s(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function r(t){var e,n,i={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},o=document.createElement("div");for(n in i)void 0!==o.style[n]&&(e=i[n]);return e||(setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}function a(t,e){function n(){return t.triggerHandler(o)}var i="complete"===document.readyState,o=(i?"_didLoad":"load")+".zf.util.onLoad";return t&&(e&&t.one(o,e),i?setTimeout(n):l()(window).one("load",n)),o}function u(s){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=t.ignoreLeaveWindow,r=void 0!==e&&e,t=t.ignoreReappear,a=void 0!==t&&t;return function(e){for(var t=arguments.length,n=new Array(1<t?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];var o=s.bind.apply(s,[this,e].concat(n));if(null!==e.relatedTarget)return o();setTimeout(function(){return r||!document.hasFocus||document.hasFocus()?void(a||l()(document).one("mouseenter",function(t){l()(e.currentTarget).has(t.target).length||(e.relatedTarget=t.target,o())})):o()},0)}}},"./js/foundation.drilldown.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Drilldown",function(){return i});var e=n("jquery"),r=n.n(e),a=n("./js/foundation.util.keyboard.js"),s=n("./js/foundation.util.nest.js"),l=n("./js/foundation.core.utils.js"),u=n("./js/foundation.util.box.js"),c=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,c["Plugin"]);var t,e,n,i=h(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=r.a.extend({},o.defaults,this.$element.data(),e),this.className="Drilldown",this._init(),a.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){s.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({"aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var t=r()(this),e=t.parent();n.options.parentLink&&t.clone().prependTo(e.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="none"></li>'),t.data("savedHref",t.attr("href")).removeAttr("href").attr("tabindex",0),t.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(t)}),this.$submenus.each(function(){var t=r()(this);if(!t.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":t.append(n.options.backButton);break;case"top":t.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(t)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=r()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(t){var e;r()(t.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&t.preventDefault(),i._show(n.parent("li")),i.options.closeOnClick&&(e=r()("body")).off(".zf.drilldown").on("click.zf.drilldown",function(t){t.target===i.$element[0]||r.a.contains(i.$element[0],t.target)||(t.preventDefault(),i._hideAll(),e.off(".zf.drilldown"))})})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var t=this,e=""!==t.options.scrollTopElement?r()(t.options.scrollTopElement):t.$element,e=parseInt(e.offset().top+t.options.scrollTopOffset,10);r()("html, body").stop(!0).animate({scrollTop:e},t.options.animationDuration,t.options.animationEasing,function(){this===r()("html")[0]&&t.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var t=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(e){var n,i,o=r()(this),s=o.parent("li").parent("ul").children("li").children("a");s.each(function(t){r()(this).is(o)&&(n=s.eq(Math.max(0,t-1)),i=s.eq(Math.min(t+1,s.length-1)))}),a.Keyboard.handleKey(e,"Drilldown",{next:function(){if(o.is(t.$submenuAnchors))return t._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return t._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(t.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(t.$element.find("> li:last-child > a"))},close:function(){o.is(t.$element.find("> li > a"))||(t._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!t.options.parentLink||!o.attr("href"))&&(o.is(t.$menuItems)?o.is(t.$submenuAnchors)?(t._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(t._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(t){t&&e.preventDefault()}})})}},{key:"_hideAll",value:function(){var t,e=this,n=this.$element.find(".is-drilldown-submenu.is-active");n.addClass("is-closing"),n.parent().closest("ul").removeClass("invisible"),this.options.autoHeight&&(t=n.parent().closest("ul").data("calcHeight"),this.$wrapper.css({height:t})),this.$element.trigger("close.zf.drilldown"),n.one(Object(l.transitionend)(n),function(){n.removeClass("is-active is-closing"),e.$element.trigger("closed.zf.drilldown")})}},{key:"_back",value:function(e){var n=this;e.off("click.zf.drilldown"),e.children(".js-drilldown-back").on("click.zf.drilldown",function(){n._hide(e);var t=e.parent("li").parent("ul").parent("li");t.length?n._show(t):n.$currentMenu=n.$element})}},{key:"_menuLinkEvents",value:function(){var t=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(){setTimeout(function(){t._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(t,e){t.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),t.parent("li").attr("aria-expanded",!0),!0===e&&this.$element.trigger("open.zf.drilldown",[t])}},{key:"_setHideSubMenuClasses",value:function(t,e){t.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),t.parent("li").attr("aria-expanded",!1),!0===e&&t.trigger("hide.zf.drilldown",[t])}},{key:"_showMenu",value:function(e,n){var i=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(){i._setHideSubMenuClasses(r()(this))}),(this.$currentMenu=e).is("[data-drilldown]"))return!0===n&&e.find("li > a").first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",e.data("calcHeight")));var o=e.children().first().parentsUntil("[data-drilldown]","[data-submenu]");o.each(function(t){0===t&&i.options.autoHeight&&i.$wrapper.css("height",r()(this).data("calcHeight"));t=t===o.length-1;!0==t&&r()(this).one(Object(l.transitionend)(r()(this)),function(){!0===n&&e.find("li > a").first().focus()}),i._setShowSubMenuClasses(r()(this),t)})}},{key:"_show",value:function(t){var e=t.children("[data-submenu]");t.attr("aria-expanded",!0),this.$currentMenu=e,t.parent().closest("ul").addClass("invisible"),e.addClass("is-active visible").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:e.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[t])}},{key:"_hide",value:function(t){this.options.autoHeight&&this.$wrapper.css({height:t.parent().closest("ul").data("calcHeight")}),t.parent().closest("ul").removeClass("invisible"),t.parent("li").attr("aria-expanded",!1),t.attr("aria-hidden",!0),t.addClass("is-closing").one(Object(l.transitionend)(t),function(){t.removeClass("is-active is-closing visible"),t.blur().addClass("invisible")}),t.trigger("hide.zf.drilldown",[t])}},{key:"_getMaxDims",value:function(){var e=0,t={},n=this;return this.$submenus.add(this.$element).each(function(){var t=u.Box.GetDimensions(this).height;e=e<t?t:e,n.options.autoHeight&&r()(this).data("calcHeight",t)}),this.options.autoHeight?t.height=this.$currentMenu.data("calcHeight"):t["min-height"]="".concat(e,"px"),t["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),t}},{key:"_destroy",value:function(){r()("body").off(".zf.drilldown"),this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),s.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").off("transitionend otransitionend webkitTransitionEnd").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){r()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var t=r()(this);t.removeAttr("tabindex"),t.data("savedHref")&&t.attr("href",t.data("savedHref")).removeData("savedHref")})}}])&&f(t.prototype,e),n&&f(t,n),o}();i.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},"./js/foundation.dropdown.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Dropdown",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.keyboard.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.positionable.js"),u=n("./js/foundation.util.triggers.js"),c=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e,n){return(d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){t=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=m(t)););return t}(t,e);if(t){e=Object.getOwnPropertyDescriptor(t,e);return e.get?e.get.call(n):e.value}})(t,e,n||t)}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(o,l["Positionable"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Dropdown",c.Touch.init(s.a),u.Triggers.init(s.a),this._init(),r.Keyboard.register("Dropdown",{ENTER:"toggle",SPACE:"toggle",ESCAPE:"close"})}},{key:"_init",value:function(){var t=this.$element.attr("id");this.$anchors=s()('[data-toggle="'.concat(t,'"]')).length?s()('[data-toggle="'.concat(t,'"]')):s()('[data-open="'.concat(t,'"]')),this.$anchors.attr({"aria-controls":t,"data-is-focus":!1,"data-yeti-box":t,"aria-haspopup":!0,"aria-expanded":!1}),this._setCurrentAnchor(this.$anchors.first()),this.options.parentClass?this.$parent=this.$element.parents("."+this.options.parentClass):this.$parent=null,void 0===this.$element.attr("aria-labelledby")&&(void 0===this.$currentAnchor.attr("id")&&this.$currentAnchor.attr("id",Object(a.GetYoDigits)(6,"dd-anchor")),this.$element.attr("aria-labelledby",this.$currentAnchor.attr("id"))),this.$element.attr({"aria-hidden":"true","data-yeti-box":t,"data-resize":t}),d(m(o.prototype),"_init",this).call(this),this._events()}},{key:"_getDefaultPosition",value:function(){var t=this.$element[0].className.match(/(top|left|right|bottom)/g);return t?t[0]:"bottom"}},{key:"_getDefaultAlignment",value:function(){var t=/float-(\S+)/.exec(this.$currentAnchor.attr("class"));return t?t[1]:d(m(o.prototype),"_getDefaultAlignment",this).call(this)}},{key:"_setPosition",value:function(){this.$element.removeClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment)),d(m(o.prototype),"_setPosition",this).call(this,this.$currentAnchor,this.$element,this.$parent),this.$element.addClass("has-position-".concat(this.position," has-alignment-").concat(this.alignment))}},{key:"_setCurrentAnchor",value:function(t){this.$currentAnchor=s()(t)}},{key:"_events",value:function(){var n=this,e="ontouchstart"in window||void 0!==window.ontouchstart;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":this._setPosition.bind(this)}),this.$anchors.off("click.zf.trigger").on("click.zf.trigger",function(t){n._setCurrentAnchor(this),(!1===n.options.forceFollow||e&&n.options.hover&&!1===n.$element.hasClass("is-open"))&&t.preventDefault()}),this.options.hover&&(this.$anchors.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){n._setCurrentAnchor(this);var t=s()("body").data();void 0!==t.whatinput&&"mouse"!==t.whatinput||(clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.open(),n.$anchors.data("hover",!0)},n.options.hoverDelay))}).on("mouseleave.zf.dropdown",Object(a.ignoreMousedisappear)(function(){clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.close(),n.$anchors.data("hover",!1)},n.options.hoverDelay)})),this.options.hoverPane&&this.$element.off("mouseenter.zf.dropdown mouseleave.zf.dropdown").on("mouseenter.zf.dropdown",function(){clearTimeout(n.timeout)}).on("mouseleave.zf.dropdown",Object(a.ignoreMousedisappear)(function(){clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.close(),n.$anchors.data("hover",!1)},n.options.hoverDelay)}))),this.$anchors.add(this.$element).on("keydown.zf.dropdown",function(t){var e=s()(this);r.Keyboard.handleKey(t,"Dropdown",{open:function(){e.is(n.$anchors)&&!e.is("input, textarea")&&(n.open(),n.$element.attr("tabindex",-1).focus(),t.preventDefault())},close:function(){n.close(),n.$anchors.focus()}})})}},{key:"_addBodyHandler",value:function(){var e=s()(document.body).not(this.$element),n=this;e.off("click.zf.dropdown tap.zf.dropdown").on("click.zf.dropdown tap.zf.dropdown",function(t){n.$anchors.is(t.target)||n.$anchors.find(t.target).length||n.$element.is(t.target)||n.$element.find(t.target).length||(n.close(),e.off("click.zf.dropdown tap.zf.dropdown"))})}},{key:"open",value:function(){var t;this.$element.trigger("closeme.zf.dropdown",this.$element.attr("id")),this.$anchors.addClass("hover").attr({"aria-expanded":!0}),this.$element.addClass("is-opening"),this._setPosition(),this.$element.removeClass("is-opening").addClass("is-open").attr({"aria-hidden":!1}),!this.options.autoFocus||(t=r.Keyboard.findFocusable(this.$element)).length&&t.eq(0).focus(),this.options.closeOnClick&&this._addBodyHandler(),this.options.trapFocus&&r.Keyboard.trapFocus(this.$element),this.$element.trigger("show.zf.dropdown",[this.$element])}},{key:"close",value:function(){if(!this.$element.hasClass("is-open"))return!1;this.$element.removeClass("is-open").attr({"aria-hidden":!0}),this.$anchors.removeClass("hover").attr("aria-expanded",!1),this.$element.trigger("hide.zf.dropdown",[this.$element]),this.options.trapFocus&&r.Keyboard.releaseFocus(this.$element)}},{key:"toggle",value:function(){this.$element.hasClass("is-open")?this.$anchors.data("hover")||this.close():this.open()}},{key:"_destroy",value:function(){this.$element.off(".zf.trigger").hide(),this.$anchors.off(".zf.dropdown"),s()(document.body).off("click.zf.dropdown tap.zf.dropdown")}}])&&f(t.prototype,e),n&&f(t,n),o}();i.defaults={parentClass:null,hoverDelay:250,hover:!1,hoverPane:!1,vOffset:0,hOffset:0,position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,trapFocus:!1,autoFocus:!1,closeOnClick:!1,forceFollow:!0}},"./js/foundation.dropdownMenu.js":function(t,e,n){"use strict";n.r(e),n.d(e,"DropdownMenu",function(){return i});var e=n("jquery"),d=n.n(e),s=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),h=n("./js/foundation.util.keyboard.js"),r=n("./js/foundation.util.nest.js"),l=n("./js/foundation.util.box.js"),u=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=d.a.extend({},o.defaults,this.$element.data(),e),this.className="DropdownMenu",u.Touch.init(d.a),this._init(),h.Keyboard.register("DropdownMenu",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"dropdown");var t=this.$element.find("li.is-dropdown-submenu-parent");this.$element.children(".is-dropdown-submenu-parent").children(".is-dropdown-submenu").addClass("first-sub"),this.$menuItems=this.$element.find('li[role="none"]'),this.$tabs=this.$element.children('li[role="none"]'),this.$tabs.find("ul.is-dropdown-submenu").addClass(this.options.verticalClass),"auto"===this.options.alignment?this.$element.hasClass(this.options.rightClass)||Object(a.rtl)()||this.$element.parents(".top-bar-right").is("*")?(this.options.alignment="right",t.addClass("opens-left")):(this.options.alignment="left",t.addClass("opens-right")):"right"===this.options.alignment?t.addClass("opens-left"):t.addClass("opens-right"),this.changed=!1,this._events()}},{key:"_isVertical",value:function(){return"block"===this.$tabs.css("display")||"column"===this.$element.css("flex-direction")}},{key:"_isRtl",value:function(){return this.$element.hasClass("align-right")||Object(a.rtl)()&&!this.$element.hasClass("align-left")}},{key:"_events",value:function(){var f=this,s="ontouchstart"in window||void 0!==window.ontouchstart,r="is-dropdown-submenu-parent";(this.options.clickOpen||s)&&this.$menuItems.on("click.zf.dropdownMenu touchstart.zf.dropdownMenu",function(t){var e=d()(t.target).parentsUntil("ul",".".concat(r)),n=e.hasClass(r),i="true"===e.attr("data-is-click"),o=e.children(".is-dropdown-submenu");n&&(i?!f.options.closeOnClick||!f.options.clickOpen&&!s||f.options.forceFollow&&s||(t.stopImmediatePropagation(),t.preventDefault(),f._hide(e)):(t.stopImmediatePropagation(),t.preventDefault(),f._show(o),e.add(e.parentsUntil(f.$element,".".concat(r))).attr("data-is-click",!0)))}),f.options.closeOnClickInside&&this.$menuItems.on("click.zf.dropdownMenu",function(){d()(this).hasClass(r)||f._hide()}),s&&this.options.disableHoverOnTouch&&(this.options.disableHover=!0),this.options.disableHover||this.$menuItems.on("mouseenter.zf.dropdownMenu",function(){var t=d()(this);t.hasClass(r)&&(clearTimeout(t.data("_delay")),t.data("_delay",setTimeout(function(){f._show(t.children(".is-dropdown-submenu"))},f.options.hoverDelay)))}).on("mouseleave.zf.dropdownMenu",Object(a.ignoreMousedisappear)(function(){var t=d()(this);if(t.hasClass(r)&&f.options.autoclose){if("true"===t.attr("data-is-click")&&f.options.clickOpen)return!1;clearTimeout(t.data("_delay")),t.data("_delay",setTimeout(function(){f._hide(t)},f.options.closingTime))}})),this.$menuItems.on("keydown.zf.dropdownMenu",function(e){var n,i,o=d()(e.target).parentsUntil("ul",'[role="none"]'),t=-1<f.$tabs.index(o),s=t?f.$tabs:o.siblings("li").add(o);s.each(function(t){d()(this).is(o)&&(n=s.eq(t-1),i=s.eq(t+1))});function r(){i.children("a:first").focus(),e.preventDefault()}function a(){n.children("a:first").focus(),e.preventDefault()}function l(){var t=o.children("ul.is-dropdown-submenu");t.length&&(f._show(t),o.find("li > a:first").focus(),e.preventDefault())}function u(){var t=o.parent("ul").parent("li");t.children("a:first").focus(),f._hide(t),e.preventDefault()}var c={open:l,close:function(){f._hide(f.$element),f.$menuItems.eq(0).children("a").focus(),e.preventDefault()}};t?f._isVertical()?f._isRtl()?d.a.extend(c,{down:r,up:a,next:u,previous:l}):d.a.extend(c,{down:r,up:a,next:l,previous:u}):f._isRtl()?d.a.extend(c,{next:a,previous:r,down:l,up:u}):d.a.extend(c,{next:r,previous:a,down:l,up:u}):f._isRtl()?d.a.extend(c,{next:u,previous:l,down:r,up:a}):d.a.extend(c,{next:l,previous:u,down:r,up:a}),h.Keyboard.handleKey(e,"DropdownMenu",c)})}},{key:"_addBodyHandler",value:function(){var e=this,t=d()(document.body);this._removeBodyHandler(),t.on("click.zf.dropdownMenu tap.zf.dropdownMenu",function(t){!d()(t.target).closest(e.$element).length&&(e._hide(),e._removeBodyHandler())})}},{key:"_removeBodyHandler",value:function(){d()(document.body).off("click.zf.dropdownMenu tap.zf.dropdownMenu")}},{key:"_show",value:function(n){var t=this.$tabs.index(this.$tabs.filter(function(t,e){return 0<d()(e).find(n).length})),e=n.parent("li.is-dropdown-submenu-parent").siblings("li.is-dropdown-submenu-parent");this._hide(e,t),n.css("visibility","hidden").addClass("js-dropdown-active").parent("li.is-dropdown-submenu-parent").addClass("is-active"),l.Box.ImNotTouchingYou(n,null,!0)||(e="left"===this.options.alignment?"-right":"-left",(t=n.parent(".is-dropdown-submenu-parent")).removeClass("opens".concat(e)).addClass("opens-".concat(this.options.alignment)),l.Box.ImNotTouchingYou(n,null,!0)||t.removeClass("opens-".concat(this.options.alignment)).addClass("opens-inner"),this.changed=!0),n.css("visibility",""),this.options.closeOnClick&&this._addBodyHandler(),this.$element.trigger("show.zf.dropdownMenu",[n])}},{key:"_hide",value:function(t,e){var n,i=t&&t.length?t:void 0!==e?this.$tabs.not(function(t){return t===e}):this.$element;(i.hasClass("is-active")||0<i.find(".is-active").length)&&((n=i.find("li.is-active")).add(i).attr({"data-is-click":!1}).removeClass("is-active"),i.find("ul.js-dropdown-active").removeClass("js-dropdown-active"),(this.changed||i.find("opens-inner").length)&&(t="left"===this.options.alignment?"right":"left",i.find("li.is-dropdown-submenu-parent").add(i).removeClass("opens-inner opens-".concat(this.options.alignment)).addClass("opens-".concat(t)),this.changed=!1),clearTimeout(n.data("_delay")),this._removeBodyHandler(),this.$element.trigger("hide.zf.dropdownMenu",[i]))}},{key:"_destroy",value:function(){this.$menuItems.off(".zf.dropdownMenu").removeAttr("data-is-click").removeClass("is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner"),d()(document.body).off(".zf.dropdownMenu"),r.Nest.Burn(this.$element,"dropdown")}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={disableHover:!1,disableHoverOnTouch:!0,autoclose:!0,hoverDelay:50,clickOpen:!1,closingTime:500,alignment:"auto",closeOnClick:!0,closeOnClickInside:!0,verticalClass:"vertical",rightClass:"align-right",forceFollow:!0}},"./js/foundation.equalizer.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Equalizer",function(){return i});var e=n("jquery"),c=n.n(e),s=n("./js/foundation.util.mediaQuery.js"),r=n("./js/foundation.util.imageLoader.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,l["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=c.a.extend({},o.defaults,this.$element.data(),e),this.className="Equalizer",this._init()}},{key:"_init",value:function(){var t=this.$element.attr("data-equalizer")||"",e=this.$element.find('[data-equalizer-watch="'.concat(t,'"]'));s.MediaQuery._init(),this.$watched=e.length?e:this.$element.find("[data-equalizer-watch]"),this.$element.attr("data-resize",t||Object(a.GetYoDigits)(6,"eq")),this.$element.attr("data-mutate",t||Object(a.GetYoDigits)(6,"eq")),this.hasNested=0<this.$element.find("[data-equalizer]").length,this.isNested=0<this.$element.parentsUntil(document.body,"[data-equalizer]").length,this.isOn=!1,this._bindHandler={onResizeMeBound:this._onResizeMe.bind(this),onPostEqualizedBound:this._onPostEqualized.bind(this)};var n,t=this.$element.find("img");this.options.equalizeOn?(n=this._checkMQ(),c()(window).on("changed.zf.mediaquery",this._checkMQ.bind(this))):this._events(),(void 0!==n&&!1===n||void 0===n)&&(t.length?Object(r.onImagesLoaded)(t,this._reflow.bind(this)):this._reflow())}},{key:"_pauseEvents",value:function(){this.isOn=!1,this.$element.off({".zf.equalizer":this._bindHandler.onPostEqualizedBound,"resizeme.zf.trigger":this._bindHandler.onResizeMeBound,"mutateme.zf.trigger":this._bindHandler.onResizeMeBound})}},{key:"_onResizeMe",value:function(){this._reflow()}},{key:"_onPostEqualized",value:function(t){t.target!==this.$element[0]&&this._reflow()}},{key:"_events",value:function(){this._pauseEvents(),this.hasNested?this.$element.on("postequalized.zf.equalizer",this._bindHandler.onPostEqualizedBound):(this.$element.on("resizeme.zf.trigger",this._bindHandler.onResizeMeBound),this.$element.on("mutateme.zf.trigger",this._bindHandler.onResizeMeBound)),this.isOn=!0}},{key:"_checkMQ",value:function(){var t=!s.MediaQuery.is(this.options.equalizeOn);return t?this.isOn&&(this._pauseEvents(),this.$watched.css("height","auto")):this.isOn||this._events(),t}},{key:"_killswitch",value:function(){}},{key:"_reflow",value:function(){if(!this.options.equalizeOnStack&&this._isStacked())return this.$watched.css("height","auto"),!1;this.options.equalizeByRow?this.getHeightsByRow(this.applyHeightByRow.bind(this)):this.getHeights(this.applyHeight.bind(this))}},{key:"_isStacked",value:function(){return!this.$watched[0]||!this.$watched[1]||this.$watched[0].getBoundingClientRect().top!==this.$watched[1].getBoundingClientRect().top}},{key:"getHeights",value:function(t){for(var e=[],n=0,i=this.$watched.length;n<i;n++)this.$watched[n].style.height="auto",e.push(this.$watched[n].offsetHeight);t(e)}},{key:"getHeightsByRow",value:function(t){var e=this.$watched.length?this.$watched.first().offset().top:0,n=[],i=0;n[i]=[];for(var o=0,s=this.$watched.length;o<s;o++){this.$watched[o].style.height="auto";var r=c()(this.$watched[o]).offset().top;r!==e&&(n[++i]=[],e=r),n[i].push([this.$watched[o],this.$watched[o].offsetHeight])}for(var a=0,l=n.length;a<l;a++){var u=c()(n[a]).map(function(){return this[1]}).get(),u=Math.max.apply(null,u);n[a].push(u)}t(n)}},{key:"applyHeight",value:function(t){t=Math.max.apply(null,t);this.$element.trigger("preequalized.zf.equalizer"),this.$watched.css("height",t),this.$element.trigger("postequalized.zf.equalizer")}},{key:"applyHeightByRow",value:function(t){this.$element.trigger("preequalized.zf.equalizer");for(var e=0,n=t.length;e<n;e++){var i=t[e].length,o=t[e][i-1];if(i<=2)c()(t[e][0][0]).css({height:"auto"});else{this.$element.trigger("preequalizedrow.zf.equalizer");for(var s=0,r=i-1;s<r;s++)c()(t[e][s][0]).css({height:o});this.$element.trigger("postequalizedrow.zf.equalizer")}}this.$element.trigger("postequalized.zf.equalizer")}},{key:"_destroy",value:function(){this._pauseEvents(),this.$watched.css("height","auto")}}])&&u(t.prototype,e),n&&u(t,n),o}();i.defaults={equalizeOnStack:!1,equalizeByRow:!1,equalizeOn:""}},"./js/foundation.interchange.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Interchange",function(){return i});var e=n("jquery"),o=n.n(e),r=n("./js/foundation.util.mediaQuery.js"),a=n("./js/foundation.core.plugin.js"),l=n("./js/foundation.core.utils.js"),u=n("./js/foundation.util.triggers.js");function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(s,a["Plugin"]);var t,e,n,i=d(s);function s(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,s),i.apply(this,arguments)}return t=s,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=o.a.extend({},s.defaults,this.$element.data(),e),this.rules=[],this.currentPath="",this.className="Interchange",u.Triggers.init(o.a),this._init(),this._events()}},{key:"_init",value:function(){r.MediaQuery._init();var t=this.$element[0].id||Object(l.GetYoDigits)(6,"interchange");this.$element.attr({"data-resize":t,id:t}),this._parseOptions(),this._addBreakpoints(),this._generateRules(),this._reflow()}},{key:"_events",value:function(){var t=this;this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(){return t._reflow()})}},{key:"_reflow",value:function(){var t,e,n;for(e in this.rules)this.rules.hasOwnProperty(e)&&(n=this.rules[e],window.matchMedia(n.query).matches&&(t=n));t&&this.replace(t.path)}},{key:"_parseOptions",value:function(){void 0===this.options.type?this.options.type="auto":-1===["auto","src","background","html"].indexOf(this.options.type)&&(console.warn('Warning: invalid value "'.concat(this.options.type,'" for Interchange option "type"')),this.options.type="auto")}},{key:"_addBreakpoints",value:function(){for(var t in r.MediaQuery.queries)r.MediaQuery.queries.hasOwnProperty(t)&&(t=r.MediaQuery.queries[t],s.SPECIAL_QUERIES[t.name]=t.value)}},{key:"_generateRules",value:function(){var t,e,n,i=[],o=this.options.rules||this.$element.data("interchange");for(t in o="string"==typeof o?o.match(/\[.*?, .*?\]/g):o)o.hasOwnProperty(t)&&(e=(n=o[t].slice(1,-1).split(", ")).slice(0,-1).join(""),n=n[n.length-1],s.SPECIAL_QUERIES[n]&&(n=s.SPECIAL_QUERIES[n]),i.push({path:e,query:n}));this.rules=i}},{key:"replace",value:function(e){var n,t,i=this;this.currentPath!==e&&(n="replaced.zf.interchange","src"===(t="auto"===(t=this.options.type)?"IMG"===this.$element[0].nodeName?"src":e.match(/\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i)?"background":"html":t)?this.$element.attr("src",e).on("load",function(){i.currentPath=e}).trigger(n):"background"===t?(e=e.replace(/\(/g,"%28").replace(/\)/g,"%29"),this.$element.css({"background-image":"url("+e+")"}).trigger(n)):"html"===t&&o.a.get(e,function(t){i.$element.html(t).trigger(n),o()(t).foundation(),i.currentPath=e}))}},{key:"_destroy",value:function(){this.$element.off("resizeme.zf.trigger")}}])&&c(t.prototype,e),n&&c(t,n),s}();i.defaults={rules:null,type:"auto"},i.SPECIAL_QUERIES={landscape:"screen and (orientation: landscape)",portrait:"screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)"}},"./js/foundation.magellan.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Magellan",function(){return i});var e=n("jquery"),a=n.n(e),s=n("./js/foundation.core.plugin.js"),r=n("./js/foundation.core.utils.js"),l=n("./js/foundation.smoothScroll.js"),u=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="Magellan",u.Triggers.init(a.a),this._init(),this.calcPoints()}},{key:"_init",value:function(){var t=this.$element[0].id||Object(r.GetYoDigits)(6,"magellan");this.$targets=a()("[data-magellan-target]"),this.$links=this.$element.find("a"),this.$element.attr({"data-resize":t,"data-scroll":t,id:t}),this.$active=a()(),this.scrollPos=parseInt(window.pageYOffset,10),this._events()}},{key:"calcPoints",value:function(){var n=this,t=document.body,e=document.documentElement;this.points=[],this.winHeight=Math.round(Math.max(window.innerHeight,e.clientHeight)),this.docHeight=Math.round(Math.max(t.scrollHeight,t.offsetHeight,e.clientHeight,e.scrollHeight,e.offsetHeight)),this.$targets.each(function(){var t=a()(this),e=Math.round(t.offset().top-n.options.threshold);t.targetPoint=e,n.points.push(e)})}},{key:"_events",value:function(){var e=this;a()(window).one("load",function(){e.options.deepLinking&&location.hash&&e.scrollToLoc(location.hash),e.calcPoints(),e._updateActive()}),e.onLoadListener=Object(r.onLoad)(a()(window),function(){e.$element.on({"resizeme.zf.trigger":e.reflow.bind(e),"scrollme.zf.trigger":e._updateActive.bind(e)}).on("click.zf.magellan",'a[href^="#"]',function(t){t.preventDefault();t=this.getAttribute("href");e.scrollToLoc(t)})}),this._deepLinkScroll=function(){e.options.deepLinking&&e.scrollToLoc(window.location.hash)},a()(window).on("hashchange",this._deepLinkScroll)}},{key:"scrollToLoc",value:function(t){this._inTransition=!0;var e=this,n={animationEasing:this.options.animationEasing,animationDuration:this.options.animationDuration,threshold:this.options.threshold,offset:this.options.offset};l.SmoothScroll.scrollToLoc(t,n,function(){e._inTransition=!1})}},{key:"reflow",value:function(){this.calcPoints(),this._updateActive()}},{key:"_updateActive",value:function(){var e,n,t,i,o,s,r=this;this._inTransition||(e=parseInt(window.pageYOffset,10),n=this.scrollPos>e,(this.scrollPos=e)<this.points[0]-this.options.offset-(n?this.options.threshold:0)||(s=e+this.winHeight===this.docHeight?this.points.length-1:(o=this.points.filter(function(t){return t-r.options.offset-(n?r.options.threshold:0)<=e})).length?o.length-1:0),t=this.$active,i="",void 0!==s?(this.$active=this.$links.filter('[href="#'+this.$targets.eq(s).data("magellan-target")+'"]'),this.$active.length&&(i=this.$active[0].getAttribute("href"))):this.$active=a()(),o=!(!this.$active.length&&!t.length||this.$active.is(t)),s=i!==window.location.hash,o&&(t.removeClass(this.options.activeClass),this.$active.addClass(this.options.activeClass)),this.options.deepLinking&&s&&(window.history.pushState?(s=i||window.location.pathname+window.location.search,this.options.updateHistory?window.history.pushState({},"",s):window.history.replaceState({},"",s)):window.location.hash=i),o&&this.$element.trigger("update.zf.magellan",[this.$active]))}},{key:"_destroy",value:function(){var t;this.$element.off(".zf.trigger .zf.magellan").find(".".concat(this.options.activeClass)).removeClass(this.options.activeClass),this.options.deepLinking&&(t=this.$active[0].getAttribute("href"),window.location.hash.replace(t,"")),a()(window).off("hashchange",this._deepLinkScroll),this.onLoadListener&&a()(window).off(this.onLoadListener)}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={animationDuration:500,animationEasing:"linear",threshold:50,activeClass:"is-active",deepLinking:!1,updateHistory:!1,offset:0}},"./js/foundation.offcanvas.js":function(t,e,n){"use strict";n.r(e),n.d(e,"OffCanvas",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.keyboard.js"),u=n("./js/foundation.util.mediaQuery.js"),c=n("./js/foundation.util.triggers.js");function f(t){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=o(n);return function(t,e){{if(e&&("object"===f(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=o(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}(o,r["Plugin"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){var n=this;this.className="OffCanvas",this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.contentClasses={base:[],reveal:[]},this.$lastTrigger=s()(),this.$triggers=s()(),this.position="left",this.$content=s()(),this.nested=!!this.options.nested,this.$sticky=s()(),this.isInCanvas=!1,s()(["push","overlap"]).each(function(t,e){n.contentClasses.base.push("has-transition-"+e)}),s()(["left","right","top","bottom"]).each(function(t,e){n.contentClasses.base.push("has-position-"+e),n.contentClasses.reveal.push("has-reveal-"+e)}),c.Triggers.init(s.a),u.MediaQuery._init(),this._init(),this._events(),l.Keyboard.register("OffCanvas",{ESCAPE:"close"})}},{key:"_init",value:function(){var t=this.$element.attr("id");this.$element.attr("aria-hidden","true"),this.options.contentId?this.$content=s()("#"+this.options.contentId):this.$element.siblings("[data-off-canvas-content]").length?this.$content=this.$element.siblings("[data-off-canvas-content]").first():this.$content=this.$element.closest("[data-off-canvas-content]").first(),this.options.contentId?this.options.contentId&&null===this.options.nested&&console.warn("Remember to use the nested option if using the content ID option!"):this.nested=0===this.$element.siblings("[data-off-canvas-content]").length,!0===this.nested&&(this.options.transition="overlap",this.$element.removeClass("is-transition-push")),this.$element.addClass("is-transition-".concat(this.options.transition," is-closed")),this.$triggers=s()(document).find('[data-open="'+t+'"], [data-close="'+t+'"], [data-toggle="'+t+'"]').attr("aria-expanded","false").attr("aria-controls",t),this.position=this.$element.is(".position-left, .position-top, .position-right, .position-bottom")?this.$element.attr("class").match(/position\-(left|top|right|bottom)/)[1]:this.position,!0===this.options.contentOverlay&&(t=document.createElement("div"),e="fixed"===s()(this.$element).css("position")?"is-overlay-fixed":"is-overlay-absolute",t.setAttribute("class","js-off-canvas-overlay "+e),this.$overlay=s()(t),"is-overlay-fixed"==e?s()(this.$overlay).insertAfter(this.$element):this.$content.append(this.$overlay));var e=new RegExp(Object(a.RegExpEscape)(this.options.revealClass)+"([^\\s]+)","g").exec(this.$element[0].className);e&&(this.options.isRevealed=!0,this.options.revealOn=this.options.revealOn||e[1]),!0===this.options.isRevealed&&this.options.revealOn&&(this.$element.first().addClass("".concat(this.options.revealClass).concat(this.options.revealOn)),this._setMQChecker()),this.options.transitionTime&&this.$element.css("transition-duration",this.options.transitionTime),this.$sticky=this.$content.find("[data-off-canvas-sticky]"),0<this.$sticky.length&&"push"===this.options.transition&&(this.options.contentScroll=!1);e=this.$element.attr("class").match(/\bin-canvas-for-(\w+)/);e&&2===e.length?this.options.inCanvasOn=e[1]:this.options.inCanvasOn&&this.$element.addClass("in-canvas-for-".concat(this.options.inCanvasOn)),this.options.inCanvasOn&&this._checkInCanvas(),this._removeContentClasses()}},{key:"_events",value:function(){var t=this;this.$element.off(".zf.trigger .zf.offCanvas").on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":this.close.bind(this),"toggle.zf.trigger":this.toggle.bind(this),"keydown.zf.offCanvas":this._handleKeyboard.bind(this)}),!0===this.options.closeOnClick&&(this.options.contentOverlay?this.$overlay:this.$content).on({"click.zf.offCanvas":this.close.bind(this)}),this.options.inCanvasOn&&s()(window).on("changed.zf.mediaquery",function(){t._checkInCanvas()})}},{key:"_setMQChecker",value:function(){var t=this;this.onLoadListener=Object(a.onLoad)(s()(window),function(){u.MediaQuery.atLeast(t.options.revealOn)&&t.reveal(!0)}),s()(window).on("changed.zf.mediaquery",function(){u.MediaQuery.atLeast(t.options.revealOn)?t.reveal(!0):t.reveal(!1)})}},{key:"_checkInCanvas",value:function(){this.isInCanvas=u.MediaQuery.atLeast(this.options.inCanvasOn),!0===this.isInCanvas&&this.close()}},{key:"_removeContentClasses",value:function(t){"boolean"!=typeof t?this.$content.removeClass(this.contentClasses.base.join(" ")):!1===t&&this.$content.removeClass("has-reveal-".concat(this.position))}},{key:"_addContentClasses",value:function(t){this._removeContentClasses(t),"boolean"!=typeof t?this.$content.addClass("has-transition-".concat(this.options.transition," has-position-").concat(this.position)):!0===t&&this.$content.addClass("has-reveal-".concat(this.position))}},{key:"_fixStickyElements",value:function(){this.$sticky.each(function(t,e){var n=s()(e);"fixed"===n.css("position")&&(e=parseInt(n.css("top"),10),n.data("offCanvasSticky",{top:e}),e=s()(document).scrollTop()+e,n.css({top:"".concat(e,"px"),width:"100%",transition:"none"}))})}},{key:"_unfixStickyElements",value:function(){this.$sticky.each(function(t,e){var n=s()(e),e=n.data("offCanvasSticky");"object"===f(e)&&(n.css({top:"".concat(e.top,"px"),width:"",transition:""}),n.data("offCanvasSticky",""))})}},{key:"reveal",value:function(t){t?(this.close(),this.isRevealed=!0,this.$element.attr("aria-hidden","false"),this.$element.off("open.zf.trigger toggle.zf.trigger"),this.$element.removeClass("is-closed")):(this.isRevealed=!1,this.$element.attr("aria-hidden","true"),this.$element.off("open.zf.trigger toggle.zf.trigger").on({"open.zf.trigger":this.open.bind(this),"toggle.zf.trigger":this.toggle.bind(this)}),this.$element.addClass("is-closed")),this._addContentClasses(t)}},{key:"_stopScrolling",value:function(){return!1}},{key:"_recordScrollable",value:function(t){this.lastY=t.touches[0].pageY}},{key:"_preventDefaultAtEdges",value:function(t){var e=t.data,n=this.lastY-t.touches[0].pageY;this.lastY=t.touches[0].pageY,e._canScroll(n,this)||t.preventDefault()}},{key:"_scrollboxTouchMoved",value:function(t){var e=t.data,n=this.closest("[data-off-canvas], [data-off-canvas-scrollbox-outer]"),i=this.lastY-t.touches[0].pageY;n.lastY=this.lastY=t.touches[0].pageY,t.stopPropagation(),e._canScroll(i,this)||(e._canScroll(i,n)?n.scrollTop+=i:t.preventDefault())}},{key:"_canScroll",value:function(t,e){var n=0<e.scrollTop,e=e.scrollTop<e.scrollHeight-e.clientHeight;return t<0&&n||0<t&&e}},{key:"open",value:function(t,e){var n,i=this;this.$element.hasClass("is-open")||this.isRevealed||this.isInCanvas||(n=this,e&&(this.$lastTrigger=e),"top"===this.options.forceTo?window.scrollTo(0,0):"bottom"===this.options.forceTo&&window.scrollTo(0,document.body.scrollHeight),this.options.transitionTime&&"overlap"!==this.options.transition?this.$element.siblings("[data-off-canvas-content]").css("transition-duration",this.options.transitionTime):this.$element.siblings("[data-off-canvas-content]").css("transition-duration",""),this.$element.addClass("is-open").removeClass("is-closed"),this.$triggers.attr("aria-expanded","true"),this.$element.attr("aria-hidden","false"),this.$content.addClass("is-open-"+this.position),!1===this.options.contentScroll&&(s()("body").addClass("is-off-canvas-open").on("touchmove",this._stopScrolling),this.$element.on("touchstart",this._recordScrollable),this.$element.on("touchmove",this,this._preventDefaultAtEdges),this.$element.on("touchstart","[data-off-canvas-scrollbox]",this._recordScrollable),this.$element.on("touchmove","[data-off-canvas-scrollbox]",this,this._scrollboxTouchMoved)),!0===this.options.contentOverlay&&this.$overlay.addClass("is-visible"),!0===this.options.closeOnClick&&!0===this.options.contentOverlay&&this.$overlay.addClass("is-closable"),!0===this.options.autoFocus&&this.$element.one(Object(a.transitionend)(this.$element),function(){var t;n.$element.hasClass("is-open")&&((t=n.$element.find("[data-autofocus]")).length?t:n.$element.find("a, button")).eq(0).focus()}),!0===this.options.trapFocus&&(this.$content.attr("tabindex","-1"),l.Keyboard.trapFocus(this.$element)),"push"===this.options.transition&&this._fixStickyElements(),this._addContentClasses(),this.$element.trigger("opened.zf.offCanvas"),this.$element.one(Object(a.transitionend)(this.$element),function(){i.$element.trigger("openedEnd.zf.offCanvas")}))}},{key:"close",value:function(){var t=this;this.$element.hasClass("is-open")&&!this.isRevealed&&(this.$element.trigger("close.zf.offCanvas"),this.$element.removeClass("is-open"),this.$element.attr("aria-hidden","true"),this.$content.removeClass("is-open-left is-open-top is-open-right is-open-bottom"),!0===this.options.contentOverlay&&this.$overlay.removeClass("is-visible"),!0===this.options.closeOnClick&&!0===this.options.contentOverlay&&this.$overlay.removeClass("is-closable"),this.$triggers.attr("aria-expanded","false"),this.$element.one(Object(a.transitionend)(this.$element),function(){t.$element.addClass("is-closed"),t._removeContentClasses(),"push"===t.options.transition&&t._unfixStickyElements(),!1===t.options.contentScroll&&(s()("body").removeClass("is-off-canvas-open").off("touchmove",t._stopScrolling),t.$element.off("touchstart",t._recordScrollable),t.$element.off("touchmove",t._preventDefaultAtEdges),t.$element.off("touchstart","[data-off-canvas-scrollbox]",t._recordScrollable),t.$element.off("touchmove","[data-off-canvas-scrollbox]",t._scrollboxTouchMoved)),!0===t.options.trapFocus&&(t.$content.removeAttr("tabindex"),l.Keyboard.releaseFocus(t.$element)),t.$element.trigger("closed.zf.offCanvas")}))}},{key:"toggle",value:function(t,e){this.$element.hasClass("is-open")?this.close(t,e):this.open(t,e)}},{key:"_handleKeyboard",value:function(t){var e=this;l.Keyboard.handleKey(t,"OffCanvas",{close:function(){return e.close(),e.$lastTrigger.focus(),!0},handled:function(){t.preventDefault()}})}},{key:"_destroy",value:function(){this.close(),this.$element.off(".zf.trigger .zf.offCanvas"),this.$overlay.off(".zf.offCanvas"),this.onLoadListener&&s()(window).off(this.onLoadListener)}}])&&d(t.prototype,e),n&&d(t,n),o}();i.defaults={closeOnClick:!0,contentOverlay:!0,contentId:null,nested:null,contentScroll:!0,transitionTime:null,transition:"push",forceTo:null,isRevealed:!1,revealOn:null,inCanvasOn:null,autoFocus:!0,revealClass:"reveal-for-",trapFocus:!1}},"./js/foundation.orbit.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Orbit",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.keyboard.js"),c=n("./js/foundation.util.motion.js"),a=n("./js/foundation.util.timer.js"),l=n("./js/foundation.util.imageLoader.js"),u=n("./js/foundation.core.utils.js"),f=n("./js/foundation.core.plugin.js"),d=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function h(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function p(t,e){return(p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function m(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(o,f["Plugin"]);var t,e,n,i=m(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Orbit",d.Touch.init(s.a),this._init(),r.Keyboard.register("Orbit",{ltr:{ARROW_RIGHT:"next",ARROW_LEFT:"previous"},rtl:{ARROW_LEFT:"next",ARROW_RIGHT:"previous"}})}},{key:"_init",value:function(){this._reset(),this.$wrapper=this.$element.find(".".concat(this.options.containerClass)),this.$slides=this.$element.find(".".concat(this.options.slideClass));var t=this.$element.find("img"),e=this.$slides.filter(".is-active"),n=this.$element[0].id||Object(u.GetYoDigits)(6,"orbit");this.$element.attr({"data-resize":n,id:n}),e.length||this.$slides.eq(0).addClass("is-active"),this.options.useMUI||this.$slides.addClass("no-motionui"),t.length?Object(l.onImagesLoaded)(t,this._prepareForOrbit.bind(this)):this._prepareForOrbit(),this.options.bullets&&this._loadBullets(),this._events(),this.options.autoPlay&&1<this.$slides.length&&this.geoSync(),this.options.accessible&&this.$wrapper.attr("tabindex",0)}},{key:"_loadBullets",value:function(){this.$bullets=this.$element.find(".".concat(this.options.boxOfBullets)).find("button")}},{key:"geoSync",value:function(){var t=this;this.timer=new a.Timer(this.$element,{duration:this.options.timerDelay,infinite:!1},function(){t.changeSlide(!0)}),this.timer.start()}},{key:"_prepareForOrbit",value:function(){this._setWrapperHeight()}},{key:"_setWrapperHeight",value:function(t){var e,n=0,i=0,o=this;this.$slides.each(function(){e=this.getBoundingClientRect().height,s()(this).attr("data-slide",i),/mui/g.test(s()(this)[0].className)||o.$slides.filter(".is-active")[0]===o.$slides.eq(i)[0]||s()(this).css({display:"none"}),n=n<e?e:n,i++}),i===this.$slides.length&&(this.$wrapper.css({height:n}),t&&t(n))}},{key:"_setSlideHeight",value:function(t){this.$slides.each(function(){s()(this).css("max-height",t)})}},{key:"_events",value:function(){var i=this;this.$element.off(".resizeme.zf.trigger").on({"resizeme.zf.trigger":this._prepareForOrbit.bind(this)}),1<this.$slides.length&&(this.options.swipe&&this.$slides.off("swipeleft.zf.orbit swiperight.zf.orbit").on("swipeleft.zf.orbit",function(t){t.preventDefault(),i.changeSlide(!0)}).on("swiperight.zf.orbit",function(t){t.preventDefault(),i.changeSlide(!1)}),this.options.autoPlay&&(this.$slides.on("click.zf.orbit",function(){i.$element.data("clickedOn",!i.$element.data("clickedOn")),i.timer[i.$element.data("clickedOn")?"pause":"start"]()}),this.options.pauseOnHover&&this.$element.on("mouseenter.zf.orbit",function(){i.timer.pause()}).on("mouseleave.zf.orbit",function(){i.$element.data("clickedOn")||i.timer.start()})),this.options.navButtons&&this.$element.find(".".concat(this.options.nextClass,", .").concat(this.options.prevClass)).attr("tabindex",0).on("click.zf.orbit touchend.zf.orbit",function(t){t.preventDefault(),i.changeSlide(s()(this).hasClass(i.options.nextClass))}),this.options.bullets&&this.$bullets.on("click.zf.orbit touchend.zf.orbit",function(){if(/is-active/g.test(this.className))return!1;var t=s()(this).data("slide"),e=t>i.$slides.filter(".is-active").data("slide"),n=i.$slides.eq(t);i.changeSlide(e,n,t)}),this.options.accessible&&this.$wrapper.add(this.$bullets).on("keydown.zf.orbit",function(t){r.Keyboard.handleKey(t,"Orbit",{next:function(){i.changeSlide(!0)},previous:function(){i.changeSlide(!1)},handled:function(){s()(t.target).is(i.$bullets)&&i.$bullets.filter(".is-active").focus()}})}))}},{key:"_reset",value:function(){void 0!==this.$slides&&1<this.$slides.length&&(this.$element.off(".zf.orbit").find("*").off(".zf.orbit"),this.options.autoPlay&&this.timer.restart(),this.$slides.each(function(t){s()(t).removeClass("is-active is-active is-in").removeAttr("aria-live").hide()}),this.$slides.first().addClass("is-active").show(),this.$element.trigger("slidechange.zf.orbit",[this.$slides.first()]),this.options.bullets&&this._updateBullets(0))}},{key:"changeSlide",value:function(t,e,n){if(this.$slides){var i=this.$slides.filter(".is-active").eq(0);if(/mui/g.test(i[0].className))return!1;var o=this.$slides.first(),s=this.$slides.last(),r=t?"Right":"Left",a=t?"Left":"Right",l=this,u=e||(t?!this.options.infiniteWrap||i.next(".".concat(this.options.slideClass)).length?i.next(".".concat(this.options.slideClass)):o:!this.options.infiniteWrap||i.prev(".".concat(this.options.slideClass)).length?i.prev(".".concat(this.options.slideClass)):s);u.length&&(this.$element.trigger("beforeslidechange.zf.orbit",[i,u]),this.options.bullets&&(n=n||this.$slides.index(u),this._updateBullets(n)),this.options.useMUI&&!this.$element.is(":hidden")?(c.Motion.animateIn(u.addClass("is-active"),this.options["animInFrom".concat(r)],function(){u.css({display:"block"}).attr("aria-live","polite")}),c.Motion.animateOut(i.removeClass("is-active"),this.options["animOutTo".concat(a)],function(){i.removeAttr("aria-live"),l.options.autoPlay&&!l.timer.isPaused&&l.timer.restart()})):(i.removeClass("is-active is-in").removeAttr("aria-live").hide(),u.addClass("is-active is-in").attr("aria-live","polite").show(),this.options.autoPlay&&!this.timer.isPaused&&this.timer.restart()),this.$element.trigger("slidechange.zf.orbit",[u]))}}},{key:"_updateBullets",value:function(t){var e=this.$bullets.filter(".is-active"),n=this.$bullets.not(".is-active"),i=this.$bullets.eq(t);e.removeClass("is-active").blur(),i.addClass("is-active");var o,t=e.children("[data-slide-active-label]").last();t.length||(o=e.children("span"),n.toArray().map(function(t){return s()(t).children("span").length}).every(function(t){return t<o.length})&&(t=o.last()).attr("data-slide-active-label","")),t.length&&(t.detach(),i.append(t))}},{key:"_destroy",value:function(){this.$element.off(".zf.orbit").find("*").off(".zf.orbit").end().hide()}}])&&h(t.prototype,e),n&&h(t,n),o}();i.defaults={bullets:!0,navButtons:!0,animInFromRight:"slide-in-right",animOutToRight:"slide-out-right",animInFromLeft:"slide-in-left",animOutToLeft:"slide-out-left",autoPlay:!0,timerDelay:5e3,infiniteWrap:!0,swipe:!0,pauseOnHover:!0,accessible:!0,containerClass:"orbit-container",slideClass:"orbit-slide",boxOfBullets:"orbit-bullets",nextClass:"orbit-next",prevClass:"orbit-previous",useMUI:!0}},"./js/foundation.positionable.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Positionable",function(){return i});var r=n("./js/foundation.util.box.js"),s=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=f(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=f(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var d=["left","right","top","bottom"],e=["top","bottom","center"],n=["left","right","center"],h={left:e,right:e,top:n,bottom:n};function p(t,e){t=e.indexOf(t);return t===e.length-1?e[0]:e[t+1]}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(o,s["Plugin"]);var t,e,n,i=c(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_init",value:function(){this.triedPositions={},this.position="auto"===this.options.position?this._getDefaultPosition():this.options.position,this.alignment="auto"===this.options.alignment?this._getDefaultAlignment():this.options.alignment,this.originalPosition=this.position,this.originalAlignment=this.alignment}},{key:"_getDefaultPosition",value:function(){return"bottom"}},{key:"_getDefaultAlignment",value:function(){switch(this.position){case"bottom":case"top":return Object(a.rtl)()?"right":"left";case"left":case"right":return"bottom"}}},{key:"_reposition",value:function(){this._alignmentsExhausted(this.position)?(this.position=p(this.position,d),this.alignment=h[this.position][0]):this._realign()}},{key:"_realign",value:function(){this._addTriedPosition(this.position,this.alignment),this.alignment=p(this.alignment,h[this.position])}},{key:"_addTriedPosition",value:function(t,e){this.triedPositions[t]=this.triedPositions[t]||[],this.triedPositions[t].push(e)}},{key:"_positionsExhausted",value:function(){for(var t=!0,e=0;e<d.length;e++)t=t&&this._alignmentsExhausted(d[e]);return t}},{key:"_alignmentsExhausted",value:function(t){return this.triedPositions[t]&&this.triedPositions[t].length===h[t].length}},{key:"_getVOffset",value:function(){return this.options.vOffset}},{key:"_getHOffset",value:function(){return this.options.hOffset}},{key:"_setPosition",value:function(t,e,n){if("false"===t.attr("aria-expanded"))return!1;if(this.options.allowOverlap||(this.position=this.originalPosition,this.alignment=this.originalAlignment),e.offset(r.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset())),!this.options.allowOverlap){for(var i=1e8,o={position:this.position,alignment:this.alignment};!this._positionsExhausted();){var s=r.Box.OverlapArea(e,n,!1,!1,this.options.allowBottomOverlap);if(0===s)return;s<i&&(i=s,o={position:this.position,alignment:this.alignment}),this._reposition(),e.offset(r.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}this.position=o.position,this.alignment=o.alignment,e.offset(r.Box.GetExplicitOffsets(e,t,this.position,this.alignment,this._getVOffset(),this._getHOffset()))}}}])&&l(t.prototype,e),n&&l(t,n),o}();i.defaults={position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!0,vOffset:0,hOffset:0}},"./js/foundation.responsiveAccordionTabs.js":function(t,e,n){"use strict";n.r(e),n.d(e,"ResponsiveAccordionTabs",function(){return m});var e=n("jquery"),u=n.n(e),s=n("./js/foundation.util.mediaQuery.js"),c=n("./js/foundation.core.utils.js"),r=n("./js/foundation.core.plugin.js"),e=n("./js/foundation.accordion.js");function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=o(n);return d(this,i?(t=o(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t,e){if(e&&("object"===i(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return h(t)}function h(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var p={tabs:{cssClass:"tabs",plugin:n("./js/foundation.tabs.js").Tabs,open:function(t,e){return t.selectTab(e)},close:null,toggle:null},accordion:{cssClass:"accordion",plugin:e.Accordion,open:function(t,e){return t.down(u()(e))},close:function(t,e){return t.up(u()(e))},toggle:function(t,e){return t.toggle(u()(e))}}},m=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(o,r["Plugin"]);var t,e,n,i=f(o);function o(t,e){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),d(e=i.call(this,t,e),e.options.reflow&&e.storezfData||h(e))}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=u()(t),this.$element.data("zfPluginBase",this),this.options=u.a.extend({},o.defaults,this.$element.data(),e),this.rules=this.$element.data("responsive-accordion-tabs"),this.currentMq=null,this.currentRule=null,this.currentPlugin=null,this.className="ResponsiveAccordionTabs",this.$element.attr("id")||this.$element.attr("id",Object(c.GetYoDigits)(6,"responsiveaccordiontabs")),this._init(),this._events()}},{key:"_init",value:function(){if(s.MediaQuery._init(),"string"==typeof this.rules){for(var t={},e=this.rules.split(" "),n=0;n<e.length;n++){var i=e[n].split("-"),o=1<i.length?i[0]:"small",i=1<i.length?i[1]:i[0];null!==p[i]&&(t[o]=p[i])}this.rules=t}this._getAllOptions(),u.a.isEmptyObject(this.rules)||this._checkMediaQueries()}},{key:"_getAllOptions",value:function(){for(var t in this.allOptions={},p)if(p.hasOwnProperty(t)){var e=p[t];try{var n,i,o=u()("<ul></ul>"),s=new e.plugin(o,this.options);for(n in s.options)s.options.hasOwnProperty(n)&&"zfPlugin"!==n&&(i=s.options[n],this.allOptions[n]=i);s.destroy()}catch(t){console.warn("Warning: Problems getting Accordion/Tab options: ".concat(t))}}}},{key:"_events",value:function(){this._changedZfMediaQueryHandler=this._checkMediaQueries.bind(this),u()(window).on("changed.zf.mediaquery",this._changedZfMediaQueryHandler)}},{key:"_checkMediaQueries",value:function(){var e,n=this;u.a.each(this.rules,function(t){s.MediaQuery.atLeast(t)&&(e=t)}),e&&(this.currentPlugin instanceof this.rules[e].plugin||(u.a.each(p,function(t,e){n.$element.removeClass(e.cssClass)}),this.$element.addClass(this.rules[e].cssClass),this.currentPlugin&&(!this.currentPlugin.$element.data("zfPlugin")&&this.storezfData&&this.currentPlugin.$element.data("zfPlugin",this.storezfData),this.currentPlugin.destroy()),this._handleMarkup(this.rules[e].cssClass),this.currentRule=this.rules[e],this.currentPlugin=new this.currentRule.plugin(this.$element,this.options),this.storezfData=this.currentPlugin.$element.data("zfPlugin")))}},{key:"_handleMarkup",value:function(t){var e,s,r,a,l,n=this,i="accordion",o=u()("[data-tabs-content="+this.$element.attr("id")+"]");(i=o.length?"tabs":i)!==t&&(e=n.allOptions.linkClass||"tabs-title",s=n.allOptions.panelClass||"tabs-panel",this.$element.removeAttr("role"),r=this.$element.children("."+e+",[data-accordion-item]").removeClass(e).removeClass("accordion-item").removeAttr("data-accordion-item"),a=r.children("a").removeClass("accordion-title"),"tabs"===i?(o=o.children("."+s).removeClass(s).removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby")).children("a").removeAttr("role").removeAttr("aria-controls").removeAttr("aria-selected"):o=r.children("[data-tab-content]").removeClass("accordion-content"),o.css({display:"",visibility:""}),r.css({display:"",visibility:""}),"accordion"===t?o.each(function(t,e){u()(e).appendTo(r.get(t)).addClass("accordion-content").attr("data-tab-content","").removeClass("is-active").css({height:""}),u()("[data-tabs-content="+n.$element.attr("id")+"]").after('<div id="tabs-placeholder-'+n.$element.attr("id")+'"></div>').detach(),r.addClass("accordion-item").attr("data-accordion-item",""),a.addClass("accordion-title")}):"tabs"===t&&(l=u()("[data-tabs-content="+n.$element.attr("id")+"]"),(t=u()("#tabs-placeholder-"+n.$element.attr("id"))).length?(l=u()('<div class="tabs-content"></div>').insertAfter(t).attr("data-tabs-content",n.$element.attr("id")),t.remove()):l=u()('<div class="tabs-content"></div>').insertAfter(n.$element).attr("data-tabs-content",n.$element.attr("id")),o.each(function(t,e){var n=u()(e).appendTo(l).addClass(s),i=a.get(t).hash.slice(1),o=u()(e).attr("id")||Object(c.GetYoDigits)(6,"accordion");i!==o&&(""!==i?u()(e).attr("id",i):(i=o,u()(e).attr("id",i),u()(a.get(t)).attr("href",u()(a.get(t)).attr("href").replace("#","")+"#"+i))),u()(r.get(t)).hasClass("is-active")&&n.addClass("is-active")}),r.addClass(e)))}},{key:"open",value:function(){var t;if(this.currentRule&&"function"==typeof this.currentRule.open)return(t=this.currentRule).open.apply(t,[this.currentPlugin].concat(Array.prototype.slice.call(arguments)))}},{key:"close",value:function(){var t;if(this.currentRule&&"function"==typeof this.currentRule.close)return(t=this.currentRule).close.apply(t,[this.currentPlugin].concat(Array.prototype.slice.call(arguments)))}},{key:"toggle",value:function(){var t;if(this.currentRule&&"function"==typeof this.currentRule.toggle)return(t=this.currentRule).toggle.apply(t,[this.currentPlugin].concat(Array.prototype.slice.call(arguments)))}},{key:"_destroy",value:function(){this.currentPlugin&&this.currentPlugin.destroy(),u()(window).off("changed.zf.mediaquery",this._changedZfMediaQueryHandler)}}])&&a(t.prototype,e),n&&a(t,n),o}();m.defaults={}},"./js/foundation.responsiveMenu.js":function(t,e,n){"use strict";n.r(e),n.d(e,"ResponsiveMenu",function(){return p});var i=n("jquery"),s=n.n(i),r=n("./js/foundation.util.mediaQuery.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.core.plugin.js"),e=n("./js/foundation.dropdownMenu.js"),i=n("./js/foundation.drilldown.js"),n=n("./js/foundation.accordionMenu.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var h={dropdown:{cssClass:"dropdown",plugin:e.DropdownMenu},drilldown:{cssClass:"drilldown",plugin:i.Drilldown},accordion:{cssClass:"accordion-menu",plugin:n.AccordionMenu}},p=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,l["Plugin"]);var t,e,n,i=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t){this.$element=s()(t),this.rules=this.$element.data("responsive-menu"),this.currentMq=null,this.currentPlugin=null,this.className="ResponsiveMenu",this._init(),this._events()}},{key:"_init",value:function(){if(r.MediaQuery._init(),"string"==typeof this.rules){for(var t={},e=this.rules.split(" "),n=0;n<e.length;n++){var i=e[n].split("-"),o=1<i.length?i[0]:"small",i=1<i.length?i[1]:i[0];null!==h[i]&&(t[o]=h[i])}this.rules=t}s.a.isEmptyObject(this.rules)||this._checkMediaQueries(),this.$element.attr("data-mutate",this.$element.attr("data-mutate")||Object(a.GetYoDigits)(6,"responsive-menu"))}},{key:"_events",value:function(){var t=this;s()(window).on("changed.zf.mediaquery",function(){t._checkMediaQueries()})}},{key:"_checkMediaQueries",value:function(){var e,n=this;s.a.each(this.rules,function(t){r.MediaQuery.atLeast(t)&&(e=t)}),e&&(this.currentPlugin instanceof this.rules[e].plugin||(s.a.each(h,function(t,e){n.$element.removeClass(e.cssClass)}),this.$element.addClass(this.rules[e].cssClass),this.currentPlugin&&this.currentPlugin.destroy(),this.currentPlugin=new this.rules[e].plugin(this.$element,{})))}},{key:"_destroy",value:function(){this.currentPlugin.destroy(),s()(window).off(".zf.ResponsiveMenu")}}])&&u(t.prototype,e),n&&u(t,n),o}();p.defaults={}},"./js/foundation.responsiveToggle.js":function(t,e,n){"use strict";n.r(e),n.d(e,"ResponsiveToggle",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.mediaQuery.js"),a=n("./js/foundation.util.motion.js"),l=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function u(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=d(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=d(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function d(t){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,l["Plugin"]);var t,e,n,i=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=s()(t),this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="ResponsiveToggle",this._init(),this._events()}},{key:"_init",value:function(){r.MediaQuery._init();var t,e=this.$element.data("responsive-toggle");e||console.error("Your tab bar needs an ID of a Menu as the value of data-tab-bar."),this.$targetMenu=s()("#".concat(e)),this.$toggler=this.$element.find("[data-toggle]").filter(function(){var t=s()(this).data("toggle");return t===e||""===t}),this.options=s.a.extend({},this.options,this.$targetMenu.data()),this.options.animate&&(t=this.options.animate.split(" "),this.animationIn=t[0],this.animationOut=t[1]||null),this._update()}},{key:"_events",value:function(){this._updateMqHandler=this._update.bind(this),s()(window).on("changed.zf.mediaquery",this._updateMqHandler),this.$toggler.on("click.zf.responsiveToggle",this.toggleMenu.bind(this))}},{key:"_update",value:function(){r.MediaQuery.atLeast(this.options.hideFor)?(this.$element.hide(),this.$targetMenu.show()):(this.$element.show(),this.$targetMenu.hide())}},{key:"toggleMenu",value:function(){var t=this;r.MediaQuery.atLeast(this.options.hideFor)||(this.options.animate?this.$targetMenu.is(":hidden")?a.Motion.animateIn(this.$targetMenu,this.animationIn,function(){t.$element.trigger("toggled.zf.responsiveToggle"),t.$targetMenu.find("[data-mutate]").triggerHandler("mutateme.zf.trigger")}):a.Motion.animateOut(this.$targetMenu,this.animationOut,function(){t.$element.trigger("toggled.zf.responsiveToggle")}):(this.$targetMenu.toggle(0),this.$targetMenu.find("[data-mutate]").trigger("mutateme.zf.trigger"),this.$element.trigger("toggled.zf.responsiveToggle")))}},{key:"_destroy",value:function(){this.$element.off(".zf.responsiveToggle"),this.$toggler.off(".zf.responsiveToggle"),s()(window).off("changed.zf.mediaquery",this._updateMqHandler)}}])&&u(t.prototype,e),n&&u(t,n),o}();i.defaults={hideFor:"medium",animate:!1}},"./js/foundation.reveal.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Reveal",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.keyboard.js"),u=n("./js/foundation.util.mediaQuery.js"),c=n("./js/foundation.util.motion.js"),f=n("./js/foundation.util.triggers.js"),d=n("./js/foundation.util.touch.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function h(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function p(t,e){return(p=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function m(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&p(t,e)}(o,r["Plugin"]);var t,e,n,i=m(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Reveal",this._init(),d.Touch.init(s.a),f.Triggers.init(s.a),l.Keyboard.register("Reveal",{ESCAPE:"close"})}},{key:"_init",value:function(){var t=this;u.MediaQuery._init(),this.id=this.$element.attr("id"),this.isActive=!1,this.cached={mq:u.MediaQuery.current},this.$anchor=s()('[data-open="'.concat(this.id,'"]')).length?s()('[data-open="'.concat(this.id,'"]')):s()('[data-toggle="'.concat(this.id,'"]')),this.$anchor.attr({"aria-controls":this.id,"aria-haspopup":"dialog",tabindex:0}),(this.options.fullScreen||this.$element.hasClass("full"))&&(this.options.fullScreen=!0,this.options.overlay=!1),this.options.overlay&&!this.$overlay&&(this.$overlay=this._makeOverlay(this.id)),this.$element.attr({role:"dialog","aria-hidden":!0,"data-yeti-box":this.id,"data-resize":this.id}),this.$overlay?this.$element.detach().appendTo(this.$overlay):(this.$element.detach().appendTo(s()(this.options.appendTo)),this.$element.addClass("without-overlay")),this._events(),this.options.deepLink&&window.location.hash==="#".concat(this.id)&&(this.onLoadListener=Object(a.onLoad)(s()(window),function(){return t.open()}))}},{key:"_makeOverlay",value:function(){var t="";return this.options.additionalOverlayClasses&&(t=" "+this.options.additionalOverlayClasses),s()("<div></div>").addClass("reveal-overlay"+t).appendTo(this.options.appendTo)}},{key:"_updatePosition",value:function(){var t=this.$element.outerWidth(),e=s()(window).width(),n=this.$element.outerHeight(),i=s()(window).height(),o=null,t="auto"===this.options.hOffset?parseInt((e-t)/2,10):parseInt(this.options.hOffset,10);"auto"===this.options.vOffset?o=i<n?parseInt(Math.min(100,i/10),10):parseInt((i-n)/4,10):null!==this.options.vOffset&&(o=parseInt(this.options.vOffset,10)),null!==o&&this.$element.css({top:o+"px"}),this.$overlay&&"auto"===this.options.hOffset||(this.$element.css({left:t+"px"}),this.$element.css({margin:"0px"}))}},{key:"_events",value:function(){var n=this,i=this;this.$element.on({"open.zf.trigger":this.open.bind(this),"close.zf.trigger":function(t,e){if(t.target===i.$element[0]||s()(t.target).parents("[data-closable]")[0]===e)return n.close.apply(n)},"toggle.zf.trigger":this.toggle.bind(this),"resizeme.zf.trigger":function(){i._updatePosition()}}),this.options.closeOnClick&&this.options.overlay&&this.$overlay.off(".zf.reveal").on("click.zf.dropdown tap.zf.dropdown",function(t){t.target!==i.$element[0]&&!s.a.contains(i.$element[0],t.target)&&s.a.contains(document,t.target)&&i.close()}),this.options.deepLink&&s()(window).on("hashchange.zf.reveal:".concat(this.id),this._handleState.bind(this))}},{key:"_handleState",value:function(){window.location.hash!=="#"+this.id||this.isActive?this.close():this.open()}},{key:"_disableScroll",value:function(t){t=t||s()(window).scrollTop(),s()(document).height()>s()(window).height()&&s()("html").css("top",-t)}},{key:"_enableScroll",value:function(t){t=t||parseInt(s()("html").css("top"),10),s()(document).height()>s()(window).height()&&(s()("html").css("top",""),s()(window).scrollTop(-t))}},{key:"open",value:function(){var t=this,e="#".concat(this.id);this.options.deepLink&&window.location.hash!==e&&(window.history.pushState?this.options.updateHistory?window.history.pushState({},"",e):window.history.replaceState({},"",e):window.location.hash=e),this.$activeAnchor=s()(document.activeElement).is(this.$anchor)?s()(document.activeElement):this.$anchor,this.isActive=!0,this.$element.css({visibility:"hidden"}).show().scrollTop(0),this.options.overlay&&this.$overlay.css({visibility:"hidden"}).show(),this._updatePosition(),this.$element.hide().css({visibility:""}),this.$overlay&&(this.$overlay.css({visibility:""}).hide(),this.$element.hasClass("fast")?this.$overlay.addClass("fast"):this.$element.hasClass("slow")&&this.$overlay.addClass("slow")),this.options.multipleOpened||this.$element.trigger("closeme.zf.reveal",this.id),0===s()(".reveal:visible").length&&this._disableScroll();var n=this;this.options.animationIn?(this.options.overlay&&c.Motion.animateIn(this.$overlay,"fade-in"),c.Motion.animateIn(this.$element,this.options.animationIn,function(){t.$element&&(t.focusableElements=l.Keyboard.findFocusable(t.$element),n.$element.attr({"aria-hidden":!1,tabindex:-1}).focus(),n._addGlobalClasses(),l.Keyboard.trapFocus(n.$element))})):(this.options.overlay&&this.$overlay.show(0),this.$element.show(this.options.showDelay)),this.$element.attr({"aria-hidden":!1,tabindex:-1}).focus(),l.Keyboard.trapFocus(this.$element),this._addGlobalClasses(),this._addGlobalListeners(),this.$element.trigger("open.zf.reveal")}},{key:"_addGlobalClasses",value:function(){function t(){s()("html").toggleClass("zf-has-scroll",!!(s()(document).height()>s()(window).height()))}this.$element.on("resizeme.zf.trigger.revealScrollbarListener",t),t(),s()("html").addClass("is-reveal-open")}},{key:"_removeGlobalClasses",value:function(){this.$element.off("resizeme.zf.trigger.revealScrollbarListener"),s()("html").removeClass("is-reveal-open"),s()("html").removeClass("zf-has-scroll")}},{key:"_addGlobalListeners",value:function(){var e=this;this.$element&&(this.focusableElements=l.Keyboard.findFocusable(this.$element),this.options.overlay||!this.options.closeOnClick||this.options.fullScreen||s()("body").on("click.zf.dropdown tap.zf.dropdown",function(t){t.target!==e.$element[0]&&!s.a.contains(e.$element[0],t.target)&&s.a.contains(document,t.target)&&e.close()}),this.options.closeOnEsc&&s()(window).on("keydown.zf.reveal",function(t){l.Keyboard.handleKey(t,"Reveal",{close:function(){e.options.closeOnEsc&&e.close()}})}))}},{key:"close",value:function(){if(!this.isActive||!this.$element.is(":visible"))return!1;var t,e=this;function n(){var t=parseInt(s()("html").css("top"),10);0===s()(".reveal:visible").length&&e._removeGlobalClasses(),l.Keyboard.releaseFocus(e.$element),e.$element.attr("aria-hidden",!0),0===s()(".reveal:visible").length&&e._enableScroll(t),e.$element.trigger("closed.zf.reveal")}this.options.animationOut?(this.options.overlay&&c.Motion.animateOut(this.$overlay,"fade-out"),c.Motion.animateOut(this.$element,this.options.animationOut,n)):(this.$element.hide(this.options.hideDelay),this.options.overlay?this.$overlay.hide(0,n):n()),this.options.closeOnEsc&&s()(window).off("keydown.zf.reveal"),!this.options.overlay&&this.options.closeOnClick&&s()("body").off("click.zf.dropdown tap.zf.dropdown"),this.$element.off("keydown.zf.reveal"),this.options.resetOnClose&&this.$element.html(this.$element.html()),this.isActive=!1,e.options.deepLink&&window.location.hash==="#".concat(this.id)&&(window.history.replaceState?(t=window.location.pathname+window.location.search,this.options.updateHistory?window.history.pushState({},"",t):window.history.replaceState("",document.title,t)):window.location.hash=""),this.$activeAnchor.focus()}},{key:"toggle",value:function(){this.isActive?this.close():this.open()}},{key:"_destroy",value:function(){this.options.overlay&&(this.$element.appendTo(s()(this.options.appendTo)),this.$overlay.hide().off().remove()),this.$element.hide().off(),this.$anchor.off(".zf"),s()(window).off(".zf.reveal:".concat(this.id)),this.onLoadListener&&s()(window).off(this.onLoadListener),0===s()(".reveal:visible").length&&this._removeGlobalClasses()}}])&&h(t.prototype,e),n&&h(t,n),o}();i.defaults={animationIn:"",animationOut:"",showDelay:0,hideDelay:0,closeOnClick:!0,closeOnEsc:!0,multipleOpened:!1,vOffset:"auto",hOffset:"auto",fullScreen:!1,overlay:!0,resetOnClose:!1,deepLink:!1,updateHistory:!1,appendTo:"body",additionalOverlayClasses:""}},"./js/foundation.slider.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Slider",function(){return i});var e=n("jquery"),u=n.n(e),r=n("./js/foundation.util.keyboard.js"),h=n("./js/foundation.util.motion.js"),c=n("./js/foundation.core.utils.js"),s=n("./js/foundation.core.plugin.js"),a=n("./js/foundation.util.touch.js"),l=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function p(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,s["Plugin"]);var t,e,n,i=p(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=u.a.extend({},o.defaults,this.$element.data(),e),this.className="Slider",this.initialized=!1,a.Touch.init(u.a),l.Triggers.init(u.a),this._init(),r.Keyboard.register("Slider",{ltr:{ARROW_RIGHT:"increase",ARROW_UP:"increase",ARROW_DOWN:"decrease",ARROW_LEFT:"decrease",SHIFT_ARROW_RIGHT:"increaseFast",SHIFT_ARROW_UP:"increaseFast",SHIFT_ARROW_DOWN:"decreaseFast",SHIFT_ARROW_LEFT:"decreaseFast",HOME:"min",END:"max"},rtl:{ARROW_LEFT:"increase",ARROW_RIGHT:"decrease",SHIFT_ARROW_LEFT:"increaseFast",SHIFT_ARROW_RIGHT:"decreaseFast"}})}},{key:"_init",value:function(){this.inputs=this.$element.find("input"),this.handles=this.$element.find("[data-slider-handle]"),this.$handle=this.handles.eq(0),this.$input=this.inputs.length?this.inputs.eq(0):u()("#".concat(this.$handle.attr("aria-controls"))),this.$fill=this.$element.find("[data-slider-fill]").css(this.options.vertical?"height":"width",0),(this.options.disabled||this.$element.hasClass(this.options.disabledClass))&&(this.options.disabled=!0,this.$element.addClass(this.options.disabledClass)),this.inputs.length||(this.inputs=u()().add(this.$input),this.options.binding=!0),this._setInitAttr(0),this.handles[1]&&(this.options.doubleSided=!0,this.$handle2=this.handles.eq(1),this.$input2=1<this.inputs.length?this.inputs.eq(1):u()("#".concat(this.$handle2.attr("aria-controls"))),this.inputs[1]||(this.inputs=this.inputs.add(this.$input2)),this._setInitAttr(1)),this.setHandles(),this._events(),this.initialized=!0}},{key:"setHandles",value:function(){var t=this;this.handles[1]?this._setHandlePos(this.$handle,this.inputs.eq(0).val(),function(){t._setHandlePos(t.$handle2,t.inputs.eq(1).val())}):this._setHandlePos(this.$handle,this.inputs.eq(0).val())}},{key:"_reflow",value:function(){this.setHandles()}},{key:"_pctOfBar",value:function(t){var e=(t-this.options.start)/(this.options.end-this.options.start);switch(this.options.positionValueFunction){case"pow":e=this._logTransform(e);break;case"log":e=this._powTransform(e)}return e.toFixed(2)}},{key:"_value",value:function(t){switch(this.options.positionValueFunction){case"pow":t=this._powTransform(t);break;case"log":t=this._logTransform(t)}var e=this.options.vertical?parseFloat(this.options.end)+t*(this.options.start-this.options.end):(this.options.end-this.options.start)*t+parseFloat(this.options.start);return e}},{key:"_logTransform",value:function(t){return e=this.options.nonLinearBase,t=t*(this.options.nonLinearBase-1)+1,Math.log(t)/Math.log(e);var e}},{key:"_powTransform",value:function(t){return(Math.pow(this.options.nonLinearBase,t)-1)/(this.options.nonLinearBase-1)}},{key:"_setHandlePos",value:function(t,e,n){var i,o,s,r,a,l,u,c,f,d;this.$element.hasClass(this.options.disabledClass)||((e=parseFloat(e))<this.options.start?e=this.options.start:e>this.options.end&&(e=this.options.end),(c=this.options.doubleSided)&&(e=0===this.handles.index(t)?(f=parseFloat(this.$handle2.attr("aria-valuenow")))<=e?f-this.options.step:e:e<=(r=parseFloat(this.$handle.attr("aria-valuenow")))?r+this.options.step:e),f=(i=this).options.vertical,o=f?"height":"width",s=f?"top":"left",r=t[0].getBoundingClientRect()[o],f=this.$element[0].getBoundingClientRect()[o],a=this._pctOfBar(e),l=((f-r)*a/f*100).toFixed(this.options.decimal),e=parseFloat(e.toFixed(this.options.decimal)),u={},this._setValues(t,e),c&&(c=0===this.handles.index(t),f=Math.floor(r/f*100),c?(u[s]="".concat(l,"%"),d=parseFloat(this.$handle2[0].style[s])-l+f,n&&"function"==typeof n&&n()):(n=parseFloat(this.$handle[0].style[s]),d=l-(isNaN(n)?(this.options.initialStart-this.options.start)/((this.options.end-this.options.start)/100):n)+f),u["min-".concat(o)]="".concat(d,"%")),d=this.$element.data("dragging")?1e3/60:this.options.moveTime,Object(h.Move)(d,t,function(){isNaN(l)?t.css(s,"".concat(100*a,"%")):t.css(s,"".concat(l,"%")),i.options.doubleSided?i.$fill.css(u):i.$fill.css(o,"".concat(100*a,"%"))}),this.initialized&&(this.$element.one("finished.zf.animate",function(){i.$element.trigger("moved.zf.slider",[t])}),clearTimeout(i.timeout),i.timeout=setTimeout(function(){i.$element.trigger("changed.zf.slider",[t])},i.options.changedDelay)))}},{key:"_setInitAttr",value:function(t){var e=0===t?this.options.initialStart:this.options.initialEnd,n=this.inputs.eq(t).attr("id")||Object(c.GetYoDigits)(6,"slider");this.inputs.eq(t).attr({id:n,max:this.options.end,min:this.options.start,step:this.options.step}),this.inputs.eq(t).val(e),this.handles.eq(t).attr({role:"slider","aria-controls":n,"aria-valuemax":this.options.end,"aria-valuemin":this.options.start,"aria-valuenow":e,"aria-orientation":this.options.vertical?"vertical":"horizontal",tabindex:0})}},{key:"_setValues",value:function(t,e){var n=this.options.doubleSided?this.handles.index(t):0;this.inputs.eq(n).val(e),t.attr("aria-valuenow",e)}},{key:"_handleEvent",value:function(t,e,n){var i,o,s,r,a,l;n?l=this._adjustValue(null,n):(t.preventDefault(),i=(a=this.options.vertical)?"height":"width",o=a?"top":"left",s=a?t.pageY:t.pageX,r=this.$element[0].getBoundingClientRect()[i],n=a?u()(window).scrollTop():u()(window).scrollLeft(),a=this.$element.offset()[o],t.clientY===t.pageY&&(s+=n),l=this._value((a=(a=s-a)<0?0:r<a?r:a)/r),Object(c.rtl)()&&!this.options.vertical&&(l=this.options.end-l),l=this._adjustValue(null,l),e=e||(v(this.$handle,o,a,i)<=v(this.$handle2,o,a,i)?this.$handle:this.$handle2)),this._setHandlePos(e,l)}},{key:"_adjustValue",value:function(t,e){var n=this.options.step,i=parseFloat(n/2),o=t?parseFloat(t.attr("aria-valuenow")):e,t=0<=o?o%n:n+o%n,e=o-t;return 0===t?o:o=e+i<=o?e+n:e}},{key:"_events",value:function(){this._eventsForHandle(this.$handle),this.handles[1]&&this._eventsForHandle(this.$handle2)}},{key:"_eventsForHandle",value:function(o){function e(t){var e=s.inputs.index(u()(this));s._handleEvent(t,s.handles.eq(e),u()(this).val())}var n,i,s=this;this.inputs.off("keyup.zf.slider").on("keyup.zf.slider",function(t){13===t.keyCode&&e.call(this,t)}),this.inputs.off("change.zf.slider").on("change.zf.slider",e),this.options.clickSelect&&this.$element.off("click.zf.slider").on("click.zf.slider",function(t){return!s.$element.data("dragging")&&void(u()(t.target).is("[data-slider-handle]")||(s.options.doubleSided?s._handleEvent(t):s._handleEvent(t,s.$handle)))}),this.options.draggable&&(this.handles.addTouch(),i=u()("body"),o.off("mousedown.zf.slider").on("mousedown.zf.slider",function(t){o.addClass("is-dragging"),s.$fill.addClass("is-dragging"),s.$element.data("dragging",!0),n=u()(t.currentTarget),i.on("mousemove.zf.slider",function(t){t.preventDefault(),s._handleEvent(t,n)}).on("mouseup.zf.slider",function(t){s._handleEvent(t,n),o.removeClass("is-dragging"),s.$fill.removeClass("is-dragging"),s.$element.data("dragging",!1),i.off("mousemove.zf.slider mouseup.zf.slider")})}).on("selectstart.zf.slider touchmove.zf.slider",function(t){t.preventDefault()})),o.off("keydown.zf.slider").on("keydown.zf.slider",function(t){var e,n=u()(this),i=(s.options.doubleSided&&s.handles.index(n),parseFloat(o.attr("aria-valuenow")));r.Keyboard.handleKey(t,"Slider",{decrease:function(){e=i-s.options.step},increase:function(){e=i+s.options.step},decreaseFast:function(){e=i-10*s.options.step},increaseFast:function(){e=i+10*s.options.step},min:function(){e=s.options.start},max:function(){e=s.options.end},handled:function(){t.preventDefault(),s._setHandlePos(n,e)}})})}},{key:"_destroy",value:function(){this.handles.off(".zf.slider"),this.inputs.off(".zf.slider"),this.$element.off(".zf.slider"),clearTimeout(this.timeout)}}])&&f(t.prototype,e),n&&f(t,n),o}();function v(t,e,n,i){return Math.abs(t.position()[e]+t[i]()/2-n)}i.defaults={start:0,end:100,step:1,initialStart:0,initialEnd:100,binding:!1,clickSelect:!0,vertical:!1,draggable:!0,disabled:!1,doubleSided:!1,decimal:2,moveTime:200,disabledClass:"disabled",invertVertical:!1,changedDelay:500,nonLinearBase:5,positionValueFunction:"linear"}},"./js/foundation.smoothScroll.js":function(t,e,n){"use strict";n.r(e),n.d(e,"SmoothScroll",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.utils.js"),a=n("./js/foundation.core.plugin.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function c(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=f(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=f(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function f(t){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(o,a["Plugin"]);var t,e,n,i=c(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,n=[{key:"scrollToLoc",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:o.defaults,n=2<arguments.length?arguments[2]:void 0,t=s()(t);if(!t.length)return!1;t=Math.round(t.offset().top-e.threshold/2-e.offset);s()("html, body").stop(!0).animate({scrollTop:t},e.animationDuration,e.animationEasing,function(){"function"==typeof n&&n()})}}],(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="SmoothScroll",this._init()}},{key:"_init",value:function(){var t=this.$element[0].id||Object(r.GetYoDigits)(6,"smooth-scroll");this.$element.attr({id:t}),this._events()}},{key:"_events",value:function(){this._linkClickListener=this._handleLinkClick.bind(this),this.$element.on("click.zf.smoothScroll",this._linkClickListener),this.$element.on("click.zf.smoothScroll",'a[href^="#"]',this._linkClickListener)}},{key:"_handleLinkClick",value:function(t){var e,n=this;s()(t.currentTarget).is('a[href^="#"]')&&(e=t.currentTarget.getAttribute("href"),this._inTransition=!0,o.scrollToLoc(e,this.options,function(){n._inTransition=!1}),t.preventDefault())}},{key:"_destroy",value:function(){this.$element.off("click.zf.smoothScroll",this._linkClickListener),this.$element.off("click.zf.smoothScroll",'a[href^="#"]',this._linkClickListener)}}])&&l(t.prototype,e),n&&l(t,n),o}();i.defaults={animationDuration:500,animationEasing:"linear",threshold:50,offset:0}},"./js/foundation.sticky.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Sticky",function(){return i});var e=n("jquery"),a=n.n(e),s=n("./js/foundation.core.plugin.js"),r=n("./js/foundation.core.utils.js"),l=n("./js/foundation.util.mediaQuery.js"),u=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,s["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="Sticky",u.Triggers.init(a.a),this._init()}},{key:"_init",value:function(){l.MediaQuery._init();var t=this.$element.parent("[data-sticky-container]"),e=this.$element[0].id||Object(r.GetYoDigits)(6,"sticky"),n=this;t.length?this.$container=t:(this.wasWrapped=!0,this.$element.wrap(this.options.container),this.$container=this.$element.parent()),this.$container.addClass(this.options.containerClass),this.$element.addClass(this.options.stickyClass).attr({"data-resize":e,"data-mutate":e}),""!==this.options.anchor&&a()("#"+n.options.anchor).attr({"data-mutate":e}),this.scrollCount=this.options.checkEvery,this.isStuck=!1,this.onLoadListener=Object(r.onLoad)(a()(window),function(){n.containerHeight="none"===n.$element.css("display")?0:n.$element[0].getBoundingClientRect().height,n.$container.css("height",n.containerHeight),n.elemHeight=n.containerHeight,""!==n.options.anchor?n.$anchor=a()("#"+n.options.anchor):n._parsePoints(),n._setSizes(function(){var t=window.pageYOffset;n._calc(!1,t),n.isStuck||n._removeSticky(!(t>=n.topPoint))}),n._events(e.split("-").reverse().join("-"))})}},{key:"_parsePoints",value:function(){for(var t,e,n,i=[""===this.options.topAnchor?1:this.options.topAnchor,""===this.options.btmAnchor?document.documentElement.scrollHeight:this.options.btmAnchor],o={},s=0,r=i.length;s<r&&i[s];s++)"number"==typeof i[s]?n=i[s]:(t=i[s].split(":"),n=(e=a()("#".concat(t[0]))).offset().top,t[1]&&"bottom"===t[1].toLowerCase()&&(n+=e[0].getBoundingClientRect().height)),o[s]=n;this.points=o}},{key:"_events",value:function(t){var e=this,n=this.scrollListener="scroll.zf.".concat(t);this.isOn||(this.canStick&&(this.isOn=!0,a()(window).off(n).on(n,function(){0===e.scrollCount?(e.scrollCount=e.options.checkEvery,e._setSizes(function(){e._calc(!1,window.pageYOffset)})):(e.scrollCount--,e._calc(!1,window.pageYOffset))})),this.$element.off("resizeme.zf.trigger").on("resizeme.zf.trigger",function(){e._eventsHandler(t)}),this.$element.on("mutateme.zf.trigger",function(){e._eventsHandler(t)}),this.$anchor&&this.$anchor.on("mutateme.zf.trigger",function(){e._eventsHandler(t)}))}},{key:"_eventsHandler",value:function(t){var e=this,n=this.scrollListener="scroll.zf.".concat(t);e._setSizes(function(){e._calc(!1),e.canStick?e.isOn||e._events(t):e.isOn&&e._pauseListeners(n)})}},{key:"_pauseListeners",value:function(t){this.isOn=!1,a()(window).off(t),this.$element.trigger("pause.zf.sticky")}},{key:"_calc",value:function(t,e){if(t&&this._setSizes(),!this.canStick)return this.isStuck&&this._removeSticky(!0),!1;(e=e||window.pageYOffset)>=this.topPoint?e<=this.bottomPoint?this.isStuck||this._setSticky():this.isStuck&&this._removeSticky(!1):this.isStuck&&this._removeSticky(!0)}},{key:"_setSticky",value:function(){var t=this,e=this.options.stickTo,n="top"===e?"marginTop":"marginBottom",i="top"===e?"bottom":"top",o={};o[n]="".concat(this.options[n],"em"),o[e]=0,o[i]="auto",this.isStuck=!0,this.$element.removeClass("is-anchored is-at-".concat(i)).addClass("is-stuck is-at-".concat(e)).css(o).trigger("sticky.zf.stuckto:".concat(e)),this.$element.on("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",function(){t._setSizes()})}},{key:"_removeSticky",value:function(t){var e=this.options.stickTo,n={},i=(this.points?this.points[1]-this.points[0]:this.anchorHeight)-this.elemHeight,o=t?"top":"bottom";n["top"===e?"marginTop":"marginBottom"]=0,n.bottom="auto",n.top=t?0:i,this.isStuck=!1,this.$element.removeClass("is-stuck is-at-".concat(e)).addClass("is-anchored is-at-".concat(o)).css(n).trigger("sticky.zf.unstuckfrom:".concat(o))}},{key:"_setSizes",value:function(t){this.canStick=l.MediaQuery.is(this.options.stickyOn),this.canStick||t&&"function"==typeof t&&t();var e,n=this.$container[0].getBoundingClientRect().width,i=window.getComputedStyle(this.$container[0]),o=parseInt(i["padding-left"],10),i=parseInt(i["padding-right"],10);this.$anchor&&this.$anchor.length?this.anchorHeight=this.$anchor[0].getBoundingClientRect().height:this._parsePoints(),this.$element.css({"max-width":"".concat(n-o-i,"px")}),!this.options.dynamicHeight&&this.containerHeight||(e=this.$element[0].getBoundingClientRect().height||this.containerHeight,e="none"===this.$element.css("display")?0:e,this.$container.css("height",e),this.containerHeight=e),this.elemHeight=this.containerHeight,this.isStuck||this.$element.hasClass("is-at-bottom")&&(e=(this.points?this.points[1]-this.$container.offset().top:this.anchorHeight)-this.elemHeight,this.$element.css("top",e)),this._setBreakPoints(this.containerHeight,function(){t&&"function"==typeof t&&t()})}},{key:"_setBreakPoints",value:function(t,e){if(!this.canStick){if(!e||"function"!=typeof e)return!1;e()}var n=p(this.options.marginTop),i=p(this.options.marginBottom),o=this.points?this.points[0]:this.$anchor.offset().top,s=this.points?this.points[1]:o+this.anchorHeight,r=window.innerHeight;"top"===this.options.stickTo?(o-=n,s-=t+n):"bottom"===this.options.stickTo&&(o-=r-(t+i),s-=r-i),this.topPoint=o,this.bottomPoint=s,e&&"function"==typeof e&&e()}},{key:"_destroy",value:function(){this._removeSticky(!0),this.$element.removeClass("".concat(this.options.stickyClass," is-anchored is-at-top")).css({height:"",top:"",bottom:"","max-width":""}).off("resizeme.zf.trigger").off("mutateme.zf.trigger"),this.$anchor&&this.$anchor.length&&this.$anchor.off("change.zf.sticky"),this.scrollListener&&a()(window).off(this.scrollListener),this.onLoadListener&&a()(window).off(this.onLoadListener),this.wasWrapped?this.$element.unwrap():this.$container.removeClass(this.options.containerClass).css({height:""})}}])&&c(t.prototype,e),n&&c(t,n),o}();function p(t){return parseInt(window.getComputedStyle(document.body,null).fontSize,10)*t}i.defaults={container:"<div data-sticky-container></div>",stickTo:"top",anchor:"",topAnchor:"",btmAnchor:"",marginTop:1,marginBottom:1,stickyOn:"medium",stickyClass:"sticky",containerClass:"sticky-container",dynamicHeight:!0,checkEvery:-1}},"./js/foundation.tabs.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Tabs",function(){return i});var e=n("jquery"),a=n.n(e),s=n("./js/foundation.core.plugin.js"),l=n("./js/foundation.core.utils.js"),r=n("./js/foundation.util.keyboard.js"),u=n("./js/foundation.util.imageLoader.js");function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=o(n);return function(t,e){{if(e&&("object"===c(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=o(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function o(t){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,s["Plugin"]);var t,e,n,i=h(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=a.a.extend({},o.defaults,this.$element.data(),e),this.className="Tabs",this._init(),r.Keyboard.register("Tabs",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"previous",ARROW_DOWN:"next",ARROW_LEFT:"previous"})}},{key:"_init",value:function(){var t,i=this,r=this;this._isInitializing=!0,this.$element.attr({role:"tablist"}),this.$tabTitles=this.$element.find(".".concat(this.options.linkClass)),this.$tabContent=a()('[data-tabs-content="'.concat(this.$element[0].id,'"]')),this.$tabTitles.each(function(){var t=a()(this),e=t.find("a"),n=t.hasClass("".concat(r.options.linkActiveClass)),i=e.attr("data-tabs-target")||e[0].hash.slice(1),o=e[0].id||"".concat(i,"-label"),s=a()("#".concat(i));t.attr({role:"presentation"}),e.attr({role:"tab","aria-controls":i,"aria-selected":n,id:o,tabindex:n?"0":"-1"}),s.attr({role:"tabpanel","aria-labelledby":o}),n&&(r._initialAnchor="#".concat(i)),n||s.attr("aria-hidden","true"),n&&r.options.autoFocus&&(r.onLoadListener=Object(l.onLoad)(a()(window),function(){a()("html, body").animate({scrollTop:t.offset().top},r.options.deepLinkSmudgeDelay,function(){e.focus()})}))}),this.options.matchHeight&&((t=this.$tabContent.find("img")).length?Object(u.onImagesLoaded)(t,this._setHeight.bind(this)):this._setHeight()),this._checkDeepLink=function(){var t=window.location.hash;if(!t.length){if(i._isInitializing)return;i._initialAnchor&&(t=i._initialAnchor)}var e=0<=t.indexOf("#")?t.slice(1):t,n=e&&a()("#".concat(e)),t=t&&i.$element.find('[href$="'.concat(t,'"],[data-tabs-target="').concat(e,'"]')).first();!n.length||!t.length||(n&&n.length&&t&&t.length?i.selectTab(n,!0):i._collapse(),i.options.deepLinkSmudge&&(e=i.$element.offset(),a()("html, body").animate({scrollTop:e.top-i.options.deepLinkSmudgeOffset},i.options.deepLinkSmudgeDelay)),i.$element.trigger("deeplink.zf.tabs",[t,n]))},this.options.deepLink&&this._checkDeepLink(),this._events(),this._isInitializing=!1}},{key:"_events",value:function(){this._addKeyHandler(),this._addClickHandler(),this._setHeightMqHandler=null,this.options.matchHeight&&(this._setHeightMqHandler=this._setHeight.bind(this),a()(window).on("changed.zf.mediaquery",this._setHeightMqHandler)),this.options.deepLink&&a()(window).on("hashchange",this._checkDeepLink)}},{key:"_addClickHandler",value:function(){var e=this;this.$element.off("click.zf.tabs").on("click.zf.tabs",".".concat(this.options.linkClass),function(t){t.preventDefault(),e._handleTabChange(a()(this))})}},{key:"_addKeyHandler",value:function(){var s=this;this.$tabTitles.off("keydown.zf.tabs").on("keydown.zf.tabs",function(t){var e,n,i,o;9!==t.which&&(e=a()(this),(n=e.parent("ul").children("li")).each(function(t){a()(this).is(e)&&(o=s.options.wrapOnKeys?(i=0===t?n.last():n.eq(t-1),t===n.length-1?n.first():n.eq(t+1)):(i=n.eq(Math.max(0,t-1)),n.eq(Math.min(t+1,n.length-1))))}),r.Keyboard.handleKey(t,"Tabs",{open:function(){e.find('[role="tab"]').focus(),s._handleTabChange(e)},previous:function(){i.find('[role="tab"]').focus(),s._handleTabChange(i)},next:function(){o.find('[role="tab"]').focus(),s._handleTabChange(o)},handled:function(){t.preventDefault()}}))})}},{key:"_handleTabChange",value:function(t,e){var n,i,o;t.hasClass("".concat(this.options.linkActiveClass))?this.options.activeCollapse&&this._collapse():(n=this.$element.find(".".concat(this.options.linkClass,".").concat(this.options.linkActiveClass)),i=(i=(o=t.find('[role="tab"]')).attr("data-tabs-target"))&&i.length?"#".concat(i):o[0].hash,o=this.$tabContent.find(i),this._collapseTab(n),this._openTab(t),this.options.deepLink&&!e&&(this.options.updateHistory?history.pushState({},"",i):history.replaceState({},"",i)),this.$element.trigger("change.zf.tabs",[t,o]),o.find("[data-mutate]").trigger("mutateme.zf.trigger"))}},{key:"_openTab",value:function(t){var e=t.find('[role="tab"]'),n=e.attr("data-tabs-target")||e[0].hash.slice(1),n=this.$tabContent.find("#".concat(n));t.addClass("".concat(this.options.linkActiveClass)),e.attr({"aria-selected":"true",tabindex:"0"}),n.addClass("".concat(this.options.panelActiveClass)).removeAttr("aria-hidden")}},{key:"_collapseTab",value:function(t){t=t.removeClass("".concat(this.options.linkActiveClass)).find('[role="tab"]').attr({"aria-selected":"false",tabindex:-1});a()("#".concat(t.attr("aria-controls"))).removeClass("".concat(this.options.panelActiveClass)).attr({"aria-hidden":"true"})}},{key:"_collapse",value:function(){var t=this.$element.find(".".concat(this.options.linkClass,".").concat(this.options.linkActiveClass));t.length&&(this._collapseTab(t),this.$element.trigger("collapse.zf.tabs",[t]))}},{key:"selectTab",value:function(t,e){var n,t="object"===c(t)?t[0].id:t;t.indexOf("#")<0?n="#".concat(t):t=(n=t).slice(1);t=this.$tabTitles.has('[href$="'.concat(n,'"],[data-tabs-target="').concat(t,'"]')).first();this._handleTabChange(t,e)}},{key:"_setHeight",value:function(){var i=0,o=this;this.$tabContent&&this.$tabContent.find(".".concat(this.options.panelClass)).css("min-height","").each(function(){var t=a()(this),e=t.hasClass("".concat(o.options.panelActiveClass));e||t.css({visibility:"hidden",display:"block"});var n=this.getBoundingClientRect().height;e||t.css({visibility:"",display:""}),i=i<n?n:i}).css("min-height","".concat(i,"px"))}},{key:"_destroy",value:function(){this.$element.find(".".concat(this.options.linkClass)).off(".zf.tabs").hide().end().find(".".concat(this.options.panelClass)).hide(),this.options.matchHeight&&null!=this._setHeightMqHandler&&a()(window).off("changed.zf.mediaquery",this._setHeightMqHandler),this.options.deepLink&&a()(window).off("hashchange",this._checkDeepLink),this.onLoadListener&&a()(window).off(this.onLoadListener)}}])&&f(t.prototype,e),n&&f(t,n),o}();i.defaults={deepLink:!1,deepLinkSmudge:!1,deepLinkSmudgeDelay:300,deepLinkSmudgeOffset:0,updateHistory:!1,autoFocus:!1,wrapOnKeys:!0,matchHeight:!1,activeCollapse:!1,linkClass:"tabs-title",linkActiveClass:"is-active",panelClass:"tabs-panel",panelActiveClass:"is-active"}},"./js/foundation.toggler.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Toggler",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.util.motion.js"),a=n("./js/foundation.core.plugin.js"),l=n("./js/foundation.core.utils.js"),u=n("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e){return(f=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=h(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=h(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function h(t){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(o,a["Plugin"]);var t,e,n,i=d(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,t.data(),e),this.className="",this.className="Toggler",u.Triggers.init(s.a),this._init(),this._events()}},{key:"_init",value:function(){var t,i=this.$element[0].id,e=s()('[data-open~="'.concat(i,'"], [data-close~="').concat(i,'"], [data-toggle~="').concat(i,'"]'));if(this.options.animate)t=this.options.animate.split(" "),this.animationIn=t[0],this.animationOut=t[1]||null,e.attr("aria-expanded",!this.$element.is(":hidden"));else{if("string"!=typeof(t=this.options.toggler)||!t.length)throw new Error("The 'toggler' option containing the target class is required, got \"".concat(t,'"'));this.className="."===t[0]?t.slice(1):t,e.attr("aria-expanded",this.$element.hasClass(this.className))}e.each(function(t,e){var n=s()(e),e=n.attr("aria-controls")||"";new RegExp("\\b".concat(Object(l.RegExpEscape)(i),"\\b")).test(e)||n.attr("aria-controls",e?"".concat(e," ").concat(i):i)})}},{key:"_events",value:function(){this.$element.off("toggle.zf.trigger").on("toggle.zf.trigger",this.toggle.bind(this))}},{key:"toggle",value:function(){this[this.options.animate?"_toggleAnimate":"_toggleClass"]()}},{key:"_toggleClass",value:function(){this.$element.toggleClass(this.className);var t=this.$element.hasClass(this.className);t?this.$element.trigger("on.zf.toggler"):this.$element.trigger("off.zf.toggler"),this._updateARIA(t),this.$element.find("[data-mutate]").trigger("mutateme.zf.trigger")}},{key:"_toggleAnimate",value:function(){var t=this;this.$element.is(":hidden")?r.Motion.animateIn(this.$element,this.animationIn,function(){t._updateARIA(!0),this.trigger("on.zf.toggler"),this.find("[data-mutate]").trigger("mutateme.zf.trigger")}):r.Motion.animateOut(this.$element,this.animationOut,function(){t._updateARIA(!1),this.trigger("off.zf.toggler"),this.find("[data-mutate]").trigger("mutateme.zf.trigger")})}},{key:"_updateARIA",value:function(t){var e=this.$element[0].id;s()('[data-open="'.concat(e,'"], [data-close="').concat(e,'"], [data-toggle="').concat(e,'"]')).attr({"aria-expanded":!!t})}},{key:"_destroy",value:function(){this.$element.off(".zf.toggler")}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={toggler:void 0,animate:!1}},"./js/foundation.tooltip.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Tooltip",function(){return i});var e=n("jquery"),s=n.n(e),r=n("./js/foundation.core.utils.js"),a=n("./js/foundation.util.mediaQuery.js"),l=n("./js/foundation.util.triggers.js"),u=n("./js/foundation.positionable.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){t=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t}(t,e);if(t){e=Object.getOwnPropertyDescriptor(t,e);return e.get?e.get.call(n):e.value}})(t,e,n||t)}function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(n);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&d(t,e)}(o,u["Positionable"]);var t,e,n,i=h(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=s.a.extend({},o.defaults,this.$element.data(),e),this.className="Tooltip",this.isActive=!1,this.isClick=!1,l.Triggers.init(s.a),this._init()}},{key:"_init",value:function(){a.MediaQuery._init();var t=this.$element.attr("aria-describedby")||Object(r.GetYoDigits)(6,"tooltip");this.options.tipText=this.options.tipText||this.$element.attr("title"),this.template=this.options.template?s()(this.options.template):this._buildTemplate(t),(this.options.allowHtml?this.template.appendTo(document.body).html(this.options.tipText):this.template.appendTo(document.body).text(this.options.tipText)).hide(),this.$element.attr({title:"","aria-describedby":t,"data-yeti-box":t,"data-toggle":t,"data-resize":t}).addClass(this.options.triggerClass),f(p(o.prototype),"_init",this).call(this),this._events()}},{key:"_getDefaultPosition",value:function(){var t=this.$element[0].className,t=(t=this.$element[0]instanceof SVGElement?t.baseVal:t).match(/\b(top|left|right|bottom)\b/g);return t?t[0]:"top"}},{key:"_getDefaultAlignment",value:function(){return"center"}},{key:"_getHOffset",value:function(){return"left"===this.position||"right"===this.position?this.options.hOffset+this.options.tooltipWidth:this.options.hOffset}},{key:"_getVOffset",value:function(){return"top"===this.position||"bottom"===this.position?this.options.vOffset+this.options.tooltipHeight:this.options.vOffset}},{key:"_buildTemplate",value:function(t){var e="".concat(this.options.tooltipClass," ").concat(this.options.templateClasses).trim();return s()("<div></div>").addClass(e).attr({role:"tooltip","aria-hidden":!0,"data-is-active":!1,"data-is-focus":!1,id:t})}},{key:"_setPosition",value:function(){f(p(o.prototype),"_setPosition",this).call(this,this.$element,this.template)}},{key:"show",value:function(){if("all"!==this.options.showOn&&!a.MediaQuery.is(this.options.showOn))return!1;this.template.css("visibility","hidden").show(),this._setPosition(),this.template.removeClass("top bottom left right").addClass(this.position),this.template.removeClass("align-top align-bottom align-left align-right align-center").addClass("align-"+this.alignment),this.$element.trigger("closeme.zf.tooltip",this.template.attr("id")),this.template.attr({"data-is-active":!0,"aria-hidden":!1}),this.isActive=!0,this.template.stop().hide().css("visibility","").fadeIn(this.options.fadeInDuration,function(){}),this.$element.trigger("show.zf.tooltip")}},{key:"hide",value:function(){var t=this;this.template.stop().attr({"aria-hidden":!0,"data-is-active":!1}).fadeOut(this.options.fadeOutDuration,function(){t.isActive=!1,t.isClick=!1}),this.$element.trigger("hide.zf.tooltip")}},{key:"_events",value:function(){var t=this,e="ontouchstart"in window||void 0!==window.ontouchstart,n=!1;e&&this.options.disableForTouch||(this.options.disableHover||this.$element.on("mouseenter.zf.tooltip",function(){t.isActive||(t.timeout=setTimeout(function(){t.show()},t.options.hoverDelay))}).on("mouseleave.zf.tooltip",Object(r.ignoreMousedisappear)(function(){clearTimeout(t.timeout),n&&(!t.isClick||t.options.clickOpen)||t.hide()})),e&&this.$element.on("tap.zf.tooltip touchend.zf.tooltip",function(){t.isActive?t.hide():t.show()}),this.options.clickOpen?this.$element.on("mousedown.zf.tooltip",function(){t.isClick||(t.isClick=!0,!t.options.disableHover&&t.$element.attr("tabindex")||t.isActive||t.show())}):this.$element.on("mousedown.zf.tooltip",function(){t.isClick=!0}),this.$element.on({"close.zf.trigger":this.hide.bind(this)}),this.$element.on("focus.zf.tooltip",function(){return n=!0,t.isClick?(t.options.clickOpen||(n=!1),!1):void t.show()}).on("focusout.zf.tooltip",function(){n=!1,t.isClick=!1,t.hide()}).on("resizeme.zf.trigger",function(){t.isActive&&t._setPosition()}))}},{key:"toggle",value:function(){this.isActive?this.hide():this.show()}},{key:"_destroy",value:function(){this.$element.attr("title",this.template.text()).off(".zf.trigger .zf.tooltip").removeClass(this.options.triggerClass).removeClass("top right left bottom").removeAttr("aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box"),this.template.remove()}}])&&c(t.prototype,e),n&&c(t,n),o}();i.defaults={hoverDelay:200,fadeInDuration:150,fadeOutDuration:150,disableHover:!1,disableForTouch:!1,templateClasses:"",tooltipClass:"tooltip",triggerClass:"has-tip",showOn:"small",template:"",tipText:"",touchCloseText:"Tap to close.",clickOpen:!0,position:"auto",alignment:"auto",allowOverlap:!1,allowBottomOverlap:!1,vOffset:0,hOffset:0,tooltipHeight:14,tooltipWidth:12,allowHtml:!1}},"./js/foundation.util.box.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Box",function(){return i});var i={ImNotTouchingYou:function(t,e,n,i,o){return 0===s(t,e,n,i,o)},OverlapArea:s,GetDimensions:f,GetExplicitOffsets:function(t,e,n,i,o,s,r){var a,l,u=f(t),c=e?f(e):null;if(null!==c){switch(n){case"top":a=c.offset.top-(u.height+o);break;case"bottom":a=c.offset.top+c.height+o;break;case"left":l=c.offset.left-(u.width+s);break;case"right":l=c.offset.left+c.width+s}switch(n){case"top":case"bottom":switch(i){case"left":l=c.offset.left+s;break;case"right":l=c.offset.left-u.width+c.width-s;break;case"center":l=r?s:c.offset.left+c.width/2-u.width/2+s}break;case"right":case"left":switch(i){case"bottom":a=c.offset.top-o+c.height-u.height;break;case"top":a=c.offset.top+o;break;case"center":a=c.offset.top+o+c.height/2-u.height/2}}}return{top:a,left:l}}};function s(t,e,n,i,o){var s,r,a,t=f(t);return t=e?(s=(e=f(e)).height+e.offset.top-(t.offset.top+t.height),r=t.offset.top-e.offset.top,a=t.offset.left-e.offset.left,e.width+e.offset.left-(t.offset.left+t.width)):(s=t.windowDims.height+t.windowDims.offset.top-(t.offset.top+t.height),r=t.offset.top-t.windowDims.offset.top,a=t.offset.left-t.windowDims.offset.left,t.windowDims.width-(t.offset.left+t.width)),s=o?0:Math.min(s,0),r=Math.min(r,0),a=Math.min(a,0),t=Math.min(t,0),n?a+t:i?r+s:Math.sqrt(r*r+s*s+a*a+t*t)}function f(t){if((t=t.length?t[0]:t)===window||t===document)throw new Error("I'm sorry, Dave. I'm afraid I can't do that.");var e=t.getBoundingClientRect(),n=t.parentNode.getBoundingClientRect(),i=document.body.getBoundingClientRect(),o=window.pageYOffset,t=window.pageXOffset;return{width:e.width,height:e.height,offset:{top:e.top+o,left:e.left+t},parentDims:{width:n.width,height:n.height,offset:{top:n.top+o,left:n.left+t}},windowDims:{width:i.width,height:i.height,offset:{top:o,left:t}}}}},"./js/foundation.util.imageLoader.js":function(t,e,n){"use strict";n.r(e),n.d(e,"onImagesLoaded",function(){return i});var e=n("jquery"),o=n.n(e);function i(t,e){var n=t.length;function i(){0===--n&&e()}0===n&&e(),t.each(function(){var t,e;this.complete&&void 0!==this.naturalWidth?i():(t=new Image,e="load.zf.images error.zf.images",o()(t).one(e,function t(){o()(this).off(e,t),i()}),t.src=o()(this).attr("src"))})}},"./js/foundation.util.keyboard.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Keyboard",function(){return u});var e=n("jquery"),o=n.n(e),s=n("./js/foundation.core.utils.js"),i={9:"TAB",13:"ENTER",27:"ESCAPE",32:"SPACE",35:"END",36:"HOME",37:"ARROW_LEFT",38:"ARROW_UP",39:"ARROW_RIGHT",40:"ARROW_DOWN"},r={};function a(t){return!!t&&t.find("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(function(){return!(!o()(this).is(":visible")||o()(this).attr("tabindex")<0)}).sort(function(t,e){if(o()(t).attr("tabindex")===o()(e).attr("tabindex"))return 0;var n=parseInt(o()(t).attr("tabindex"),10),i=parseInt(o()(e).attr("tabindex"),10);return void 0===o()(t).attr("tabindex")&&0<i?1:void 0===o()(e).attr("tabindex")&&0<n?-1:0===n&&0<i?1:0===i&&0<n||n<i?-1:i<n?1:void 0})}function l(t){var e=(e=i[t.which||t.keyCode]||String.fromCharCode(t.which).toUpperCase()).replace(/\W+/,"");return t.shiftKey&&(e="SHIFT_".concat(e)),t.ctrlKey&&(e="CTRL_".concat(e)),e=(e=t.altKey?"ALT_".concat(e):e).replace(/_$/,"")}var u={keys:function(t){var e,n={};for(e in t)t.hasOwnProperty(e)&&(n[t[e]]=t[e]);return n}(i),parseKey:l,handleKey:function(t,e,n){var i=r[e],e=this.parseKey(t);if(!i)return console.warn("Component not defined!");!0!==t.zfIsKeyHandled&&((e=n[(void 0===i.ltr?i:Object(s.rtl)()?o.a.extend({},i.ltr,i.rtl):o.a.extend({},i.rtl,i.ltr))[e]])&&"function"==typeof e?(e=e.apply(),t.zfIsKeyHandled=!0,!n.handled&&"function"!=typeof n.handled||n.handled(e)):!n.unhandled&&"function"!=typeof n.unhandled||n.unhandled())},findFocusable:a,register:function(t,e){r[t]=e},trapFocus:function(t){var e=a(t),n=e.eq(0),i=e.eq(-1);t.on("keydown.zf.trapfocus",function(t){t.target===i[0]&&"TAB"===l(t)?(t.preventDefault(),n.focus()):t.target===n[0]&&"SHIFT_TAB"===l(t)&&(t.preventDefault(),i.focus())})},releaseFocus:function(t){t.off("keydown.zf.trapfocus")}}},"./js/foundation.util.mediaQuery.js":function(t,e,n){"use strict";n.r(e),n.d(e,"MediaQuery",function(){return c});var i,o,s,e=n("jquery"),r=n.n(e);function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,o,s=[],r=!0,a=!1;try{for(n=n.call(t);!(r=(i=n.next()).done)&&(s.push(i.value),!e||s.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{r||null==n.return||n.return()}finally{if(a)throw o}}return s}}(t,e)||function(t,e){if(t){if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(n="Object"===n&&t.constructor?t.constructor.name:n)||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}window.matchMedia||(window.matchMedia=((s=window.styleMedia||window.media)||(i=document.createElement("style"),e=document.getElementsByTagName("script")[0],o=null,i.type="text/css",i.id="matchmediajs-test",e?e.parentNode.insertBefore(i,e):document.head.appendChild(i),o="getComputedStyle"in window&&window.getComputedStyle(i,null)||i.currentStyle,s={matchMedium:function(t){t="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=t:i.textContent=t,"1px"===o.width}}),function(t){return{matches:s.matchMedium(t||"all"),media:t||"all"}}));var c={queries:[],current:"",_init:function(){if(!0===this.isInitialized)return this;this.isInitialized=!0;r()("meta.foundation-mq").length||r()('<meta class="foundation-mq" name="foundation-mq" content>').appendTo(document.head);var t,e,n,i=r()(".foundation-mq").css("font-family");for(n in e={},t="string"==typeof(i=i)&&(i=i.trim().slice(1,-1))?e=i.split("&").reduce(function(t,e){var n=e.replace(/\+/g," ").split("="),e=n[0],n=n[1],e=decodeURIComponent(e),n=void 0===n?null:decodeURIComponent(n);return t.hasOwnProperty(e)?Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]:t[e]=n,t},{}):e,this.queries=[],t)t.hasOwnProperty(n)&&this.queries.push({name:n,value:"only screen and (min-width: ".concat(t[n],")")});this.current=this._getCurrentSize(),this._watcher()},_reInit:function(){this.isInitialized=!1,this._init()},atLeast:function(t){t=this.get(t);return!!t&&window.matchMedia(t).matches},only:function(t){return t===this._getCurrentSize()},upTo:function(t){t=this.next(t);return!t||!this.atLeast(t)},is:function(t){var e=l(t.trim().split(" ").filter(function(t){return!!t.length}),2),n=e[0],e=e[1],e=void 0===e?"":e;if("only"===e)return this.only(n);if(!e||"up"===e)return this.atLeast(n);if("down"===e)return this.upTo(n);throw new Error('\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like "<size> <modifier>", got "'.concat(t,'".\n    '))},get:function(t){for(var e in this.queries)if(this.queries.hasOwnProperty(e)){e=this.queries[e];if(t===e.name)return e.value}return null},next:function(e){var n=this,t=this.queries.findIndex(function(t){return n._getQueryName(t)===e});if(-1===t)throw new Error('\n        Unknown breakpoint "'.concat(e,'" passed to MediaQuery.next().\n        Ensure it is present in your Sass "$breakpoints" setting.\n      '));t=this.queries[t+1];return t?t.name:null},_getQueryName:function(t){if("string"==typeof t)return t;if("object"===a(t))return t.name;throw new TypeError('\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got "'.concat(t,'" (').concat(a(t),")\n    "))},_getCurrentSize:function(){for(var t,e=0;e<this.queries.length;e++){var n=this.queries[e];window.matchMedia(n.value).matches&&(t=n)}return t&&this._getQueryName(t)},_watcher:function(){var n=this;r()(window).on("resize.zf.trigger",function(){var t=n._getCurrentSize(),e=n.current;t!==e&&(n.current=t,r()(window).trigger("changed.zf.mediaquery",[t,e]))})}}},"./js/foundation.util.motion.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Move",function(){return o}),n.d(e,"Motion",function(){return i});var e=n("jquery"),a=n.n(e),l=n("./js/foundation.core.utils.js"),u=["mui-enter","mui-leave"],c=["mui-enter-active","mui-leave-active"],i={animateIn:function(t,e,n){s(!0,t,e,n)},animateOut:function(t,e,n){s(!1,t,e,n)}};function o(n,i,o){var s,r,a=null;if(0===n)return o.apply(i),void i.trigger("finished.zf.animate",[i]).triggerHandler("finished.zf.animate",[i]);s=window.requestAnimationFrame(function t(e){r=e-(a=a||e),o.apply(i),r<n?s=window.requestAnimationFrame(t,i):(window.cancelAnimationFrame(s),i.trigger("finished.zf.animate",[i]).triggerHandler("finished.zf.animate",[i]))})}function s(t,e,n,i){var o,s;function r(){e[0].style.transitionDuration=0,e.removeClass("".concat(o," ").concat(s," ").concat(n))}(e=a()(e).eq(0)).length&&(o=t?u[0]:u[1],s=t?c[0]:c[1],r(),e.addClass(n).css("transition","none"),requestAnimationFrame(function(){e.addClass(o),t&&e.show()}),requestAnimationFrame(function(){e[0].offsetWidth,e.css("transition","").addClass(s)}),e.one(Object(l.transitionend)(e),function(){t||e.hide();r(),i&&i.apply(e)}))}},"./js/foundation.util.nest.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Nest",function(){return i});var e=n("jquery"),l=n.n(e),i={Feather:function(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"zf";t.attr("role","menubar"),t.find("a").attr({role:"menuitem"});var t=t.find("li").attr({role:"none"}),o="is-".concat(i,"-submenu"),s="".concat(o,"-item"),r="is-".concat(i,"-submenu-parent"),a="accordion"!==i;t.each(function(){var t,e=l()(this),n=e.children("ul");n.length&&(e.addClass(r),a&&((t=e.children("a:first")).attr({"aria-haspopup":!0,"aria-label":t.attr("aria-label")||t.text()}),"drilldown"===i&&e.attr({"aria-expanded":!1})),n.addClass("submenu ".concat(o)).attr({"data-submenu":"",role:"menubar"}),"drilldown"===i&&n.attr({"aria-hidden":!0})),e.parent("[data-submenu]").length&&e.addClass("is-submenu-item ".concat(s))})},Burn:function(t,e){var n="is-".concat(e,"-submenu"),i="".concat(n,"-item"),e="is-".concat(e,"-submenu-parent");t.find(">li, > li > ul, .menu, .menu > li, [data-submenu] > li").removeClass("".concat(n," ").concat(i," ").concat(e," is-submenu-item submenu is-active")).removeAttr("data-submenu").css("display","")}}},"./js/foundation.util.timer.js":function(t,e,n){"use strict";function i(e,t,n){var i,o,s=this,r=t.duration,a=Object.keys(e.data())[0]||"timer",l=-1;this.isPaused=!1,this.restart=function(){l=-1,clearTimeout(o),this.start()},this.start=function(){this.isPaused=!1,clearTimeout(o),l=l<=0?r:l,e.data("paused",!1),i=Date.now(),o=setTimeout(function(){t.infinite&&s.restart(),n&&"function"==typeof n&&n()},l),e.trigger("timerstart.zf.".concat(a))},this.pause=function(){this.isPaused=!0,clearTimeout(o),e.data("paused",!0);var t=Date.now();l-=t-i,e.trigger("timerpaused.zf.".concat(a))}}n.r(e),n.d(e,"Timer",function(){return i})},"./js/foundation.util.touch.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Touch",function(){return u});var e=n("jquery"),o=n.n(e);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}var i,r,a,l,u={},c=!1,f=!1;function d(t){this.removeEventListener("touchmove",h),this.removeEventListener("touchend",d),f||(t=o.a.Event("tap",l||t),o()(this).trigger(t)),l=null,f=c=!1}function h(t){var e,n;!0===o.a.spotSwipe.preventDefault&&t.preventDefault(),c&&(e=t.touches[0].pageX,e=i-e,f=!0,a=(new Date).getTime()-r,(n=Math.abs(e)>=o.a.spotSwipe.moveThreshold&&a<=o.a.spotSwipe.timeThreshold?0<e?"left":"right":n)&&(t.preventDefault(),d.apply(this,arguments),o()(this).trigger(o.a.Event("swipe",Object.assign({},t)),n).trigger(o.a.Event("swipe".concat(n),Object.assign({},t)))))}function p(t){1===t.touches.length&&(i=t.touches[0].pageX,l=t,f=!(c=!0),r=(new Date).getTime(),this.addEventListener("touchmove",h,{passive:!0===o.a.spotSwipe.preventDefault}),this.addEventListener("touchend",d,!1))}function m(){this.addEventListener&&this.addEventListener("touchstart",p,{passive:!0})}var v=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.version="1.0.0",this.enabled="ontouchstart"in document.documentElement,this.preventDefault=!1,this.moveThreshold=75,this.timeThreshold=200,this._init()}var e,n,i;return e=t,(n=[{key:"_init",value:function(){o.a.event.special.swipe={setup:m},o.a.event.special.tap={setup:m},o.a.each(["left","up","down","right"],function(){o.a.event.special["swipe".concat(this)]={setup:function(){o()(this).on("swipe",o.a.noop)}}})}}])&&s(e.prototype,n),i&&s(e,i),t}();u.setupSpotSwipe=function(){o.a.spotSwipe=new v(o.a)},u.setupTouchHandler=function(){o.a.fn.addTouch=function(){this.each(function(t,e){o()(e).bind("touchstart touchmove touchend touchcancel",function(t){n(t)})});var n=function(t){var e,n=t.changedTouches[0],t={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup"}[t.type];"MouseEvent"in window&&"function"==typeof window.MouseEvent?e=new window.MouseEvent(t,{bubbles:!0,cancelable:!0,screenX:n.screenX,screenY:n.screenY,clientX:n.clientX,clientY:n.clientY}):(e=document.createEvent("MouseEvent")).initMouseEvent(t,!0,!0,window,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(e)}}},u.init=function(){void 0===o.a.spotSwipe&&(u.setupSpotSwipe(o.a),u.setupTouchHandler(o.a))}},"./js/foundation.util.triggers.js":function(t,e,n){"use strict";n.r(e),n.d(e,"Triggers",function(){return u});var e=n("jquery"),s=n.n(e),i=n("./js/foundation.core.utils.js"),o=n("./js/foundation.util.motion.js");function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(e,n){e.data(n).split(" ").forEach(function(t){s()("#".concat(t))["close"===n?"trigger":"triggerHandler"]("".concat(n,".zf.trigger"),[e])})}var l=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),u={Listeners:{Basic:{},Global:{}},Initializers:{}};function c(t,e,n){var i,o=Array.prototype.slice.call(arguments,3);s()(window).on(e,function(){i&&clearTimeout(i),i=setTimeout(function(){n.apply(null,o)},t||10)})}u.Listeners.Basic={openListener:function(){a(s()(this),"open")},closeListener:function(){s()(this).data("close")?a(s()(this),"close"):s()(this).trigger("close.zf.trigger")},toggleListener:function(){s()(this).data("toggle")?a(s()(this),"toggle"):s()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){var e=s()(this).data("closable");t.stopPropagation(),""!==e?o.Motion.animateOut(s()(this),e,function(){s()(this).trigger("closed.zf")}):s()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=s()(this).data("toggle-focus");s()("#".concat(t)).triggerHandler("toggle.zf.trigger",[s()(this)])}},u.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",u.Listeners.Basic.openListener)},u.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",u.Listeners.Basic.closeListener)},u.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",u.Listeners.Basic.toggleListener)},u.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",u.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",u.Listeners.Basic.closeableListener)},u.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",u.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",u.Listeners.Basic.toggleFocusListener)},u.Listeners.Global={resizeListener:function(t){l||t.each(function(){s()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){l||t.each(function(){s()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){t=t.namespace.split(".")[0];s()("[data-".concat(t,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=s()(this);t.triggerHandler("close.zf.trigger",[t])})}},u.Initializers.addClosemeListener=function(t){var e=s()("[data-yeti-box]"),n=["dropdown","tooltip","reveal"];t&&("string"==typeof t?n.push(t):"object"===r(t)&&"string"==typeof t[0]?n=n.concat(t):console.error("Plugin names must be strings")),e.length&&(n=n.map(function(t){return"closeme.zf.".concat(t)}).join(" "),s()(window).off(n).on(n,u.Listeners.Global.closeMeListener))},u.Initializers.addResizeListener=function(t){var e=s()("[data-resize]");e.length&&c(t,"resize.zf.trigger",u.Listeners.Global.resizeListener,e)},u.Initializers.addScrollListener=function(t){var e=s()("[data-scroll]");e.length&&c(t,"scroll.zf.trigger",u.Listeners.Global.scrollListener,e)},u.Initializers.addMutationEventsListener=function(t){if(!l)return!1;function e(t){var e=s()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}}var n=t.find("[data-resize], [data-scroll], [data-mutate]");if(n.length)for(var i=0;i<=n.length-1;i++)new l(e).observe(n[i],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})},u.Initializers.addSimpleListeners=function(){var t=s()(document);u.Initializers.addOpenListener(t),u.Initializers.addCloseListener(t),u.Initializers.addToggleListener(t),u.Initializers.addCloseableListener(t),u.Initializers.addToggleFocusListener(t)},u.Initializers.addGlobalListeners=function(){var t=s()(document);u.Initializers.addMutationEventsListener(t),u.Initializers.addResizeListener(250),u.Initializers.addScrollListener(),u.Initializers.addClosemeListener()},u.init=function(t,e){Object(i.onLoad)(s()(window),function(){!0!==s.a.triggersInitialized&&(u.Initializers.addSimpleListeners(),u.Initializers.addGlobalListeners(),s.a.triggersInitialized=!0)}),e&&(e.Triggers=u,e.IHearYou=u.Initializers.addGlobalListeners)}},0:function(t,e,n){t.exports=n("./js/entries/foundation.js")},jquery:function(t,e){t.exports=n}},s={},o.m=i,o.c=s,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=0);function o(t){if(s[t])return s[t].exports;var e=s[t]={i:t,l:!1,exports:{}};return i[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}var i,s});
 //# sourceMappingURL=foundation.min.js.map
index 163db219c020dfbfdbd5121bb8d9b4a54448690b..dd33794aa799f077ab49ff02e1ef56dc28f0f706 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///js/entries/foundation.js","webpack:///js/foundation.abide.js","webpack:///js/foundation.accordion.js","webpack:///js/foundation.accordionMenu.js","webpack:///js/foundation.core.js","webpack:///js/foundation.core.plugin.js","webpack:///js/foundation.core.utils.js","webpack:///js/foundation.drilldown.js","webpack:///js/foundation.dropdown.js","webpack:///js/foundation.dropdownMenu.js","webpack:///js/foundation.equalizer.js","webpack:///js/foundation.interchange.js","webpack:///js/foundation.magellan.js","webpack:///js/foundation.offcanvas.js","webpack:///js/foundation.orbit.js","webpack:///js/foundation.positionable.js","webpack:///js/foundation.responsiveAccordionTabs.js","webpack:///js/foundation.responsiveMenu.js","webpack:///js/foundation.responsiveToggle.js","webpack:///js/foundation.reveal.js","webpack:///js/foundation.slider.js","webpack:///js/foundation.smoothScroll.js","webpack:///js/foundation.sticky.js","webpack:///js/foundation.tabs.js","webpack:///js/foundation.toggler.js","webpack:///js/foundation.tooltip.js","webpack:///js/foundation.util.box.js","webpack:///js/foundation.util.imageLoader.js","webpack:///js/foundation.util.keyboard.js","webpack:///js/foundation.util.mediaQuery.js","webpack:///js/foundation.util.motion.js","webpack:///js/foundation.util.nest.js","webpack:///js/foundation.util.timer.js","webpack:///js/foundation.util.touch.js","webpack:///js/foundation.util.triggers.js","webpack:/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack:///webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","i","a","window","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_5__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_6__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_7__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_8__","_foundation_util_timer__WEBPACK_IMPORTED_MODULE_9__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_10__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_11__","_foundation_abide__WEBPACK_IMPORTED_MODULE_12__","_foundation_accordion__WEBPACK_IMPORTED_MODULE_13__","_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_14__","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_15__","_foundation_dropdown__WEBPACK_IMPORTED_MODULE_16__","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_17__","_foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__","_foundation_interchange__WEBPACK_IMPORTED_MODULE_19__","_foundation_magellan__WEBPACK_IMPORTED_MODULE_20__","_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_21__","_foundation_orbit__WEBPACK_IMPORTED_MODULE_22__","_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_23__","_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_24__","_foundation_reveal__WEBPACK_IMPORTED_MODULE_25__","_foundation_slider__WEBPACK_IMPORTED_MODULE_26__","_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_27__","_foundation_sticky__WEBPACK_IMPORTED_MODULE_28__","_foundation_tabs__WEBPACK_IMPORTED_MODULE_29__","_foundation_toggler__WEBPACK_IMPORTED_MODULE_30__","_foundation_tooltip__WEBPACK_IMPORTED_MODULE_31__","_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_32__","Foundation","addToJquery","$","rtl","CoreUtils","GetYoDigits","transitionend","RegExpEscape","onLoad","Box","onImagesLoaded","Keyboard","MediaQuery","Motion","Move","Nest","Timer","Touch","init","Triggers","_init","plugin","Abide","Accordion","AccordionMenu","Drilldown","Dropdown","DropdownMenu","Equalizer","Interchange","Magellan","OffCanvas","Orbit","ResponsiveMenu","ResponsiveToggle","Reveal","Slider","SmoothScroll","Sticky","Tabs","Toggler","Tooltip","ResponsiveAccordionTabs","Plugin","element","options","arguments","length","undefined","this","$element","extend","defaults","data","isEnabled","formnovalidate","className","_this2","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","_this3","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","$el","attr","isGood","type","checked","opt","val","failedValidators","_this4","id","$error","siblings","formErrorSelector","parent","add","concat","forEach","v","$label","closest","$els","_this5","labels","map","el","_this6","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","data-invalid","aria-invalid","errorId","elemId","$errors","$labels","filter","first","label","end","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","required","_this7","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","split","validators","equalTo","_this","goodToGo","message","dependentElements","removeErrorClasses","addErrorClasses","trigger","checkboxGroupName","_this8","acc","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","_this9","minRequired","parseInt","_this10","$form","opts","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text","register","ENTER","SPACE","ARROW_DOWN","ARROW_UP","HOME","END","_isInitializing","$tabs","children","idx","$content","linkId","aria-controls","aria-expanded","role","aria-labelledby","aria-hidden","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","location","hash","$anchor","$link","hasClass","_closeAllTabs","deepLinkSmudge","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","handleKey","next","$a","focus","multiExpand","previous","last","handled","$target","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$othersItems","$targetItem","allowAllClosed","_closeTab","$activeContents","targetContentId","finish","slideDown","slideSpeed","slideUp","$activeTabs","stop","ARROW_RIGHT","ARROW_LEFT","ESCAPE","Feather","aria-multiselectable","multiOpen","$menuLinks","$sub","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$prevElement","$nextElement","$elements","eq","Math","max","min","parents","open","close","closeAll","hideAll","$othersActiveSubmenus","$targetBranch","parentsUntil","$submenus","$allmenus","detach","remove","Burn","version","_plugins","_uuids","name","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","unregisterPlugin","splice","removeAttr","removeData","reInit","plugins","isJQ","_typeof","object","plgs","p","foundation","string","Object","keys","err","reflow","addBack","option","trim","str","isNaN","parseFloat","parseValue","er","getFnName","fn","method","$noJS","TypeError","args","Array","prototype","slice","call","plugClass","ReferenceError","apply","Function","results","exec","toString","replace","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","lastTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","navigator","userAgent","callback","nextTime","clearTimeout","performance","start","bind","oThis","fBound","fToBind","fNOP","aArgs","_classCallCheck","_setup","getPluginName","_destroy","obj","ignoreMousedisappear","namespace","chars","charsLength","floor","random","transition","transitions","WebkitTransition","MozTransition","OTransition","document","createElement","style","triggerHandler","handler","cb","eventType","didLoad","readyState","one","_ref","_ref$ignoreLeaveWindo","ignoreLeaveWindow","_ref$ignoreReappear","ignoreReappear","eLeave","_len","rest","_key","relatedTarget","hasFocus","eReenter","currentTarget","has","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","tabindex","$menu","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","max-width","min-height","$body","_show","closeOnClick","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","height","parentSubMenu","autoFocus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","GetDimensions","getBoundingClientRect","width","unwrap","Positionable","$id","$anchors","data-is-focus","data-yeti-box","aria-haspopup","_setCurrentAnchor","parentClass","$parent","$currentAnchor","data-resize","_get","_getPrototypeOf","position","match","horizontalPosition","alignment","hasTouch","ontouchstart","open.zf.trigger","close.zf.trigger","toggle.zf.trigger","resizeme.zf.trigger","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","body","$focusable","findFocusable","_addBodyHandler","trapFocus","releaseFocus","hide","vOffset","hOffset","allowOverlap","allowBottomOverlap","subs","verticalClass","rightClass","Rtl","changed","parClass","clickOpen","hasSub","hasClicked","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","functions","_isVertical","_isRtl","_removeBodyHandler","$sibs","ImNotTouchingYou","oldClass","$parentLi","$activeItem","$toClose","data-is-click","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","_reflow",".zf.equalizer","mutateme.zf.trigger","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","get","groupsILength","lenJ","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","matchMedia","query","matches","path","warn","queries","SPECIAL_QUERIES","value","rulesList","join","nodeName","background-image","response","html","landscape","portrait","retina","calcPoints","$targets","$links","data-scroll","$active","pageYOffset","documentElement","points","winHeight","round","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","threshold","targetPoint","deepLinking","scrollToLoc","_updateActive","onLoadListener","scrollme.zf.trigger","arrival","_deepLinkScroll","loc","_inTransition","newScrollPos","isScrollingUp","$oldActive","activeHash","isNewActive","activeIdx","visibleLinks","isNewHash","activeClass","pathname","search","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnClass","revealClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","keydown.zf.offCanvas","_handleKeyboard","click.zf.offCanvas","atLeast","hasReveal","_","topVal","absoluteTopVal","stickyData","_addContentClasses","event","lastY","touches","pageY","delta","_canScroll","stopPropagation","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","ltr","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","duration","timerDelay","infinite","changeSlide","_setWrapperHeight","temp","counter","display","swipe","pauseOnHover","pause","navButtons","nextClass","prevClass","$slide","restart","show","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","animateIn","animateOut","isPaused","$oldBullet","$othersBullets","$newBullet","spans","activeStateDescriptor","toArray","b","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","bottom","nextItem","item","array","currentIdx","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","MenuPlugins","tabs","cssClass","selectTab","accordion","_possibleConstructorReturn","_super","storezfData","_assertThisInitialized","currentMq","currentRule","currentPlugin","rulesTree","ruleSize","rulePlugin","_getAllOptions","isEmptyObject","_checkMediaQueries","allOptions","keyKey","objObj","dummyPlugin","tmpPlugin","destroy","_changedZfMediaQueryHandler","matchedMq","_handleMarkup","toSet","tabsTitle","tabsPanel","$liHeads","$liHeadsA","$tabsContent","fromString","$panels","linkClass","panelClass","visibility","appendTo","$placeholder","tempValue","_this$currentRule","_this$currentRule2","_this$currentRule3","dropdown","drilldown","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","cached","mq","current","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","focusableElements","_addGlobalClasses","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","urlWithoutHash","finishUp","_removeGlobalClasses","_enableScroll","hideDelay","resetOnClose","title","SHIFT_ARROW_RIGHT","SHIFT_ARROW_UP","SHIFT_ARROW_DOWN","SHIFT_ARROW_LEFT","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","positionValueFunction","_logTransform","_powTransform","toFixed","nonLinearBase","log","pow","$hndl","hOrW","lOrT","handleDim","movement","isLeftHndl","handlePct","moveTime","isDbl","h2Val","step","h1Val","vert","elemDim","_pctOfBar","decimal","_setValues","dim","handlePos","initialStart","changedDelay","initVal","initialEnd","aria-valuemax","aria-valuemin","aria-valuenow","aria-orientation","param","direction","eventOffset","barDim","barXY","_adjustValue","pageX","windowScroll","scrollLeft","elemOffset","clientY","_value","eventFromBar","absPosition","div","previousVal","_eventsForHandle","handleChangeEvent","_handleEvent","curHandle","keyCode","clickSelect","draggable","addTouch","newValue","_$handle","oldValue","decrease","increase","decreaseFast","increaseFast","dir","clickPos","abs","invertVertical","$loc","_linkClickListener","_handleLinkClick","$container","wasWrapped","container","stickyClass","data-mutate","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","place","pts","topAnchor","btmAnchor","breaks","scrollListener","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","anchorPt","anchorHeight","topOrBottom","stickyOn","newElemWidth","comp","getComputedStyle","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","$tabTitles","linkActiveClass","aria-selected","matchHeight","_setHeight","anchorNoHash","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","which","wrapOnKeys","historyHandled","$oldTab","$targetContent","activeCollapse","$tabLink","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","hashIdStr","idStr","panel","toggler","Error","$trigger","controls","_updateARIA","isClick","tipText","template","_buildTemplate","allowHtml","aria-describedby","data-toggle","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","data-is-active","showOn","fadeIn","fadeInDuration","fadeOut","fadeOutDuration","isFocus","disableForTouch","touchCloseText","lrOnly","tbOnly","ignoreBottom","isOverflow","leftVal","$eleDims","$anchorDims","bottomOver","topOver","leftOver","eleDims","rightOver","parDims","windowDims","sqrt","rect","parRect","parentNode","winRect","winY","winX","pageXOffset","parentDims","images","unloaded","singleImageLoaded","image","events","complete","naturalWidth","Image","me","src","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","keyCodes","9","13","27","32","35","36","37","38","39","40","commands","sort","aTabIndex","bTabIndex","parseKey","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","kcs","kc","k","getKeyCodes","component","commandList","zfIsKeyHandled","returnValue","unhandled","componentName","cmds","$firstFocusable","$lastFocusable","styleMedia","media","script","getElementsByTagName","insertBefore","head","appendChild","currentStyle","matchMedium","styleSheet","cssText","textContent","isInitialized","namedQueries","styleObject","extractedStyles","reduce","ret","parts","decodeURIComponent","isArray","_getCurrentSize","_watcher","_reInit","size","only","upTo","nextSize","_parts","_slicedToArray","bpSize","_parts$","bpModifier","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","newSize","currentSize","initClasses","activeClasses","animation","anim","prog","move","ts","isIn","initClass","reset","transitionDuration","offsetWidth","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","aria-label","data-submenu","nameSpace","remain","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","removeEventListener","onTouchMove","tapEvent","Event","dx","spotSwipe","x","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","SpotSwipe","enabled","special","setup","tap","noop","setupSpotSwipe","setupTouchHandler","handleTouch","simulatedEvent","changedTouches","touchstart","touchmove","touchend","MouseEvent","bubbles","cancelable","screenX","screenY","clientX","createEvent","initMouseEvent","dispatchEvent","triggers","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","openListener","closeListener","toggleListener","closeableListener","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","closeMeListener","pluginId","addClosemeListener","yetiBoxes","plugNames","listeners","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","installedModules","m","modules","c","getter","o","defineProperty","enumerable","Symbol","toStringTag","t","mode","__esModule","ns","create","property","s","moduleId","l"],"mappings":"CAAA,SAAAA,EAAAC,GACA,GAAA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,EAAAG,QAAA,gBACA,GAAA,mBAAAC,QAAAA,OAAAC,IACAD,OAAA,CAAA,UAAAJ,OACA,CACA,IACAM,EADAC,EAAA,iBAAAN,QAAAD,EAAAG,QAAA,WAAAH,EAAAD,EAAA,QACA,IAAAO,KAAAC,GAAA,iBAAAN,QAAAA,QAAAF,GAAAO,GAAAC,EAAAD,IAPA,CASCE,OAAA,SAAAC,GACD,O,6DCVAC,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,UAAAI,EAAAJ,EAAAK,EAAAF,GAAAG,EAAAN,EAAA,2BAAAA,EAAAO,EAAAL,EAAA,aAAA,WAAA,OAAAI,EAAA,aAAA,IAAAE,EAAAR,EAAA,iCAAAA,EAAAO,EAAAL,EAAA,YAAA,WAAA,OAAAM,IAAA,IAAAC,EAAAT,EAAA,+BAAAA,EAAAO,EAAAL,EAAA,MAAA,WAAA,OAAAO,EAAA,MAAA,IAAAC,EAAAV,EAAA,uCAAAA,EAAAO,EAAAL,EAAA,iBAAA,WAAA,OAAAQ,EAAA,iBAAA,IAAAC,EAAAX,EAAA,oCAAAA,EAAAO,EAAAL,EAAA,WAAA,WAAA,OAAAS,EAAA,WAAA,IAAAC,EAAAZ,EAAA,sCAAAA,EAAAO,EAAAL,EAAA,aAAA,WAAA,OAAAU,EAAA,aAAA,IAAAC,EAAAb,EAAA,kCAAAA,EAAAO,EAAAL,EAAA,SAAA,WAAA,OAAAW,EAAA,SAAA,IAAAC,EAAAd,EAAA,gCAAAA,EAAAO,EAAAL,EAAA,OAAA,WAAA,OAAAY,EAAA,OAAA,IAAAC,EAAAf,EAAA,iCAAAA,EAAAO,EAAAL,EAAA,QAAA,WAAA,OAAAa,EAAA,QAAA,IAAAC,EAAAhB,EAAA,iCAAAA,EAAAO,EAAAL,EAAA,QAAA,WAAA,OAAAc,EAAA,QAAA,IAAAC,EAAAjB,EAAA,oCAAAA,EAAAO,EAAAL,EAAA,WAAA,WAAA,OAAAe,EAAA,WAAA,IAAAC,EAAAlB,EAAA,4BAAAA,EAAAO,EAAAL,EAAA,QAAA,WAAA,OAAAgB,EAAA,QAAA,IAAAC,EAAAnB,EAAA,gCAAAA,EAAAO,EAAAL,EAAA,YAAA,WAAA,OAAAiB,EAAA,YAAA,IAAAC,EAAApB,EAAA,oCAAAA,EAAAO,EAAAL,EAAA,gBAAA,WAAA,OAAAkB,EAAA,gBAAA,IAAAC,EAAArB,EAAA,gCAAAA,EAAAO,EAAAL,EAAA,YAAA,WAAA,OAAAmB,EAAA,YAAA,IAAAC,EAAAtB,EAAA,+BAAAA,EAAAO,EAAAL,EAAA,WAAA,WAAA,OAAAoB,EAAA,WAAA,IAAAC,EAAAvB,EAAA,mCAAAA,EAAAO,EAAAL,EAAA,eAAA,WAAA,OAAAqB,EAAA,eAAA,IAAAC,EAAAxB,EAAA,gCAAAA,EAAAO,EAAAL,EAAA,YAAA,WAAA,OAAAsB,EAAA,YAAA,IAAAC,EAAAzB,EAAA,kCAAAA,EAAAO,EAAAL,EAAA,cAAA,WAAA,OAAAuB,EAAA,cAAA,IAAAC,EAAA1B,EAAA,+BAAAA,EAAAO,EAAAL,EAAA,WAAA,WAAA,OAAAwB,EAAA,WAAA,IAAAC,EAAA3B,EAAA,gCAAAA,EAAAO,EAAAL,EAAA,YAAA,WAAA,OAAAyB,EAAA,YAAA,IAAAC,EAAA5B,EAAA,4BAAAA,EAAAO,EAAAL,EAAA,QAAA,WAAA,OAAA0B,EAAA,QAAA,IAAAC,EAAA7B,EAAA,qCAAAA,EAAAO,EAAAL,EAAA,iBAAA,WAAA,OAAA2B,EAAA,iBAAA,IAAAC,EAAA9B,EAAA,uCAAAA,EAAAO,EAAAL,EAAA,mBAAA,WAAA,OAAA4B,EAAA,mBAAA,IAAAC,EAAA/B,EAAA,6BAAAA,EAAAO,EAAAL,EAAA,SAAA,WAAA,OAAA6B,EAAA,SAAA,IAAAC,EAAAhC,EAAA,6BAAAA,EAAAO,EAAAL,EAAA,SAAA,WAAA,OAAA8B,EAAA,SAAA,IAAAC,EAAAjC,EAAA,mCAAAA,EAAAO,EAAAL,EAAA,eAAA,WAAA,OAAA+B,EAAA,eAAA,IAAAC,EAAAlC,EAAA,6BAAAA,EAAAO,EAAAL,EAAA,SAAA,WAAA,OAAAgC,EAAA,SAAA,IAAAC,EAAAnC,EAAA,2BAAAA,EAAAO,EAAAL,EAAA,OAAA,WAAA,OAAAiC,EAAA,OAAA,IAAAC,EAAApC,EAAA,8BAAAA,EAAAO,EAAAL,EAAA,UAAA,WAAA,OAAAkC,EAAA,UAAA,IAAAC,EAAArC,EAAA,8BAAAA,EAAAO,EAAAL,EAAA,UAAA,WAAA,OAAAmC,EAAA,UAAA,IAAAC,EAAAtC,EAAA,8CAAAA,EAAAO,EAAAL,EAAA,0BAAA,WAAA,OAAAoC,EAAA,0BAmCAC,EAAAA,WAAWC,YAAYC,EAAAA,GAIvBF,EAAAA,WAAWG,IAAMC,EAAAA,IACjBJ,EAAAA,WAAWK,YAAcD,EAAAA,YACzBJ,EAAAA,WAAWM,cAAgBF,EAAAA,cAC3BJ,EAAAA,WAAWO,aAAeH,EAAAA,aAC1BJ,EAAAA,WAAWQ,OAASJ,EAAAA,OAEpBJ,EAAAA,WAAWS,IAAMA,EAAAA,IACjBT,EAAAA,WAAWU,eAAiBA,EAAAA,eAC5BV,EAAAA,WAAWW,SAAWA,EAAAA,SACtBX,EAAAA,WAAWY,WAAaA,EAAAA,WACxBZ,EAAAA,WAAWa,OAASA,EAAAA,OACpBb,EAAAA,WAAWc,KAAOA,EAAAA,KAClBd,EAAAA,WAAWe,KAAOA,EAAAA,KAClBf,EAAAA,WAAWgB,MAAQA,EAAAA,MAInBC,EAAAA,MAAMC,KAAKhB,EAAAA,GACXiB,EAAAA,SAASD,KAAKhB,EAAAA,EAAGF,EAAAA,YACjBY,EAAAA,WAAWQ,QAEXpB,EAAAA,WAAWqB,OAAOC,EAAAA,MAAO,SACzBtB,EAAAA,WAAWqB,OAAOE,EAAAA,UAAW,aAC7BvB,EAAAA,WAAWqB,OAAOG,EAAAA,cAAe,iBACjCxB,EAAAA,WAAWqB,OAAOI,EAAAA,UAAW,aAC7BzB,EAAAA,WAAWqB,OAAOK,EAAAA,SAAU,YAC5B1B,EAAAA,WAAWqB,OAAOM,EAAAA,aAAc,gBAChC3B,EAAAA,WAAWqB,OAAOO,EAAAA,UAAW,aAC7B5B,EAAAA,WAAWqB,OAAOQ,EAAAA,YAAa,eAC/B7B,EAAAA,WAAWqB,OAAOS,EAAAA,SAAU,YAC5B9B,EAAAA,WAAWqB,OAAOU,EAAAA,UAAW,aAC7B/B,EAAAA,WAAWqB,OAAOW,EAAAA,MAAO,SACzBhC,EAAAA,WAAWqB,OAAOY,EAAAA,eAAgB,kBAClCjC,EAAAA,WAAWqB,OAAOa,EAAAA,iBAAkB,oBACpClC,EAAAA,WAAWqB,OAAOc,EAAAA,OAAQ,UAC1BnC,EAAAA,WAAWqB,OAAOe,EAAAA,OAAQ,UAC1BpC,EAAAA,WAAWqB,OAAOgB,EAAAA,aAAc,gBAChCrC,EAAAA,WAAWqB,OAAOiB,EAAAA,OAAQ,UAC1BtC,EAAAA,WAAWqB,OAAOkB,EAAAA,KAAM,QACxBvC,EAAAA,WAAWqB,OAAOmB,EAAAA,QAAS,WAC3BxC,EAAAA,WAAWqB,OAAOoB,EAAAA,QAAS,WAC3BzC,EAAAA,WAAWqB,OAAOqB,EAAAA,wBAAyB,2BAqC5B1C,EAAAA,QAAAA,EAAf,Y,g/CC5GMsB,E,iPAAcqB,EAAAA,W,qMASlB,SAAOC,GAAuB,IAAdC,EAAc,EAAAC,UAAAC,aAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAJ,GACxBG,KAAKC,SAAWN,EAChBK,KAAKJ,QAAW3C,EAAAA,EAAEiD,QAAO,EAAM,GAAI7B,EAAM8B,SAAUH,KAAKC,SAASG,OAAQR,GACzEI,KAAKK,WAAY,EACjBL,KAAKM,eAAiB,KAEtBN,KAAKO,UAAY,QACjBP,KAAK7B,U,mBAOP,WAAQ,IAAAqC,EAAAR,KACNA,KAAKS,QAAUxD,EAAAA,EAAEyD,MACfV,KAAKC,SAASU,KAAK,SAASC,IAAI,mBAChCZ,KAAKC,SAASU,KAAK,qBAErBX,KAAKa,SAAWb,KAAKC,SAASU,KAAK,mBACnC,IAAMG,EAAgBd,KAAKC,SAASU,KAAK,sBAGrCX,KAAKJ,QAAQmB,iBACff,KAAKS,QAAQO,KAAK,SAAC5G,EAAG6G,GAAJ,OAAcT,EAAKU,kBAAkBjE,GAAAA,CAAEgE,MACzDH,EAAcE,KAAK,SAAC5G,EAAG+G,GAAJ,OAAcX,EAAKY,6BAA6BnE,GAAAA,CAAEkE,OAGvEnB,KAAKqB,Y,qBAOP,WAAU,IAAAC,EAAAtB,KACRA,KAAKC,SAASsB,IAAI,UACfC,GAAG,iBAAkB,WACpBF,EAAKG,cAEND,GAAG,kBAAmB,WACrB,OAAOF,EAAKI,iBAGhB1B,KAAKa,SACFU,IAAI,mCACJC,GAAG,kCAAmC,SAACG,GACjCA,EAAEC,KAAkB,MAAVD,EAAEC,KAAyB,UAAVD,EAAEC,MAChCD,EAAEE,iBACFP,EAAKhB,eAA6D,OAA5CqB,EAAEG,OAAOC,aAAa,kBAC5CT,EAAKrB,SAAS+B,YAIY,gBAA5BhC,KAAKJ,QAAQqC,YACfjC,KAAKS,QACFc,IAAI,mBACJC,GAAG,kBAAmB,SAACG,GACtBL,EAAKY,cAAcjF,GAAAA,CAAE0E,EAAEG,WAIzB9B,KAAKJ,QAAQuC,cACfnC,KAAKS,QACFc,IAAI,kBACJC,GAAG,iBAAkB,SAACG,GACrBL,EAAKY,cAAcjF,GAAAA,CAAE0E,EAAEG,WAIzB9B,KAAKJ,QAAQwC,gBACfpC,KAAKS,QACFc,IAAI,iBACJC,GAAG,gBAAiB,SAACG,GACpBL,EAAKY,cAAcjF,GAAAA,CAAE0E,EAAEG,a,qBAS/B,WACE9B,KAAK7B,U,mCAQP,WACE,OAAuB,IAAnB6B,KAAKK,YAEiC,kBAAxBL,KAAKM,eACdN,KAAKM,iBAGPN,KAAKa,SAASf,QAA6D,OAApDE,KAAKa,SAAS,GAAGkB,aAAa,qB,8BAM9D,WACE/B,KAAKK,WAAY,I,+BAMnB,WACEL,KAAKK,WAAY,I,2BAQnB,SAAcgC,GACZ,IAAKA,EAAIC,KAAK,YAAa,OAAO,EAElC,IAAIC,GAAS,EAEb,OAAQF,EAAI,GAAGG,MACb,IAAK,WACHD,EAASF,EAAI,GAAGI,QAChB,MAEF,IAAK,SACL,IAAK,aACL,IAAK,kBACH,IAAIC,EAAML,EAAI1B,KAAK,mBACd+B,EAAI5C,QAAW4C,EAAIC,QAAOJ,GAAS,GACxC,MAEF,QACOF,EAAIM,OAAUN,EAAIM,MAAM7C,SAAQyC,GAAS,GAGlD,OAAOA,I,2BAgBT,SAAcF,EAAKO,GAAkB,IAAAC,EAAA7C,KAC/B8C,EAAKT,EAAIvC,OAASuC,EAAI,GAAGS,GAAK,GAC9BC,EAASV,EAAIW,SAAShD,KAAKJ,QAAQqD,mBAmBvC,OAjBKF,EAAOjD,SACViD,EAASV,EAAIa,SAASvC,KAAKX,KAAKJ,QAAQqD,oBAGtCH,IACFC,EAASA,EAAOI,IAAInD,KAAKC,SAASU,KAAd,yBAAAyC,OAA4CN,EAA5C,SAGhBF,IACJG,EAASA,EAAOnC,IAAI,wBAEpBgC,EAAiBS,QAAQ,SAACC,GAExBP,GADAA,EAASA,EAAOI,IAAId,EAAIW,SAAJ,wBAAAI,OAAqCE,EAArC,SACJH,IAAIN,EAAK5C,SAASU,KAAd,yBAAAyC,OAA4CN,EAA5C,2BAAAM,OAAwEE,EAAxE,WAIjBP,I,uBAWT,SAAUV,GACR,IAAIS,EAAKT,EAAI,GAAGS,GACZS,EAASvD,KAAKC,SAASU,KAAd,cAAAyC,OAAiCN,EAAjC,OAEb,OAAKS,EAAOzD,OAILyD,EAHElB,EAAImB,QAAQ,W,6BAcvB,SAAgBC,GAAM,IAAAC,EAAA1D,KAChB2D,EAASF,EAAKG,IAAI,SAACxJ,EAAGyJ,GACxB,IAAIf,EAAKe,EAAGf,GACRS,EAASG,EAAKzD,SAASU,KAAd,cAAAyC,OAAiCN,EAAjC,OAKb,OAFES,GADGA,EAAOzD,OACD7C,GAAAA,CAAE4G,GAAIL,QAAQ,SAElBD,GAAO,KAGhB,OAAOtG,GAAAA,CAAE0G,K,gCAWX,SAAmBF,GAAM,IAAAK,EAAA9D,KACnB2D,EAASF,EAAKG,IAAI,SAACxJ,EAAGyJ,GACxB,IAAIf,EAAKe,EAAGf,GACRS,EAASO,EAAK7D,SAASU,KAAd,cAAAyC,OAAiCN,EAAjC,OAKb,OAFES,GADGA,EAAOzD,OACD7C,GAAAA,CAAE4G,GAAIL,QAAQ,SAElBD,GAAO,KAGhB,OAAOtG,GAAAA,CAAE0G,K,6BAQX,SAAgBtB,EAAKO,GACnB,IAAIW,EAASvD,KAAK+D,UAAU1B,GACxB2B,EAAahE,KAAKiE,cAAc5B,EAAKO,GAErCW,EAAOzD,QACTyD,EAAOW,SAASlE,KAAKJ,QAAQuE,iBAG3BH,EAAWlE,QACbkE,EAAWE,SAASlE,KAAKJ,QAAQwE,gBAGnC/B,EAAI6B,SAASlE,KAAKJ,QAAQyE,iBAAiB/B,KAAK,CAC9CgC,eAAgB,GAChBC,gBAAgB,M,+BASpB,SAAkBlC,GAChB,IAQMmC,EAWAC,EAnBFC,EAAU1E,KAAKiE,cAAc5B,GAC7BsC,EAAUD,EAAQE,OAAO,SACzB7B,EAAS2B,EAAQG,QAChBH,EAAQ5E,cAG+B,IAAjCuC,EAAIC,KAAK,2BAGK,KADnBkC,EAAUzB,EAAOT,KAAK,SAExBkC,EAAUpH,OAAAA,EAAAA,YAAAA,CAAY,EAAG,eACzB2F,EAAOT,KAAK,KAAMkC,IAGpBnC,EAAIC,KAAK,mBAAoBkC,IAG3BG,EAAQC,OAAO,SAAS9E,OAAS6E,EAAQ7E,cAGrB,KADlB2E,EAASpC,EAAIC,KAAK,SAEpBmC,EAASrH,OAAAA,EAAAA,YAAAA,CAAY,EAAG,eACxBiF,EAAIC,KAAK,KAAMmC,IAIjBE,EAAQ3D,KAAK,SAAC5G,EAAG0K,GACTvB,EAAStG,GAAAA,CAAE6H,QACiB,IAAvBvB,EAAOjB,KAAK,QACrBiB,EAAOjB,KAAK,MAAOmC,MAKzBC,EAAQ1D,KAAK,SAAC5G,EAAG0K,GACTvB,EAAStG,GAAAA,CAAE6H,QACkB,IAAxBvB,EAAOjB,KAAK,SACrBiB,EAAOjB,KAAK,OAAQ,WACrByC,S,0CAOL,SAA6B1C,QACU,IAA1BA,EAAIC,KAAK,cAClBD,EAAIC,KAAK,YAAatC,KAAKJ,QAAQoF,kB,qCAQvC,SAAwBC,GACtB,IAAIxB,EAAOzD,KAAKC,SAASU,KAAd,gBAAAyC,OAAmC6B,EAAnC,OACPN,EAAU3E,KAAKkF,gBAAgBzB,GAC/B0B,EAAcnF,KAAKiE,cAAcR,GAEjCkB,EAAQ7E,QACV6E,EAAQS,YAAYpF,KAAKJ,QAAQuE,iBAG/BgB,EAAYrF,QACdqF,EAAYC,YAAYpF,KAAKJ,QAAQwE,gBAGvCX,EAAK2B,YAAYpF,KAAKJ,QAAQyE,iBAAiB/B,KAAK,CAClDgC,eAAgB,KAChBC,eAAgB,S,wCAUpB,SAA2BU,GACzB,IAAIxB,EAAOzD,KAAKC,SAASU,KAAd,mBAAAyC,OAAsC6B,EAAtC,OACPN,EAAU3E,KAAKqF,mBAAmB5B,GAClC0B,EAAcnF,KAAKiE,cAAcR,GAEjCkB,EAAQ7E,QACV6E,EAAQS,YAAYpF,KAAKJ,QAAQuE,iBAG/BgB,EAAYrF,QACdqF,EAAYC,YAAYpF,KAAKJ,QAAQwE,gBAGvCX,EAAK2B,YAAYpF,KAAKJ,QAAQyE,iBAAiB/B,KAAK,CAClDgC,eAAgB,KAChBC,eAAgB,S,gCASpB,SAAmBlC,GAEjB,GAAoB,UAAhBA,EAAI,GAAGG,KACT,OAAOxC,KAAKsF,wBAAwBjD,EAAIC,KAAK,SAG1C,GAAoB,aAAhBD,EAAI,GAAGG,KACd,OAAOxC,KAAKuF,2BAA2BlD,EAAIC,KAAK,SAGlD,IAAIiB,EAASvD,KAAK+D,UAAU1B,GACxB2B,EAAahE,KAAKiE,cAAc5B,GAEhCkB,EAAOzD,QACTyD,EAAO6B,YAAYpF,KAAKJ,QAAQuE,iBAG9BH,EAAWlE,QACbkE,EAAWoB,YAAYpF,KAAKJ,QAAQwE,gBAGtC/B,EAAI+C,YAAYpF,KAAKJ,QAAQyE,iBAAiB/B,KAAK,CACjDgC,eAAgB,KAChBC,eAAgB,S,2BAYpB,SAAclC,GAAK,IAuCTmD,EAvCSC,EAAAzF,KACb0F,EAAe1F,KAAK2F,cAActD,GAClCuD,EAAYvD,EAAIC,KAAK,kBACrBM,EAAmB,GACnBiD,GAAqB,EAGzB,GAAI7F,KAAK8F,wBACP,OAAO,EAIT,GAAIzD,EAAI0D,GAAG,wBAA0B1D,EAAI0D,GAAG,oBAAsB1D,EAAI0D,GAAG,cACvE,OAAO,EAGT,OAAQ1D,EAAI,GAAGG,MACb,IAAK,QACHxC,KAAKgG,cAAc3D,EAAIC,KAAK,UAAYM,EAAiBqD,KAAK,YAC9D,MAEF,IAAK,WACHjG,KAAKkG,iBAAiB7D,EAAIC,KAAK,UAAYM,EAAiBqD,KAAK,YAEjEJ,GAAqB,EACrB,MAEF,IAAK,SACL,IAAK,aACL,IAAK,kBACHH,GAAgB9C,EAAiBqD,KAAK,YACtC,MAEF,QACEP,GAAgB9C,EAAiBqD,KAAK,YACtCjG,KAAKmG,aAAa9D,IAAQO,EAAiBqD,KAAK,WAGhDL,IACIJ,IAAWnD,EAAIC,KAAK,YAE1BsD,EAAUQ,MAAM,KAAK/C,QAAQ,SAACC,GAC5BmC,EAAK7F,QAAQyG,WAAW/C,GAAGjB,EAAKmD,EAAUnD,EAAIa,WAAaN,EAAiBqD,KAAK3C,MAIjFjB,EAAIC,KAAK,kBACXtC,KAAKJ,QAAQyG,WAAWC,QAAQjE,IAAQO,EAAiBqD,KAAK,YAGhE,IAOQM,EAPJC,EAAuC,IAA5B5D,EAAiB9C,OAC5B2G,GAAWD,EAAW,QAAU,WAAa,YA+BjD,OA7BIA,IAEIE,EAAoB1G,KAAKC,SAASU,KAAd,kBAAAyC,OAAqCf,EAAIC,KAAK,MAA9C,QACJxC,SAChByG,EAAQvG,KACZ0G,EAAkB1F,KAAK,WACjB/D,GAAAA,CAAE+C,MAAM2C,OACV4D,EAAMrE,cAAcjF,GAAAA,CAAE+C,UAM1B6F,IACGW,EAGHxG,KAAK2G,mBAAmBtE,GAFxBrC,KAAK4G,gBAAgBvE,EAAKO,IAY9BP,EAAIwE,QAAQJ,EAAS,CAACpE,IAEfmE,I,0BAST,WAAe,IAGTM,EAHSC,EAAA/G,KACTgH,EAAM,GACNT,EAAQvG,KASZ,GALKA,KAAKiH,cACRjH,KAAKiH,aAAc,GAIjBjH,KAAK8F,wBAEP,QADA9F,KAAKM,eAAiB,MAIxBN,KAAKS,QAAQO,KAAK,WAGhB,GAAwB,aAApB/D,GAAAA,CAAE+C,MAAM,GAAGwC,KAAqB,CAClC,GAAIvF,GAAAA,CAAE+C,MAAMsC,KAAK,UAAYwE,EAAmB,OAAO,EACvDA,EAAoB7J,GAAAA,CAAE+C,MAAMsC,KAAK,QAGnC0E,EAAIf,KAAKM,EAAMrE,cAAcjF,GAAAA,CAAE+C,UAGjC,IAAIkH,GAAkC,IAAxBF,EAAIG,SAAQ,GAkB1B,OAhBAnH,KAAKC,SAASU,KAAK,sBAAsBK,KAAK,SAAC5G,EAAGgN,GAC1CC,EAAQpK,GAAAA,CAAEmK,GAEZL,EAAKnH,QAAQmB,gBAAgBgG,EAAK3F,6BAA6BiG,GAEnEA,EAAMC,IAAI,UAAYJ,EAAU,OAAS,WAS3ClH,KAAKC,SAAS4G,SAASK,EAAU,YAAc,eAAiB,YAAa,CAAClH,KAAKC,WAE5EiH,I,0BAST,SAAa7E,EAAKkF,GAEhBA,EAAWA,GAAWlF,EAAIC,KAAK,iBAAmBD,EAAIC,KAAK,YAAcD,EAAIC,KAAK,QAClF,IAAIkF,EAAYnF,EAAIM,MAChB8E,GAAQ,EAaZ,OAXID,EAAU1H,SAERE,KAAKJ,QAAQ8H,SAASC,eAAeJ,GACvCE,EAAQzH,KAAKJ,QAAQ8H,SAASH,GAASK,KAAKJ,GAGrCD,IAAYlF,EAAIC,KAAK,UAC5BmF,EAAQ,IAAII,OAAON,GAASK,KAAKJ,KAI9BC,I,2BAQT,SAAcxC,GAGZ,IAAI6C,EAAS9H,KAAKC,SAASU,KAAd,gBAAAyC,OAAmC6B,EAAnC,OACTwC,GAAQ,EAAOjC,GAAW,EAmB9B,OAhBAsC,EAAO9G,KAAK,SAAC5G,EAAGuH,GACV1E,GAAAA,CAAE0E,GAAGW,KAAK,cACZkD,GAAW,MAGAiC,GAAVjC,GAAgB,EAEhBiC,IAEHK,EAAO9G,KAAK,SAAC5G,EAAGuH,GACV1E,GAAAA,CAAE0E,GAAGoG,KAAK,aACZN,GAAQ,KAKPA,I,8BAQT,SAAiBxC,GAAW,IAAA+C,EAAAhI,KAGtB8H,EAAS9H,KAAKC,SAASU,KAAd,mBAAAyC,OAAsC6B,EAAtC,OACTwC,GAAQ,EAAOjC,GAAW,EAAOyC,EAAc,EAAGxF,EAAU,EA6BhE,OA1BAqF,EAAO9G,KAAK,SAAC5G,EAAGuH,GACV1E,GAAAA,CAAE0E,GAAGW,KAAK,cACZkD,GAAW,MAGAiC,GAAVjC,GAAgB,EAEhBiC,KAGHK,EAAO9G,KAAK,SAAC5G,EAAGuH,GACV1E,GAAAA,CAAE0E,GAAGoG,KAAK,YACZtF,SAE4C,IAAnCxF,GAAAA,CAAE0E,GAAGW,KAAK,uBACnB2F,EAAcC,SAASjL,GAAAA,CAAE0E,GAAGW,KAAK,qBAAsB,OAK5C2F,GAAXxF,IACFgF,GAAQ,KAKa,IAArBzH,KAAKiH,aAAsC,EAAdgB,IAKjCH,EAAO9G,KAAK,SAAC5G,EAAGuH,GACT8F,EAGHO,EAAKrB,mBAAmB1J,GAAAA,CAAE0E,IAF1BqG,EAAKpB,gBAAgB3J,GAAAA,CAAE0E,GAAI,CAAC,eAMzB8F,K,6BAUT,SAAgBpF,EAAKgE,EAAYb,GAAU,IAAA2C,EAAAnI,KAMzC,OALAwF,IAAWA,GAKsB,IAHrBa,EAAWD,MAAM,KAAKxC,IAAI,SAACN,GACrC,OAAO6E,EAAKvI,QAAQyG,WAAW/C,GAAGjB,EAAKmD,EAAUnD,EAAIa,YAE1CiE,SAAQ,K,uBAOvB,WACE,IAAIiB,EAAQpI,KAAKC,SACboI,EAAOrI,KAAKJ,QAEhB3C,GAAAA,CAAC,IAAAmG,OAAKiF,EAAKlE,iBAAmBiE,GAAOxH,IAAI,SAASwE,YAAYiD,EAAKlE,iBACnElH,GAAAA,CAAC,IAAAmG,OAAKiF,EAAKhE,iBAAmB+D,GAAOxH,IAAI,SAASwE,YAAYiD,EAAKhE,iBACnEpH,GAAAA,CAAC,GAAAmG,OAAIiF,EAAKpF,kBAAT,KAAAG,OAA8BiF,EAAKjE,iBAAkBgB,YAAYiD,EAAKjE,gBACvEgE,EAAMzH,KAAK,sBAAsB2G,IAAI,UAAW,QAChDrK,GAAAA,CAAE,SAAUmL,GAAOxH,IAAI,6EAA6E+B,IAAI,IAAIL,KAAK,CAC/GgC,eAAgB,KAChBC,eAAgB,OAElBtH,GAAAA,CAAE,eAAgBmL,GAAOxH,IAAI,uBAAuBmH,KAAK,WAAU,GAAOzF,KAAK,CAC7EgC,eAAgB,KAChBC,eAAgB,OAElBtH,GAAAA,CAAE,kBAAmBmL,GAAOxH,IAAI,uBAAuBmH,KAAK,WAAU,GAAOzF,KAAK,CAChFgC,eAAgB,KAChBC,eAAgB,OAMlB6D,EAAMvB,QAAQ,qBAAsB,CAACuB,M,sBAOvC,WACE,IAAI7B,EAAQvG,KACZA,KAAKC,SACFsB,IAAI,UACJZ,KAAK,sBACH2G,IAAI,UAAW,QAEpBtH,KAAKS,QACFc,IAAI,UACJP,KAAK,WACJuF,EAAMI,mBAAmB1J,GAAAA,CAAE+C,SAG/BA,KAAKa,SACFU,IAAI,e,gCAOXlD,EAAM8B,SAAW,CAQf8B,WAAY,cAQZkC,gBAAiB,mBAQjBE,gBAAiB,mBAQjBpB,kBAAmB,cAQnBmB,eAAgB,aAWhBrD,gBAAgB,EAUhBiE,eAAgB,YAQhB7C,cAAc,EAQdC,gBAAgB,EAEhBsF,SAAU,CACRY,MAAQ,cAERC,cAAgB,iBAChBC,QAAU,aACVC,OAAS,2BAGTC,KAAO,+MACPC,IAAM,iBAGNC,MAAQ,wIAKRC,IAAK,gPAGLC,OAAS,mEAETC,SAAW,qHAEXC,KAAO,iIAEPC,KAAO,2CACPC,QAAU,oCAGVC,eAAiB,+DAGjBC,eAAiB,+DAGjBC,MAAQ,sCAGRC,QAAS,CACP1B,KAAM,SAAC2B,GACL,OAAOlL,EAAM8B,SAASuH,SAASoB,OAAOlB,KAAK2B,IAASlL,EAAM8B,SAASuH,SAASmB,IAAIjB,KAAK2B,MAW3FlD,WAAY,CACVC,QAAS,SAAUzC,GACjB,OAAO5G,GAAAA,CAAC,IAAAmG,OAAKS,EAAGvB,KAAK,kBAAmBK,QAAUkB,EAAGlB,U,giDC32BrDrE,E,iPAAkBoB,EAAAA,W,qMAStB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAI5B,EAAU6B,SAAUH,KAAKC,SAASG,OAAQR,GAEtEI,KAAKO,UAAY,YACjBP,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,YAAa,CAC7BC,MAAS,SACTC,MAAS,SACTC,WAAc,OACdC,SAAY,WACZC,KAAQ,QACRC,IAAO,W,mBAQX,WAAQ,IAAAtJ,EAAAR,KACNA,KAAK+J,iBAAkB,EAEvB/J,KAAKgK,MAAQhK,KAAKC,SAASgK,SAAS,yBAGpCjK,KAAKgK,MAAMhJ,KAAK,SAASkJ,EAAKrG,GAC5B,IAAIxB,EAAMpF,GAAAA,CAAE4G,GACRsG,EAAW9H,EAAI4H,SAAS,sBACxBnH,EAAKqH,EAAS,GAAGrH,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,aACtCgN,EAAUvG,EAAGf,GAAJ,GAAAM,OAAaS,EAAGf,GAAhB,UAAA,GAAAM,OAAgCN,EAAhC,UAEbT,EAAI1B,KAAK,WAAW2B,KAAK,CACvB+H,gBAAiBvH,EACjBA,GAAMsH,EACNE,iBAAiB,IAGnBH,EAAS7H,KAAK,CAACiI,KAAQ,SAAUC,kBAAmBJ,EAAQK,eAAe,EAAM3H,GAAMA,MAGzF,IAAI4H,EAAc1K,KAAKC,SAASU,KAAK,cAAcsJ,SAAS,sBACxDS,EAAY5K,SAEdE,KAAK2K,eAAiBD,EAAYE,KAAK,KAAKtI,KAAK,QACjDtC,KAAK6K,eAAeH,IAGtB1K,KAAK8K,eAAiB,WACpB,IAAIC,EAASzQ,OAAO0Q,SAASC,KAE7B,IAAKF,EAAOjL,OAAQ,CAElB,GAAIU,EAAKuJ,gBAAiB,OAEtBvJ,EAAKmK,iBAAgBI,EAASvK,EAAKmK,gBAGzC,IAAIO,EAAUH,GAAU9N,GAAAA,CAAE8N,GACtBI,EAAQJ,GAAUvK,EAAKP,SAASU,KAAd,WAAAyC,OAA8B2H,EAA9B,QAEDG,EAAQpL,SAAUqL,EAAMrL,SAIvCoL,GAAWC,GAASA,EAAMrL,OACvBqL,EAAMjI,OAAO,yBAAyBkI,SAAS,cAClD5K,EAAKqK,eAAeK,GAKtB1K,EAAK6K,gBAIH7K,EAAKZ,QAAQ0L,gBACf/N,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,WAChB,IAAIiR,EAAS/K,EAAKP,SAASsL,SAC3BtO,GAAAA,CAAE,cAAcuO,QAAQ,CAAEC,UAAWF,EAAOG,IAAMlL,EAAKZ,QAAQ+L,sBAAwBnL,EAAKZ,QAAQgM,uBAQxGpL,EAAKP,SAAS4G,QAAQ,wBAAyB,CAACsE,EAAOD,MAKvDlL,KAAKJ,QAAQiM,UACf7L,KAAK8K,iBAGP9K,KAAKqB,UAELrB,KAAK+J,iBAAkB,I,qBAOzB,WACE,IAAIxD,EAAQvG,KAEZA,KAAKgK,MAAMhJ,KAAK,WACd,IAAIqG,EAAQpK,GAAAA,CAAE+C,MACV8L,EAAczE,EAAM4C,SAAS,sBAC7B6B,EAAYhM,QACduH,EAAM4C,SAAS,KAAK1I,IAAI,2CAChBC,GAAG,qBAAsB,SAASG,GACxCA,EAAEE,iBACF0E,EAAMwF,OAAOD,KACZtK,GAAG,uBAAwB,SAASG,GACrCjE,EAAAA,SAASsO,UAAUrK,EAAG,YAAa,CACjCoK,OAAQ,WACNxF,EAAMwF,OAAOD,IAEfG,KAAM,WACJ,IAAIC,EAAK7E,EAAM4E,OAAOtL,KAAK,KAAKwL,QAC3B5F,EAAM3G,QAAQwM,aACjBF,EAAGrF,QAAQ,uBAGfwF,SAAU,WACR,IAAIH,EAAK7E,EAAMuD,OAAOjK,KAAK,KAAKwL,QAC3B5F,EAAM3G,QAAQwM,aACjBF,EAAGrF,QAAQ,uBAGfhC,MAAO,WACL,IAAIqH,EAAK3F,EAAMyD,MAAMnF,QAAQlE,KAAK,oBAAoBwL,QACjD5F,EAAM3G,QAAQwM,aAChBF,EAAGrF,QAAQ,uBAGhByF,KAAM,WACJ,IAAIJ,EAAK3F,EAAMyD,MAAMsC,OAAO3L,KAAK,oBAAoBwL,QAChD5F,EAAM3G,QAAQwM,aAChBF,EAAGrF,QAAQ,uBAGhB0F,QAAS,WACP5K,EAAEE,wBAMR7B,KAAKJ,QAAQiM,UACf5O,GAAAA,CAAE3C,QAAQkH,GAAG,aAAcxB,KAAK8K,kB,oBASpC,SAAO0B,GACDA,EAAQhJ,QAAQ,oBAAoBuC,GAAG,cACzC0G,QAAQC,KAAK,iDAGXF,EAAQtJ,SAASkI,SAAS,aAC5BpL,KAAK2M,GAAGH,GAERxM,KAAK4M,KAAKJ,GAGRxM,KAAKJ,QAAQiM,WACXd,EAASyB,EAAQ5B,KAAK,KAAKtI,KAAK,QAEhCtC,KAAKJ,QAAQiN,cACfC,QAAQC,UAAU,GAAI,GAAIhC,GAE1B+B,QAAQE,aAAa,GAAI,GAAIjC,O,kBAWnC,SAAKyB,GACCA,EAAQhJ,QAAQ,oBAAoBuC,GAAG,cACzC0G,QAAQC,KAAK,sDAIX1M,KAAKJ,QAAQwM,YACfpM,KAAKiN,SAAST,GAEdxM,KAAK6K,eAAe2B,K,gBAWxB,SAAGA,GACD,IAUMU,EAVFlN,KAAKC,SAAS8F,GAAG,cACnB0G,QAAQC,KAAK,qDAKTS,EAAcX,EAAQtJ,UACXkI,SAAS,eAGpB8B,EAAeC,EAAYnK,YAC5BhD,KAAKJ,QAAQwN,gBAAmBF,EAAa9B,SAAS,eAE3DpL,KAAKqN,UAAUb,M,4BASjB,SAAeA,GAEb,IAAMc,EAAkBtN,KAAKC,SAASgK,SAAS,cAAcA,SAAS,sBAClEqD,EAAgBxN,QAClBE,KAAKqN,UAAUC,EAAgB1M,IAAI4L,IAIrCxM,KAAKiN,SAAST,K,sBAUhB,SAASA,GAAS,IAAAlL,EAAAtB,KACVmN,EAAcX,EAAQtJ,SACtBqK,EAAkBf,EAAQlK,KAAK,mBAErCkK,EAAQlK,KAAK,eAAe,GAC5B6K,EAAYjJ,SAAS,aAErBjH,GAAAA,CAAC,IAAAmG,OAAKmK,IAAmBjL,KAAK,CAC5BgI,iBAAiB,IAGnBkC,EAAQgB,SAASC,UAAUzN,KAAKJ,QAAQ8N,WAAY,WAKlDpM,EAAKrB,SAAS4G,QAAQ,oBAAqB,CAAC2F,Q,uBAWhD,SAAUA,GAAS,IAAA3J,EAAA7C,KACXmN,EAAcX,EAAQtJ,SACtBqK,EAAkBf,EAAQlK,KAAK,mBAErCkK,EAAQlK,KAAK,eAAe,GAC5B6K,EAAY/H,YAAY,aAExBnI,GAAAA,CAAC,IAAAmG,OAAKmK,IAAmBjL,KAAK,CAC7BgI,iBAAiB,IAGlBkC,EAAQgB,SAASG,QAAQ3N,KAAKJ,QAAQ8N,WAAY,WAKhD7K,EAAK5C,SAAS4G,QAAQ,kBAAmB,CAAC2F,Q,2BAU9C,WACE,IAAIoB,EAAc5N,KAAKC,SAASgK,SAAS,cAAcA,SAAS,sBAC5D2D,EAAY9N,QACdE,KAAKqN,UAAUO,K,sBASnB,WACE5N,KAAKC,SAASU,KAAK,sBAAsBkN,MAAK,GAAMF,QAAQ,GAAGrG,IAAI,UAAW,IAC9EtH,KAAKC,SAASU,KAAK,KAAKY,IAAI,iBACxBvB,KAAKJ,QAAQiM,UACf5O,GAAAA,CAAE3C,QAAQiH,IAAI,aAAcvB,KAAK8K,qB,gCAMvCxM,EAAU6B,SAAW,CAOnBuN,WAAY,IAOZtB,aAAa,EAObgB,gBAAgB,EAQhBvB,UAAU,EAOVP,gBAAgB,EAOhBM,oBAAqB,IAOrBD,qBAAsB,EAOtBkB,eAAe,I,4kDCvYXtO,E,iPAAsBmB,EAAAA,W,qMAS1B,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAI3B,EAAc4B,SAAUH,KAAKC,SAASG,OAAQR,GAC1EI,KAAKO,UAAY,gBAEjBP,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,gBAAiB,CACjCC,MAAS,SACTC,MAAS,SACToE,YAAe,OACflE,SAAY,KACZD,WAAc,OACdoE,WAAc,QACdC,OAAU,e,mBAUd,WACElQ,EAAAA,KAAKmQ,QAAQjO,KAAKC,SAAU,aAE5B,IAAIsG,EAAQvG,KAEZA,KAAKC,SAASU,KAAK,kBAAkBC,IAAI,cAAc+M,QAAQ,GAC/D3N,KAAKC,SAASqC,KAAK,CACjB4L,uBAAwBlO,KAAKJ,QAAQuO,YAGvCnO,KAAKoO,WAAapO,KAAKC,SAASU,KAAK,gCACrCX,KAAKoO,WAAWpN,KAAK,WACnB,IAAIoJ,EAASpK,KAAK8C,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,iBACnCiK,EAAQpK,GAAAA,CAAE+C,MACVqO,EAAOhH,EAAM4C,SAAS,kBACtBqE,EAAQD,EAAK,GAAGvL,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,YACrCmR,EAAWF,EAAKjD,SAAS,aAEzB7E,EAAM3G,QAAQ4O,YACFnH,EAAM4C,SAAS,KACrBwE,QAAQC,UAAUL,GAAMM,KAAK,0GAGnCpI,EAAM3G,QAAQgP,eAChBvH,EAAMnD,SAAS,sBACfmD,EAAM4C,SAAS,KAAK4E,MAAM,eAAiBzE,EAAS,2CAA6CkE,EAAQ,oBAAsBC,EAAW,YAAchI,EAAM3G,QAAQkP,kBAAoB,uCAAyCvI,EAAM3G,QAAQkP,kBAAoB,qBAErQzH,EAAM/E,KAAK,CACT+H,gBAAiBiE,EACjBhE,gBAAiBiE,EACjBzL,GAAMsH,IAGViE,EAAK/L,KAAK,CACRkI,kBAAmBJ,EACnBK,eAAgB8D,EAChBhE,KAAQ,QACRzH,GAAMwL,MAGV,IAAIS,EAAY/O,KAAKC,SAASU,KAAK,cAC/BoO,EAAUjP,QACZiP,EAAU/N,KAAK,WACbuF,EAAMqG,KAAK3P,GAAAA,CAAE+C,SAGjBA,KAAKqB,Y,qBAOP,WACE,IAAIkF,EAAQvG,KAEZA,KAAKC,SAASU,KAAK,MAAMK,KAAK,WAC5B,IAAIgO,EAAW/R,GAAAA,CAAE+C,MAAMiK,SAAS,kBAE5B+E,EAASlP,SACPyG,EAAM3G,QAAQgP,cAChB3R,GAAAA,CAAE+C,MAAMiK,SAAS,mBAAmB1I,IAAI,0BAA0BC,GAAG,yBAA0B,WAC7F+E,EAAMwF,OAAOiD,KAGb/R,GAAAA,CAAE+C,MAAMiK,SAAS,KAAK1I,IAAI,0BAA0BC,GAAG,yBAA0B,SAASG,GACxFA,EAAEE,iBACF0E,EAAMwF,OAAOiD,QAIpBxN,GAAG,2BAA4B,SAASG,GACzC,IAEIsN,EACAC,EAHAjP,EAAWhD,GAAAA,CAAE+C,MACbmP,EAAYlP,EAASiD,OAAO,MAAM+G,SAAS,MAG3CuC,EAAUvM,EAASgK,SAAS,kBAEhCkF,EAAUnO,KAAK,SAAS5G,GAClB6C,GAAAA,CAAE+C,MAAM+F,GAAG9F,KACbgP,EAAeE,EAAUC,GAAGC,KAAKC,IAAI,EAAGlV,EAAE,IAAIuG,KAAK,KAAKkE,QACxDqK,EAAeC,EAAUC,GAAGC,KAAKE,IAAInV,EAAE,EAAG+U,EAAUrP,OAAO,IAAIa,KAAK,KAAKkE,QAErE5H,GAAAA,CAAE+C,MAAMiK,SAAS,0BAA0BnK,SAC7CoP,EAAejP,EAASU,KAAK,kBAAkBA,KAAK,KAAKkE,SAEvD5H,GAAAA,CAAE+C,MAAM+F,GAAG,gBACbkJ,EAAehP,EAASuP,QAAQ,MAAM3K,QAAQlE,KAAK,KAAKkE,QAC/CoK,EAAaO,QAAQ,MAAM3K,QAAQoF,SAAS,0BAA0BnK,SAC/EmP,EAAeA,EAAaO,QAAQ,MAAM7O,KAAK,iBAAiBA,KAAK,KAAKkE,SAExE5H,GAAAA,CAAE+C,MAAM+F,GAAG,iBACbmJ,EAAejP,EAASuP,QAAQ,MAAM3K,QAAQoH,KAAK,MAAMtL,KAAK,KAAKkE,YAOzEnH,EAAAA,SAASsO,UAAUrK,EAAG,gBAAiB,CACrC8N,KAAM,WACAjD,EAAQzG,GAAG,aACbQ,EAAMqG,KAAKJ,GACXA,EAAQ7L,KAAK,MAAMkE,QAAQlE,KAAK,KAAKkE,QAAQsH,UAGjDuD,MAAO,WACDlD,EAAQ1M,SAAW0M,EAAQzG,GAAG,WAChCQ,EAAMoG,GAAGH,GACAvM,EAASiD,OAAO,kBAAkBpD,SAC3CyG,EAAMoG,GAAG1M,EAASiD,OAAO,mBACzBjD,EAASuP,QAAQ,MAAM3K,QAAQlE,KAAK,KAAKkE,QAAQsH,UAGrDQ,GAAI,WAEF,OADAsC,EAAa9C,SACN,GAETS,KAAM,WAEJ,OADAsC,EAAa/C,SACN,GAETJ,OAAQ,WACN,OAAIxF,EAAM3G,QAAQgP,gBAGd3O,EAASgK,SAAS,kBAAkBnK,QACtCyG,EAAMwF,OAAO9L,EAASgK,SAAS,oBACxB,QAFT,IAKF0F,SAAU,WACRpJ,EAAMqJ,WAERrD,QAAS,SAAS1K,GACZA,GACFF,EAAEE,wB,qBAWZ,WACE7B,KAAK2M,GAAG3M,KAAKC,SAASU,KAAK,qB,qBAO7B,WACEX,KAAK4M,KAAK5M,KAAKC,SAASU,KAAK,qB,oBAQ/B,SAAO6L,GACAA,EAAQzG,GAAG,eACTyG,EAAQzG,GAAG,WAId/F,KAAK4M,KAAKJ,GAHVxM,KAAK2M,GAAGH,M,kBAad,SAAKA,GAAS,IAUJqD,EAVIrP,EAAAR,KAGPA,KAAKJ,QAAQuO,YAGV2B,EAAgBtD,EAAQuD,aAAa/P,KAAKC,UAC7CkD,IAAIqJ,GACJrJ,IAAIqJ,EAAQ7L,KAAK,eAEdkP,EAAwB7P,KAAKC,SAASU,KAAK,cAAcC,IAAIkP,GAEnE9P,KAAK2M,GAAGkD,IAGVrD,EACGtI,SAAS,aACT5B,KAAK,CAAEmI,eAAe,KAErBzK,KAAKJ,QAAQgP,cACfpC,EAAQ5B,KAAK,mBAGb4B,EAAQtJ,OAAO,iCAHiBZ,KAAK,CAACgI,iBAAiB,IAMzDkC,EAAQiB,UAAUzN,KAAKJ,QAAQ8N,WAAY,WAKzClN,EAAKP,SAAS4G,QAAQ,wBAAyB,CAAC2F,Q,gBASpD,SAAGA,GAAS,IAAAlL,EAAAtB,KACJgQ,EAAYxD,EAAQ7L,KAAK,kBACzBsP,EAAYzD,EAAQrJ,IAAI6M,GAE9BA,EAAUrC,QAAQ,GAClBsC,EACG7K,YAAY,aACZ9C,KAAK,eAAe,IAEnBtC,KAAKJ,QAAQgP,cACfqB,EAAUrF,KAAK,mBAGfqF,EAAU/M,OAAO,iCAHiBZ,KAAK,iBAAiB,GAM1DkK,EAAQmB,QAAQ3N,KAAKJ,QAAQ8N,WAAY,WAKvCpM,EAAKrB,SAAS4G,QAAQ,sBAAuB,CAAC2F,Q,sBAQlD,WACExM,KAAKC,SAASU,KAAK,kBAAkB8M,UAAU,GAAGnG,IAAI,UAAW,IACjEtH,KAAKC,SAASU,KAAK,KAAKY,IAAI,0BAC5BvB,KAAKC,SAASU,KAAK,yBAAyBuP,SAExClQ,KAAKJ,QAAQgP,gBACf5O,KAAKC,SAASU,KAAK,uBAAuByE,YAAY,sBACtDpF,KAAKC,SAASU,KAAK,mBAAmBwP,UAGxCrS,EAAAA,KAAKsS,KAAKpQ,KAAKC,SAAU,kB,gCAI7B1B,EAAc4B,SAAW,CAOvBqO,YAAY,EAOZd,WAAY,IAMZkB,eAAe,EAMfE,kBAAmB,cAOnBX,WAAW,I,sbClVb,IAIIpR,EAAa,CACfsT,QALuB,QAUvBC,SAAU,GAKVC,OAAQ,GAMRnS,OAAQ,SAASA,EAAQoS,GAGvB,IAAIjQ,EAAaiQ,GAAQC,EAAarS,GAGlCsS,EAAYC,EAAUpQ,GAG1BP,KAAKsQ,SAASI,GAAY1Q,KAAKO,GAAanC,GAW9CwS,eAAgB,SAASxS,EAAQoS,GAC3BK,EAAaL,EAAOG,EAAUH,GAAQC,EAAarS,EAAO0S,aAAaC,cAC3E3S,EAAO4S,KAAO5T,OAAAA,EAAAA,YAAAA,CAAY,EAAGyT,GAEzBzS,EAAO6B,SAASqC,KAAhB,QAAAc,OAA6ByN,KAAgBzS,EAAO6B,SAASqC,KAAhB,QAAAc,OAA6ByN,GAAczS,EAAO4S,MAC/F5S,EAAO6B,SAASG,KAAK,aAAchC,EAAO6B,SAASG,KAAK,WAAYhC,GAKxEA,EAAO6B,SAAS4G,QAAhB,WAAAzD,OAAmCyN,IAEnC7Q,KAAKuQ,OAAOtK,KAAK7H,EAAO4S,OAY1BC,iBAAkB,SAAS7S,GACzB,IASQ2J,EATJ8I,EAAaF,EAAUF,EAAarS,EAAO6B,SAASG,KAAK,YAAY0Q,cASzE,IAAQ/I,KAPR/H,KAAKuQ,OAAOW,OAAOlR,KAAKuQ,OAAOpJ,QAAQ/I,EAAO4S,MAAO,GACrD5S,EAAO6B,SAASkR,WAAhB,QAAA/N,OAAmCyN,IAAcO,WAAW,YAKrDvK,QALP,gBAAAzD,OAK+ByN,IACfzS,EACa,mBAAjBA,EAAO2J,KACf3J,EAAO2J,GAAQ,OAYpBsJ,OAAQ,SAASC,GACf,IAOQ9O,EACJ+D,EARAgL,EAAOD,aAAmBrU,EAAAA,EAC9B,IACKsU,EACDD,EAAQtQ,KAAK,WACX/D,GAAAA,CAAE+C,MAAMI,KAAK,YAAYjC,WAGvBqE,EAAIgP,EAAUF,GAClB/K,EAAQvG,KACF,CACJyR,OAAU,SAASC,GACjBA,EAAKrO,QAAQ,SAASsO,GACpBA,EAAIhB,EAAUgB,GACd1U,GAAAA,CAAE,SAAU0U,EAAG,KAAKC,WAAW,YAGnCC,OAAU,WACRP,EAAUX,EAAUW,GACpBrU,GAAAA,CAAE,SAAUqU,EAAS,KAAKM,WAAW,UAEvC7R,UAAa,WACXC,KAAKyR,OAAOK,OAAOC,KAAKxL,EAAM+J,aAG9B9N,GAAM8O,IAEb,MAAMU,GACLvF,QAAQtL,MAAM6Q,GA1BhB,QA4BE,OAAOV,IASZW,OAAQ,SAAS7K,EAAMkK,QAGE,IAAZA,EACTA,EAAUQ,OAAOC,KAAK/R,KAAKsQ,UAGD,iBAAZgB,IACdA,EAAU,CAACA,IAGb,IAAI/K,EAAQvG,KAGZ/C,EAAAA,EAAE+D,KAAKsQ,EAAS,SAASlX,EAAGoW,GAE1B,IAAIpS,EAASmI,EAAM+J,SAASE,GAGhBvT,GAAAA,CAAEmK,GAAMzG,KAAK,SAAS6P,EAAK,KAAK0B,QAAQ,SAAS1B,EAAK,KAAK5L,OAAO,WAC5E,YAA2C,IAA7B3H,GAAAA,CAAE+C,MAAMI,KAAK,cAIvBY,KAAK,WACT,IAAIqB,EAAMpF,GAAAA,CAAE+C,MACRqI,EAAO,CAAE4J,QAAQ,GAElB5P,EAAIC,KAAK,iBACVD,EAAIC,KAAK,gBAAgB8D,MAAM,KAAK/C,QAAQ,SAAS8O,GAC/CzP,EAAMyP,EAAO/L,MAAM,KAAKxC,IAAI,SAASC,GAAK,OAAOA,EAAGuO,SACrD1P,EAAI,KAAI2F,EAAK3F,EAAI,IA+JhC,SAAoB2P,GAClB,CAAA,GAAI,SAAWA,EAAK,OAAO,EACtB,GAAI,UAAYA,EAAK,OAAO,EAC5B,IAAKC,OAAMD,GAAU,OAAOE,WAAWF,GAC5C,OAAOA,EAnK6BG,CAAW9P,EAAI,OAG7C,IACEL,EAAIjC,KAAK,WAAY,IAAIhC,EAAOnB,GAAAA,CAAE+C,MAAOqI,IAC1C,MAAMoK,GACLhG,QAAQtL,MAAMsR,GAHhB,QAKE,aAKRC,UAAWjC,EAEXzT,YAAa,WAuCX,OADAC,EAAAA,EAAE0V,GAAGf,WA/BY,SAASgB,GACxB,IAAIpQ,EAAIgP,EAAUoB,GACdC,EAAQ5V,GAAAA,CAAE,UAMd,GAJG4V,EAAM/S,QACP+S,EAAMzN,YAAY,SAGR,cAAT5C,EACD7E,EAAAA,WAAWQ,QACXpB,EAAWkV,OAAOjS,UACd,CAAA,GAAY,WAATwC,EAgBP,MAAM,IAAIsQ,UAAJ,gBAAA1P,OAA8BZ,EAA9B,iGAfN,IAAIuQ,EAAOC,MAAMC,UAAUC,MAAMC,KAAKtT,UAAW,GAC7CuT,EAAYpT,KAAKI,KAAK,YAE1B,QAAwB,IAAdgT,QAA0D,IAAtBA,EAAUR,GAStD,MAAM,IAAIS,eAAe,iBAAmBT,EAAS,qCAAuCQ,EAAY3C,EAAa2C,GAAa,gBAAkB,KARjI,IAAhBpT,KAAKF,OACJsT,EAAUR,GAAQU,MAAMF,EAAWL,GAErC/S,KAAKgB,KAAK,SAAS5G,EAAGyJ,GACpBuP,EAAUR,GAAQU,MAAMrW,GAAAA,CAAE4G,GAAIzD,KAAK,YAAa2S,KASxD,OAAO/S,MAGF/C,EAAAA,IA4FX,SAASwT,EAAakC,GACpB,QAAuC,IAA5BY,SAASN,UAAUzC,KAKzB,YAA4B,IAAjBmC,EAAGM,UACVN,EAGAA,EAAGM,WAHAnC,YAAYN,KAJlBgD,EADgB,yBACUC,KAAMd,EAAIe,YACxC,OAAQF,GAA4B,EAAjBA,EAAQ1T,OAAc0T,EAAQ,GAAGpB,OAAS,GAiBjE,SAASzB,EAAU0B,GACjB,OAAOA,EAAIsB,QAAQ,kBAAmB,SAAS5C,cA9GjDhU,EAAW6W,KAAO,CAQhBC,SAAU,SAAUC,EAAMC,GACxB,IAAIC,EAAQ,KAEZ,OAAO,WACL,IAAIC,EAAUjU,KAAM+S,EAAOlT,UAEb,OAAVmU,IACFA,EAAQE,WAAW,WACjBJ,EAAKR,MAAMW,EAASlB,GACpBiB,EAAQ,MACPD,OAMXzZ,OAAOyC,WAAaA,EAGpB,WACOoX,KAAKC,KAAQ9Z,OAAO6Z,KAAKC,MAC5B9Z,OAAO6Z,KAAKC,IAAMD,KAAKC,IAAM,WAAa,OAAO,IAAID,MAAOE,YAG9D,IADA,IASMC,EATFC,EAAU,CAAC,SAAU,OAChBna,EAAI,EAAGA,EAAIma,EAAQzU,SAAWxF,OAAOka,wBAAyBpa,EAAG,CACtE,IAAIqa,EAAKF,EAAQna,GACjBE,OAAOka,sBAAwBla,OAAOma,EAAG,yBACzCna,OAAOoa,qBAAwBpa,OAAOma,EAAG,yBACXna,OAAOma,EAAG,gCAExC,uBAAuB7M,KAAKtN,OAAOqa,UAAUC,YAC3Cta,OAAOka,uBAA0Bla,OAAOoa,uBACxCJ,EAAW,EACfha,OAAOka,sBAAwB,SAASK,GACpC,IAAIT,EAAMD,KAAKC,MACXU,EAAWzF,KAAKC,IAAIgF,EAAW,GAAIF,GACvC,OAAOF,WAAW,WAAaW,EAASP,EAAWQ,IACjCA,EAAWV,IAEjC9Z,OAAOoa,qBAAuBK,cAK5Bza,OAAO0a,aAAgB1a,OAAO0a,YAAYZ,MAC5C9Z,OAAO0a,YAAc,CACnBC,MAAOd,KAAKC,MACZA,IAAK,WAAY,OAAOD,KAAKC,MAAQpU,KAAKiV,SA5BhD,GAgCK1B,SAASN,UAAUiC,OAEtB3B,SAASN,UAAUiC,KAAO,SAASC,GACjC,GAAoB,mBAATnV,KAGT,MAAM,IAAI8S,UAAU,wEAMR,SAAVsC,IACE,OAAOC,EAAQ/B,MAAMtT,gBAAgBsV,EAC5BtV,KACAmV,EACFI,EAAMnS,OAAO4P,MAAMC,UAAUC,MAAMC,KAAKtT,aAPrD,IAAI0V,EAAUvC,MAAMC,UAAUC,MAAMC,KAAKtT,UAAW,GAChDwV,EAAUrV,KACVsV,EAAU,aAcd,OANItV,KAAKiT,YAEPqC,EAAKrC,UAAYjT,KAAKiT,WAExBmC,EAAOnC,UAAY,IAAIqC,EAEhBF,K,6TC5SL1V,E,WAEJ,SAAAA,EAAYC,EAASC,I,4FAAS4V,CAAAxV,KAAAN,GAC5BM,KAAKyV,OAAO9V,EAASC,GACjBiR,EAAa6E,EAAc1V,MAC/BA,KAAKgR,KAAO5T,OAAAA,EAAAA,YAAAA,CAAY,EAAGyT,GAEvB7Q,KAAKC,SAASqC,KAAd,QAAAc,OAA2ByN,KAAgB7Q,KAAKC,SAASqC,KAAd,QAAAc,OAA2ByN,GAAc7Q,KAAKgR,MACzFhR,KAAKC,SAASG,KAAK,aAAcJ,KAAKC,SAASG,KAAK,WAAYJ,MAKpEA,KAAKC,SAAS4G,QAAd,WAAAzD,OAAiCyN,I,8CAGnC,WACE7Q,KAAK2V,WACL,IAOQ5N,EAPJ8I,EAAa6E,EAAc1V,MAO/B,IAAQ+H,KANR/H,KAAKC,SAASkR,WAAd,QAAA/N,OAAiCyN,IAAcO,WAAW,YAKrDvK,QALL,gBAAAzD,OAK6ByN,IACb7Q,KACVA,KAAK2H,eAAeI,KACtB/H,KAAK+H,GAAQ,W,gCAYrB,SAAS2N,EAAcE,GACrB,OAAiBA,EAAIrV,UAJVoT,QAAQ,kBAAmB,SAAS5C,gB,6DCzCjDvW,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,MAAA,WAAA,OAAAwC,IAAA1C,EAAAO,EAAAL,EAAA,cAAA,WAAA,OAAA0C,IAAA5C,EAAAO,EAAAL,EAAA,eAAA,WAAA,OAAA4C,IAAA9C,EAAAO,EAAAL,EAAA,gBAAA,WAAA,OAAA2C,IAAA7C,EAAAO,EAAAL,EAAA,SAAA,WAAA,OAAA6C,IAAA/C,EAAAO,EAAAL,EAAA,uBAAA,WAAA,OAAAmb,IAAA,IAAAlb,EAAAH,EAAA,UAAAI,EAAAJ,EAAAK,EAAAF,GAOA,SAASuC,IACP,MAAiC,QAA1BD,GAAAA,CAAE,QAAQqF,KAAK,OAWxB,SAASlF,IAIP,IAJyC,IAAtB0C,EAAsB,EAAAD,UAAAC,aAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAb,EAAGiW,EAAU,EAAAjW,UAAAC,OAAAD,UAAA,QAAAE,EACrCsS,EAAM,GACJ0D,EAAQ,uCACRC,EAAcD,EAAMjW,OACjB1F,EAAI,EAAGA,EAAI0F,EAAQ1F,IAC1BiY,GAAO0D,EAAM1G,KAAK4G,MAAM5G,KAAK6G,SAAWF,IAE1C,OAAOF,EAAS,GAAA1S,OAAMiP,EAAN,KAAAjP,OAAa0S,GAAczD,EAW7C,SAAS/U,EAAa+U,GACpB,OAAOA,EAAIsB,QAAQ,2BAA4B,QAGjD,SAAStW,EAAcgK,GACrB,IAOItC,EAEKoR,EATLC,EAAc,CAChBD,WAAc,gBACdE,iBAAoB,sBACpBC,cAAiB,gBACjBC,YAAe,kBAEbnP,EAAOoP,SAASC,cAAc,OAGlC,IAASN,KAAcC,OACiB,IAA3BhP,EAAKsP,MAAMP,KACpBpR,EAAMqR,EAAYD,IAGtB,OAAIpR,IAGFmP,WAAW,WACT7M,EAAMsP,eAAe,gBAAiB,CAACtP,KACtC,GACI,iBAgBX,SAAS9J,EAAO8J,EAAOuP,GAGV,SAALC,IAAK,OAAMxP,EAAMsP,eAAeG,GAFtC,IAAMC,EAAkC,aAAxBP,SAASQ,WACnBF,GAAaC,EAAU,WAAa,QAAU,kBAYpD,OATI1P,IACEuP,GAASvP,EAAM4P,IAAIH,EAAWF,GAE9BG,EACF7C,WAAW2C,GAEX5Z,GAAAA,CAAE3C,QAAQ2c,IAAI,OAAQJ,IAGnBC,EAqBT,SAASjB,EAAqBe,GAAqE,IAAAM,EAAA,EAAArX,UAAAC,aAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAJ,GAAIsX,EAAAD,EAA1DE,kBAAAA,OAA0D,IAAAD,GAAAA,EAAAE,EAAAH,EAA/BI,eAAAA,OAA+B,IAAAD,GAAAA,EACjG,OAAO,SAA2BE,GAAiB,IAAA,IAAAC,EAAA3X,UAAAC,OAAN2X,EAAM,IAAAzE,MAAA,EAAAwE,EAAAA,EAAA,EAAA,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,EAAA,GAAA7X,UAAA6X,GACjD,IAAM7C,EAAW+B,EAAQ1B,KAAR5B,MAAAsD,EAAO,CAAM5W,KAAMuX,GAAZnU,OAAuBqU,IAG/C,GAA6B,OAAzBF,EAAOI,cACT,OAAO9C,IAMTX,WAAW,WACT,OAAKkD,IAAqBZ,SAASoB,UAAapB,SAASoB,gBAKpDN,GACHra,GAAAA,CAAEuZ,UAAUS,IAAI,aAAc,SAA6BY,GACpD5a,GAAAA,CAAEsa,EAAOO,eAAeC,IAAIF,EAAS/V,QAAQhC,SAEhDyX,EAAOI,cAAgBE,EAAS/V,OAChC+S,QATGA,KAcR,M,umDC9HDrW,E,iPAAkBkB,EAAAA,W,qMAQtB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAI1B,EAAU2B,SAAUH,KAAKC,SAASG,OAAQR,GACtEI,KAAKO,UAAY,YAEjBP,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,YAAa,CAC7BC,MAAS,OACTC,MAAS,OACToE,YAAe,OACflE,SAAY,KACZD,WAAc,OACdoE,WAAc,WACdC,OAAU,Y,mBAQd,WACElQ,EAAAA,KAAKmQ,QAAQjO,KAAKC,SAAU,aAEzBD,KAAKJ,QAAQoY,gBACdhY,KAAKC,SAASiE,SAAS,aAGzBlE,KAAKC,SAASqC,KAAK,CACjB4L,wBAAwB,IAE1BlO,KAAKiY,gBAAkBjY,KAAKC,SAASU,KAAK,kCAAkCsJ,SAAS,KACrFjK,KAAKgQ,UAAYhQ,KAAKiY,gBAAgB/U,OAAO,MAAM+G,SAAS,kBAAkB3H,KAAK,OAAQ,SAC3FtC,KAAKkY,WAAalY,KAAKC,SAASU,KAAK,MAAMC,IAAI,sBAAsBD,KAAK,KAI1EX,KAAKmY,aAAenY,KAAKC,SAEzBD,KAAKC,SAASqC,KAAK,cAAgBtC,KAAKC,SAASqC,KAAK,mBAAqBlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,cAE1F4C,KAAKoY,eACLpY,KAAKqY,kBAELrY,KAAKsY,oB,0BAUP,WACE,IAAI/R,EAAQvG,KAIZA,KAAKiY,gBAAgBjX,KAAK,WACxB,IAAImK,EAAQlO,GAAAA,CAAE+C,MACVqO,EAAOlD,EAAMjI,SACdqD,EAAM3G,QAAQ4O,YACfrD,EAAMsD,QAAQC,UAAUL,EAAKpE,SAAS,mBAAmB0E,KAAK,sHAEhExD,EAAM/K,KAAK,YAAa+K,EAAM7I,KAAK,SAAS6O,WAAW,QAAQ7O,KAAK,WAAY,GAChF6I,EAAMlB,SAAS,kBACV3H,KAAK,CACJmI,eAAe,EACf8N,SAAY,EACZhO,KAAQ,UAEdhE,EAAMlF,QAAQ8J,KAEhBnL,KAAKgQ,UAAUhP,KAAK,WAClB,IAAIwX,EAAQvb,GAAAA,CAAE+C,MAEd,IADYwY,EAAM7X,KAAK,sBACbb,OACR,OAAQyG,EAAM3G,QAAQ6Y,oBACpB,IAAK,SACHD,EAAME,OAAOnS,EAAM3G,QAAQ+Y,YAC3B,MACF,IAAK,MACHH,EAAMI,QAAQrS,EAAM3G,QAAQ+Y,YAC5B,MACF,QACElM,QAAQtL,MAAM,yCAA2CoF,EAAM3G,QAAQ6Y,mBAAqB,KAGlGlS,EAAMsS,MAAML,KAGdxY,KAAKgQ,UAAU9L,SAAS,aACpBlE,KAAKJ,QAAQkZ,YACf9Y,KAAKgQ,UAAU9L,SAAS,oCAItBlE,KAAKC,SAASiD,SAASkI,SAAS,kBAClCpL,KAAK+Y,SAAW9b,GAAAA,CAAE+C,KAAKJ,QAAQoZ,SAAS9U,SAAS,gBAC9ClE,KAAKJ,QAAQqZ,eAAejZ,KAAK+Y,SAAS7U,SAAS,kBACtDlE,KAAKC,SAAS0O,KAAK3O,KAAK+Y,WAG1B/Y,KAAK+Y,SAAW/Y,KAAKC,SAASiD,SAC9BlD,KAAK+Y,SAASzR,IAAItH,KAAKkZ,iB,qBAGzB,WACElZ,KAAK+Y,SAASzR,IAAI,CAAC6R,YAAa,OAAQC,aAAc,SAEtDpZ,KAAK+Y,SAASzR,IAAItH,KAAKkZ,iB,qBASzB,SAAQ7R,GACN,IAAId,EAAQvG,KAEZqH,EAAM9F,IAAI,sBACTC,GAAG,qBAAsB,SAASG,GAUjC,IACM0X,EAVHpc,GAAAA,CAAE0E,EAAEG,QAAQiO,aAAa,KAAM,MAAM3E,SAAS,gCAC/CzJ,EAAEE,iBAMJ0E,EAAM+S,MAAMjS,EAAMnE,OAAO,OAEtBqD,EAAM3G,QAAQ2Z,eACXF,EAAQpc,GAAAA,CAAE,SACRsE,IAAI,iBAAiBC,GAAG,qBAAsB,SAASgY,GACvDA,EAAG1X,SAAWyE,EAAMtG,SAAS,IAAMhD,EAAAA,EAAEwc,SAASlT,EAAMtG,SAAS,GAAIuZ,EAAG1X,UACxE0X,EAAG3X,iBACH0E,EAAMmT,WACNL,EAAM9X,IAAI,wB,6BAWlB,WACKvB,KAAKJ,QAAQ6L,YACdzL,KAAK2Z,aAAe3Z,KAAK4Z,WAAW1E,KAAKlV,MACzCA,KAAKC,SAASuB,GAAG,6EAA6ExB,KAAK2Z,eAErG3Z,KAAKC,SAASuB,GAAG,sBAAuBxB,KAAK6Z,QAAQ3E,KAAKlV,S,wBAQ5D,WACE,IAAIuG,EAAQvG,KACR8Z,EAAuD,KAAnCvT,EAAM3G,QAAQma,iBAAwB9c,GAAAA,CAAEsJ,EAAM3G,QAAQma,kBAAkBxT,EAAMtG,SAClG+Z,EAAY9R,SAAS4R,EAAkBvO,SAASG,IAAInF,EAAM3G,QAAQqa,gBAAiB,IACvFhd,GAAAA,CAAE,cAAc4Q,MAAK,GAAMrC,QAAQ,CAAEC,UAAWuO,GAAazT,EAAM3G,QAAQsa,kBAAmB3T,EAAM3G,QAAQua,gBAAgB,WAKvHna,OAAO/C,GAAAA,CAAE,QAAQ,IAAGsJ,EAAMtG,SAAS4G,QAAQ,6B,6BAQlD,WACE,IAAIN,EAAQvG,KAEZA,KAAKkY,WAAW/U,IAAInD,KAAKC,SAASU,KAAK,wDAAwDa,GAAG,uBAAwB,SAASG,GACjI,IAEIsN,EACAC,EAHAjP,EAAWhD,GAAAA,CAAE+C,MACbmP,EAAYlP,EAASiD,OAAO,MAAMA,OAAO,MAAM+G,SAAS,MAAMA,SAAS,KAI3EkF,EAAUnO,KAAK,SAAS5G,GAClB6C,GAAAA,CAAE+C,MAAM+F,GAAG9F,KACbgP,EAAeE,EAAUC,GAAGC,KAAKC,IAAI,EAAGlV,EAAE,IAC1C8U,EAAeC,EAAUC,GAAGC,KAAKE,IAAInV,EAAE,EAAG+U,EAAUrP,OAAO,OAK/DpC,EAAAA,SAASsO,UAAUrK,EAAG,YAAa,CACjCsK,KAAM,WACJ,GAAIhM,EAAS8F,GAAGQ,EAAM0R,iBAKpB,OAJA1R,EAAM+S,MAAMrZ,EAASiD,OAAO,OAC5BjD,EAASiD,OAAO,MAAM+T,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc4C,GAAW,WACjDA,EAASiD,OAAO,MAAMvC,KAAK,WAAWC,IAAI,wBAAwBiE,QAAQsH,WAErE,GAGXE,SAAU,WAOR,OANA9F,EAAM6T,MAAMna,EAASiD,OAAO,MAAMA,OAAO,OACzCjD,EAASiD,OAAO,MAAMA,OAAO,MAAM+T,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc4C,GAAW,WAC9DiU,WAAW,WACTjU,EAASiD,OAAO,MAAMA,OAAO,MAAMA,OAAO,MAAM+G,SAAS,KAAKpF,QAAQsH,SACrE,MAEE,GAETQ,GAAI,WAGF,OAFAsC,EAAa9C,SAELlM,EAAS8F,GAAGQ,EAAMtG,SAASU,KAAK,0BAE1CiM,KAAM,WAGJ,OAFAsC,EAAa/C,SAELlM,EAAS8F,GAAGQ,EAAMtG,SAASU,KAAK,yBAE1C+O,MAAO,WAEAzP,EAAS8F,GAAGQ,EAAMtG,SAASU,KAAK,eACnC4F,EAAM6T,MAAMna,EAASiD,SAASA,UAC9BjD,EAASiD,SAASA,SAASF,SAAS,KAAKmJ,UAG7CsD,KAAM,WACJ,QAAIlJ,EAAM3G,QAAQ4O,aAAcvO,EAASqC,KAAK,WAElCrC,EAAS8F,GAAGQ,EAAM2R,YAQnBjY,EAAS8F,GAAGQ,EAAM0R,kBAC3B1R,EAAM+S,MAAMrZ,EAASiD,OAAO,OAC5BjD,EAASiD,OAAO,MAAM+T,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc4C,GAAW,WACjDA,EAASiD,OAAO,MAAMvC,KAAK,WAAWC,IAAI,wBAAwBiE,QAAQsH,WAErE,QALF,GAPL5F,EAAM6T,MAAMna,EAASiD,OAAO,MAAMA,OAAO,OACzCjD,EAASiD,OAAO,MAAMA,OAAO,MAAM+T,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc4C,GAAW,WAC9DiU,WAAW,WACTjU,EAASiD,OAAO,MAAMA,OAAO,MAAMA,OAAO,MAAM+G,SAAS,KAAKpF,QAAQsH,SACrE,MAEE,KASXI,QAAS,SAAS1K,GACZA,GACFF,EAAEE,wB,sBAaZ,WAAW,IAKDwY,EALC7Z,EAAAR,KACLqH,EAAQrH,KAAKC,SAASU,KAAK,mCAC/B0G,EAAMnD,SAAS,cAEXlE,KAAKJ,QAAQkZ,aACTuB,EAAahT,EAAMnE,SAASM,QAAQ,MAAMpD,KAAK,cACrDJ,KAAK+Y,SAASzR,IAAI,CAAEgT,OAAQD,KAO9Bra,KAAKC,SAAS4G,QAAQ,sBAEtBQ,EAAM4P,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAcgK,GAAQ,WAC9BA,EAAMjC,YAAY,wBAMlB5E,EAAKP,SAAS4G,QAAQ,2B,mBAU1B,SAAMQ,GACJ,IAAId,EAAQvG,KACZqH,EAAM9F,IAAI,sBACV8F,EAAM4C,SAAS,sBACZzI,GAAG,qBAAsB,WACxB+E,EAAM6T,MAAM/S,GAGZ,IAAIkT,EAAgBlT,EAAMnE,OAAO,MAAMA,OAAO,MAAMA,OAAO,MACvDqX,EAAcza,OAChByG,EAAM+S,MAAMiB,GAGZhU,EAAM4R,aAAe5R,EAAMtG,a,6BAUnC,WACE,IAAIsG,EAAQvG,KACZA,KAAKkY,WAAWtX,IAAI,gCACfW,IAAI,sBACJC,GAAG,qBAAsB,WACxB0S,WAAW,WACT3N,EAAMmT,YACL,O,oCAWX,SAAuBrS,EAAOR,GAC5BQ,EAAMnD,SAAS,aAAakB,YAAY,aAAa9C,KAAK,eAAe,GACzE+E,EAAMnE,OAAO,MAAMZ,KAAK,iBAAiB,IACzB,IAAZuE,GACF7G,KAAKC,SAAS4G,QAAQ,oBAAqB,CAACQ,M,oCAWhD,SAAuBA,EAAOR,GAC5BQ,EAAMjC,YAAY,aAAalB,SAAS,aAAa5B,KAAK,eAAe,GACzE+E,EAAMnE,OAAO,MAAMZ,KAAK,iBAAiB,IACzB,IAAZuE,GACFQ,EAAMR,QAAQ,oBAAqB,CAACQ,M,uBAYxC,SAAUA,EAAOmT,GAEf,IAAIjU,EAAQvG,KAYZ,GATwBA,KAAKC,SAASU,KAAK,+CACzBK,KAAK,WACrBuF,EAAMkU,uBAAuBxd,GAAAA,CAAE+C,UAIjCA,KAAKmY,aAAe9Q,GAGVtB,GAAG,oBAGX,OAFkB,IAAdyU,GAAoBnT,EAAM1G,KAAK,UAAUkE,QAAQsH,aACjDnM,KAAKJ,QAAQkZ,YAAY9Y,KAAK+Y,SAASzR,IAAI,SAAUD,EAAMjH,KAAK,gBAKtE,IAAI4P,EAAY3I,EAAM4C,WAAWpF,QAAQkL,aAAa,mBAAoB,kBAG1EC,EAAUhP,KAAK,SAAS0Z,GAGR,IAAVA,GAAenU,EAAM3G,QAAQkZ,YAC/BvS,EAAMwS,SAASzR,IAAI,SAAUrK,GAAAA,CAAE+C,MAAMI,KAAK,eAGxCua,EAAcD,IAAU1K,EAAUlQ,OAAS,GAI3B,GAAhB6a,GACF1d,GAAAA,CAAE+C,MAAMiX,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAcJ,GAAAA,CAAE+C,OAAQ,YAChB,IAAdwa,GACFnT,EAAM1G,KAAK,UAAUkE,QAAQsH,UAKnC5F,EAAMqU,uBAAuB3d,GAAAA,CAAE+C,MAAO2a,O,mBAU1C,SAAMtT,GACJ,IAAM2H,EAAW3H,EAAM4C,SAAS,kBAEhC5C,EAAM/E,KAAK,iBAAiB,GAE5BtC,KAAKmY,aAAenJ,EAIpB3H,EAAMnE,SAASM,QAAQ,MAAMU,SAAS,aAGtC8K,EAAS9K,SAAS,qBAAqBkB,YAAY,aAAa9C,KAAK,eAAe,GAEhFtC,KAAKJ,QAAQkZ,YACf9Y,KAAK+Y,SAASzR,IAAI,CAAEgT,OAAQtL,EAAS5O,KAAK,gBAO5CJ,KAAKC,SAAS4G,QAAQ,oBAAqB,CAACQ,M,mBAS9C,SAAMA,GACDrH,KAAKJ,QAAQkZ,YAAY9Y,KAAK+Y,SAASzR,IAAI,CAACgT,OAAOjT,EAAMnE,SAASM,QAAQ,MAAMpD,KAAK,gBACxFiH,EAAMnE,SAASM,QAAQ,MAAM4B,YAAY,aACzCiC,EAAMnE,OAAO,MAAMZ,KAAK,iBAAiB,GACzC+E,EAAM/E,KAAK,eAAe,GAC1B+E,EAAMnD,SAAS,cACT+S,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAcgK,GAAQ,WACzBA,EAAMjC,YAAY,gCAClBiC,EAAMwT,OAAO3W,SAAS,eAM7BmD,EAAMR,QAAQ,oBAAqB,CAACQ,M,yBAStC,WACE,IAAIyT,EAAY,EAAGC,EAAS,GAAIxU,EAAQvG,KAoBxC,OAjBAA,KAAKgQ,UAAU7M,IAAInD,KAAKC,UAAUe,KAAK,WACrC,IAAIsZ,EAAS9c,EAAAA,IAAIwd,cAAchb,MAAMsa,OAErCQ,EAAqBA,EAATR,EAAqBA,EAASQ,EAEvCvU,EAAM3G,QAAQkZ,YACf7b,GAAAA,CAAE+C,MAAMI,KAAK,aAAaka,KAI1Bta,KAAKJ,QAAQkZ,WACfiC,EAAOT,OAASta,KAAKmY,aAAa/X,KAAK,cAEvC2a,EAAO,cAAP,GAAA3X,OAA0B0X,EAA1B,MAEFC,EAAO,aAAP,GAAA3X,OAAyBpD,KAAKC,SAAS,GAAGgb,wBAAwBC,MAAlE,MAEOH,I,sBAOT,WACE9d,GAAAA,CAAE,QAAQsE,IAAI,iBACXvB,KAAKJ,QAAQ6L,WAAWzL,KAAKC,SAASsB,IAAI,gBAAgBvB,KAAK2Z,cAClE3Z,KAAK0Z,WACN1Z,KAAKC,SAASsB,IAAI,uBACjBzD,EAAAA,KAAKsS,KAAKpQ,KAAKC,SAAU,aACzBD,KAAKC,SAASkb,SACAxa,KAAK,+CAA+CwP,SACpDpL,MAAMpE,KAAK,kDAAkDyE,YAAY,6CAA6C7D,IAAI,oDAC1HwD,MAAMpE,KAAK,kBAAkBwQ,WAAW,6BACtDnR,KAAKiY,gBAAgBjX,KAAK,WACxB/D,GAAAA,CAAE+C,MAAMuB,IAAI,mBAGdvB,KAAKC,SAASU,KAAK,yBAAyBuP,SAC5ClQ,KAAKgQ,UAAU5K,YAAY,8CAE3BpF,KAAKC,SAASU,KAAK,KAAKK,KAAK,WAC3B,IAAImK,EAAQlO,GAAAA,CAAE+C,MACdmL,EAAMgG,WAAW,YACdhG,EAAM/K,KAAK,cACZ+K,EAAM7I,KAAK,OAAQ6I,EAAM/K,KAAK,cAAcgR,WAAW,oB,gCAM/D5S,EAAU2B,SAAW,CAQnB6X,gBAAgB,EAOhBW,WAAY,8DAOZF,mBAAoB,MAOpBO,QAAS,cAOTxK,YAAY,EAOZ+K,cAAc,EAOdT,YAAY,EAOZG,eAAe,EAOfxN,WAAW,EAOXsO,iBAAkB,GAOlBE,gBAAiB,EAOjBC,kBAAmB,IAQnBC,gBAAiB,U,24DC3nBb1b,E,iPAAiB2c,EAAAA,iB,qMASrB,SAAOzb,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIzB,EAAS0B,SAAUH,KAAKC,SAASG,OAAQR,GACrEI,KAAKO,UAAY,WAGjBvC,EAAAA,MAAMC,KAAKhB,EAAAA,GACXiB,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,WAAY,CAC5BC,MAAS,SACTC,MAAS,SACTsE,OAAU,Y,mBASd,WACE,IAAIqN,EAAMrb,KAAKC,SAASqC,KAAK,MAE7BtC,KAAKsb,SAAWre,GAAAA,CAAC,iBAAAmG,OAAkBiY,EAAlB,OAA2Bvb,OAAS7C,GAAAA,CAAC,iBAAAmG,OAAkBiY,EAAlB,OAA6Bpe,GAAAA,CAAC,eAAAmG,OAAgBiY,EAAhB,OACpFrb,KAAKsb,SAAShZ,KAAK,CACjB+H,gBAAiBgR,EACjBE,iBAAiB,EACjBC,gBAAiBH,EACjBI,iBAAiB,EACjBnR,iBAAiB,IAGnBtK,KAAK0b,kBAAkB1b,KAAKsb,SAASzW,SAElC7E,KAAKJ,QAAQ+b,YACd3b,KAAK4b,QAAU5b,KAAKC,SAASuP,QAAQ,IAAMxP,KAAKJ,QAAQ+b,aAExD3b,KAAK4b,QAAU,UAIoC,IAA1C5b,KAAKC,SAASqC,KAAK,0BAEkB,IAAnCtC,KAAK6b,eAAevZ,KAAK,OAClCtC,KAAK6b,eAAevZ,KAAK,KAAMlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,cAGhD4C,KAAKC,SAASqC,KAAK,kBAAmBtC,KAAK6b,eAAevZ,KAAK,QAGjEtC,KAAKC,SAASqC,KAAK,CACjBmI,cAAe,OACf+Q,gBAAiBH,EACjBS,cAAeT,IAGjBU,EAAAC,EAAAvd,EAAAwU,WAAA,QAAAjT,MAAAmT,KAAAnT,MACAA,KAAKqB,Y,iCAGP,WAEE,IAAI4a,EAAWjc,KAAKC,SAAS,GAAGM,UAAU2b,MAAM,4BAChD,OAAGD,EACMA,EAAS,GAET,W,kCAIX,WAEE,IAAIE,EAAqB,cAAc1I,KAAKzT,KAAK6b,eAAevZ,KAAK,UACrE,OAAG6Z,EACMA,EAAmB,GAG5BJ,EAAAC,EAAAvd,EAAAwU,WAAA,uBAAAjT,MAAAmT,KAAAnT,Q,0BAWF,WACEA,KAAKC,SAASmF,YAAd,gBAAAhC,OAA0CpD,KAAKic,SAA/C,mBAAA7Y,OAAyEpD,KAAKoc,YAC9EL,EAAAC,EAAAvd,EAAAwU,WAAA,eAAAjT,MAAAmT,KAAAnT,KAAmBA,KAAK6b,eAAgB7b,KAAKC,SAAUD,KAAK4b,SAC5D5b,KAAKC,SAASiE,SAAd,gBAAAd,OAAuCpD,KAAKic,SAA5C,mBAAA7Y,OAAsEpD,KAAKoc,c,+BAU7E,SAAkBvY,GAChB7D,KAAK6b,eAAiB5e,GAAAA,CAAE4G,K,qBAQ1B,WACE,IAAI0C,EAAQvG,KACRqc,EAAW,iBAAkB/hB,aAA0C,IAAxBA,OAAOgiB,aAE1Dtc,KAAKC,SAASuB,GAAG,CACf+a,kBAAmBvc,KAAKyP,KAAKyF,KAAKlV,MAClCwc,mBAAoBxc,KAAK0P,MAAMwF,KAAKlV,MACpCyc,oBAAqBzc,KAAK+L,OAAOmJ,KAAKlV,MACtC0c,sBAAuB1c,KAAK2c,aAAazH,KAAKlV,QAGhDA,KAAKsb,SAAS/Z,IAAI,oBACfC,GAAG,mBAAoB,SAASG,GAC/B4E,EAAMmV,kBAAkB1b,QAIS,IAA9BuG,EAAM3G,QAAQgd,aAGdP,GAAY9V,EAAM3G,QAAQid,QAAgD,IAAvCtW,EAAMtG,SAASmL,SAAS,aAE5DzJ,EAAEE,mBAIL7B,KAAKJ,QAAQid,QACd7c,KAAKsb,SAAS/Z,IAAI,iDACjBC,GAAG,yBAA0B,WAC5B+E,EAAMmV,kBAAkB1b,MAExB,IAAI8c,EAAW7f,GAAAA,CAAE,QAAQmD,YACS,IAAxB0c,EAASC,WAAqD,UAAvBD,EAASC,YACxDhI,aAAaxO,EAAMyW,SACnBzW,EAAMyW,QAAU9I,WAAW,WACzB3N,EAAMkJ,OACNlJ,EAAM+U,SAASlb,KAAK,SAAS,IAC5BmG,EAAM3G,QAAQqd,eAElBzb,GAAG,yBAA0BqU,OAAAA,EAAAA,qBAAAA,CAAqB,WACnDd,aAAaxO,EAAMyW,SACnBzW,EAAMyW,QAAU9I,WAAW,WACzB3N,EAAMmJ,QACNnJ,EAAM+U,SAASlb,KAAK,SAAS,IAC5BmG,EAAM3G,QAAQqd,eAEhBjd,KAAKJ,QAAQsd,WACdld,KAAKC,SAASsB,IAAI,iDACbC,GAAG,yBAA0B,WAC5BuT,aAAaxO,EAAMyW,WAClBxb,GAAG,yBAA0BqU,OAAAA,EAAAA,qBAAAA,CAAqB,WACnDd,aAAaxO,EAAMyW,SACnBzW,EAAMyW,QAAU9I,WAAW,WACzB3N,EAAMmJ,QACNnJ,EAAM+U,SAASlb,KAAK,SAAS,IAC5BmG,EAAM3G,QAAQqd,gBAI3Bjd,KAAKsb,SAASnY,IAAInD,KAAKC,UAAUuB,GAAG,sBAAuB,SAASG,GAElE,IAAI6K,EAAUvP,GAAAA,CAAE+C,MAEhBtC,EAAAA,SAASsO,UAAUrK,EAAG,WAAY,CAChC8N,KAAM,WACAjD,EAAQzG,GAAGQ,EAAM+U,YAAc9O,EAAQzG,GAAG,qBAC5CQ,EAAMkJ,OACNlJ,EAAMtG,SAASqC,KAAK,YAAa,GAAG6J,QACpCxK,EAAEE,mBAGN6N,MAAO,WACLnJ,EAAMmJ,QACNnJ,EAAM+U,SAASnP,e,6BAWvB,WACG,IAAIkN,EAAQpc,GAAAA,CAAEuZ,SAAS2G,MAAMvc,IAAIZ,KAAKC,UAClCsG,EAAQvG,KACZqZ,EAAM9X,IAAI,qCACJC,GAAG,oCAAqC,SAAUG,GAC9C4E,EAAM+U,SAASvV,GAAGpE,EAAEG,SAAWyE,EAAM+U,SAAS3a,KAAKgB,EAAEG,QAAQhC,QAG7DyG,EAAMtG,SAAS8F,GAAGpE,EAAEG,SAAWyE,EAAMtG,SAASU,KAAKgB,EAAEG,QAAQhC,SAGhEyG,EAAMmJ,QACN2J,EAAM9X,IAAI,0C,kBAUpB,WAgBE,IACM6b,EAXNpd,KAAKC,SAAS4G,QAAQ,sBAAuB7G,KAAKC,SAASqC,KAAK,OAChEtC,KAAKsb,SAASpX,SAAS,SAClB5B,KAAK,CAACgI,iBAAiB,IAG5BtK,KAAKC,SAASiE,SAAS,cACvBlE,KAAK2c,eACL3c,KAAKC,SAASmF,YAAY,cAAclB,SAAS,WAC5C5B,KAAK,CAACmI,eAAe,KAEvBzK,KAAKJ,QAAQ4a,YACV4C,EAAa1f,EAAAA,SAAS2f,cAAcrd,KAAKC,WAC/BH,QACZsd,EAAWhO,GAAG,GAAGjD,QAIlBnM,KAAKJ,QAAQ2Z,cAAevZ,KAAKsd,kBAEhCtd,KAAKJ,QAAQ2d,WACf7f,EAAAA,SAAS6f,UAAUvd,KAAKC,UAO1BD,KAAKC,SAAS4G,QAAQ,mBAAoB,CAAC7G,KAAKC,a,mBAQlD,WACE,IAAID,KAAKC,SAASmL,SAAS,WACzB,OAAO,EAETpL,KAAKC,SAASmF,YAAY,WACrB9C,KAAK,CAACmI,eAAe,IAE1BzK,KAAKsb,SAASlW,YAAY,SACrB9C,KAAK,iBAAiB,GAM3BtC,KAAKC,SAAS4G,QAAQ,mBAAoB,CAAC7G,KAAKC,WAE5CD,KAAKJ,QAAQ2d,WACf7f,EAAAA,SAAS8f,aAAaxd,KAAKC,Y,oBAQ/B,WACKD,KAAKC,SAASmL,SAAS,WACrBpL,KAAKsb,SAASlb,KAAK,UACtBJ,KAAK0P,QAEL1P,KAAKyP,S,sBAQT,WACEzP,KAAKC,SAASsB,IAAI,eAAekc,OACjCzd,KAAKsb,SAAS/Z,IAAI,gBAClBtE,GAAAA,CAAEuZ,SAAS2G,MAAM5b,IAAI,0C,gCAKzB9C,EAAS0B,SAAW,CAOlBwb,YAAa,KAObsB,WAAY,IAOZJ,OAAO,EAOPK,WAAW,EAOXQ,QAAS,EAOTC,QAAS,EAOT1B,SAAU,OAOVG,UAAW,OAOXwB,cAAc,EASdC,oBAAoB,EAOpBN,WAAW,EAOX/C,WAAW,EAOXjB,cAAc,EAOdqD,aAAa,I,kpDC7ZTle,E,iPAAqBgB,EAAAA,W,qMASzB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIxB,EAAayB,SAAUH,KAAKC,SAASG,OAAQR,GACzEI,KAAKO,UAAY,eAEjBvC,EAAAA,MAAMC,KAAKhB,EAAAA,GAEX+C,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,eAAgB,CAChCC,MAAS,OACTC,MAAS,OACToE,YAAe,OACflE,SAAY,KACZD,WAAc,OACdoE,WAAc,WACdC,OAAU,Y,mBASd,WACElQ,EAAAA,KAAKmQ,QAAQjO,KAAKC,SAAU,YAE5B,IAAI6d,EAAO9d,KAAKC,SAASU,KAAK,iCAC9BX,KAAKC,SAASgK,SAAS,+BAA+BA,SAAS,wBAAwB/F,SAAS,aAEhGlE,KAAKkY,WAAalY,KAAKC,SAASU,KAAK,mBACrCX,KAAKgK,MAAQhK,KAAKC,SAASgK,SAAS,mBACpCjK,KAAKgK,MAAMrJ,KAAK,0BAA0BuD,SAASlE,KAAKJ,QAAQme,eAEjC,SAA3B/d,KAAKJ,QAAQwc,UACTpc,KAAKC,SAASmL,SAASpL,KAAKJ,QAAQoe,aAAeC,OAAAA,EAAAA,IAAAA,IAASje,KAAKC,SAASuP,QAAQ,kBAAkBzJ,GAAG,MACvG/F,KAAKJ,QAAQwc,UAAY,QACzB0B,EAAK5Z,SAAS,gBAEdlE,KAAKJ,QAAQwc,UAAY,OACzB0B,EAAK5Z,SAAS,gBAGW,UAA3BlE,KAAKJ,QAAQwc,UACb0B,EAAK5Z,SAAS,cAEd4Z,EAAK5Z,SAAS,eAGpBlE,KAAKke,SAAU,EACfle,KAAKqB,Y,yBAGP,WACE,MAAqC,UAA9BrB,KAAKgK,MAAM1C,IAAI,YAAkE,WAAxCtH,KAAKC,SAASqH,IAAI,oB,oBAGpE,WACE,OAAOtH,KAAKC,SAASmL,SAAS,gBAAmB6S,OAAAA,EAAAA,IAAAA,KAAUje,KAAKC,SAASmL,SAAS,gB,qBAQpF,WACE,IAAI7E,EAAQvG,KACRqc,EAAW,iBAAkB/hB,aAA0C,IAAxBA,OAAOgiB,aACtD6B,EAAW,8BA6BXne,KAAKJ,QAAQwe,WAAa/B,IAC5Brc,KAAKkY,WAAW1W,GAAG,mDA3BD,SAASG,GAC3B,IAAI0F,EAAQpK,GAAAA,CAAE0E,EAAEG,QAAQiO,aAAa,KAAzB,IAAA3M,OAAmC+a,IAC3CE,EAAShX,EAAM+D,SAAS+S,GACxBG,EAA6C,SAAhCjX,EAAM/E,KAAK,iBACxB+L,EAAOhH,EAAM4C,SAAS,wBAEtBoU,IACEC,GACG/X,EAAM3G,QAAQ2Z,eACZhT,EAAM3G,QAAQwe,YAAc/B,GAC7B9V,EAAM3G,QAAQgd,aAAeP,IAGnC1a,EAAE4c,2BACF5c,EAAEE,iBACF0E,EAAM6T,MAAM/S,KAGZ1F,EAAE4c,2BACF5c,EAAEE,iBACF0E,EAAM+S,MAAMjL,GACZhH,EAAMlE,IAAIkE,EAAM0I,aAAaxJ,EAAMtG,SAAzB,IAAAmD,OAAuC+a,KAAa7b,KAAK,iBAAiB,OAUvFiE,EAAM3G,QAAQ4e,oBACfxe,KAAKkY,WAAW1W,GAAG,wBAAyB,WAC9BvE,GAAAA,CAAE+C,MACKoL,SAAS+S,IAE1B5X,EAAM6T,UAKRiC,GAAYrc,KAAKJ,QAAQ6e,sBAAqBze,KAAKJ,QAAQ8e,cAAe,GAEzE1e,KAAKJ,QAAQ8e,cAChB1e,KAAKkY,WAAW1W,GAAG,6BAA8B,WAC/C,IAAI6F,EAAQpK,GAAAA,CAAE+C,MACHqH,EAAM+D,SAAS+S,KAGxBpJ,aAAa1N,EAAMjH,KAAK,WACxBiH,EAAMjH,KAAK,SAAU8T,WAAW,WAC9B3N,EAAM+S,MAAMjS,EAAM4C,SAAS,0BAC1B1D,EAAM3G,QAAQqd,gBAElBzb,GAAG,6BAA8BqU,OAAAA,EAAAA,qBAAAA,CAAqB,WACvD,IAAIxO,EAAQpK,GAAAA,CAAE+C,MAEd,GADaqH,EAAM+D,SAAS+S,IACd5X,EAAM3G,QAAQ+e,UAAW,CACrC,GAAoC,SAAhCtX,EAAM/E,KAAK,kBAA+BiE,EAAM3G,QAAQwe,UAAa,OAAO,EAEhFrJ,aAAa1N,EAAMjH,KAAK,WACxBiH,EAAMjH,KAAK,SAAU8T,WAAW,WAC9B3N,EAAM6T,MAAM/S,IACXd,EAAM3G,QAAQgf,kBAIvB5e,KAAKkY,WAAW1W,GAAG,0BAA2B,SAASG,GACrD,IAGIsN,EACAC,EAJAjP,EAAWhD,GAAAA,CAAE0E,EAAEG,QAAQiO,aAAa,KAAM,iBAC1C8O,GAAuC,EAA/BtY,EAAMyD,MAAM0Q,MAAMza,GAC1BkP,EAAY0P,EAAQtY,EAAMyD,MAAQ/J,EAAS+C,SAAS,MAAMG,IAAIlD,GAIlEkP,EAAUnO,KAAK,SAAS5G,GAClB6C,GAAAA,CAAE+C,MAAM+F,GAAG9F,KACbgP,EAAeE,EAAUC,GAAGhV,EAAE,GAC9B8U,EAAeC,EAAUC,GAAGhV,EAAE,MAKhB,SAAd0kB,IACF5P,EAAajF,SAAS,WAAWkC,QACjCxK,EAAEE,iBACa,SAAdkd,IACD9P,EAAahF,SAAS,WAAWkC,QACjCxK,EAAEE,iBACS,SAAVmd,IACD,IAAI3Q,EAAOpO,EAASgK,SAAS,0BACzBoE,EAAKvO,SACPyG,EAAM+S,MAAMjL,GACZpO,EAASU,KAAK,gBAAgBwL,QAC9BxK,EAAEE,kBAEQ,SAAXod,IAED,IAAIvP,EAAQzP,EAASiD,OAAO,MAAMA,OAAO,MACzCwM,EAAMzF,SAAS,WAAWkC,QAC1B5F,EAAM6T,MAAM1K,GACZ/N,EAAEE,iBAlBJ,IAqBIqd,EAAY,CACdzP,KAAMuP,EACNtP,MAAO,WACLnJ,EAAM6T,MAAM7T,EAAMtG,UAClBsG,EAAM2R,WAAW9I,GAAG,GAAGnF,SAAS,KAAKkC,QACrCxK,EAAEE,mBAIFgd,EACEtY,EAAM4Y,cACJ5Y,EAAM6Y,SACRniB,EAAAA,EAAEiD,OAAOgf,EAAW,CAClBtS,KAAMkS,EACNnS,GAAIoS,EACJ9S,KAAMgT,EACN5S,SAAU2S,IAGZ/hB,EAAAA,EAAEiD,OAAOgf,EAAW,CAClBtS,KAAMkS,EACNnS,GAAIoS,EACJ9S,KAAM+S,EACN3S,SAAU4S,IAIV1Y,EAAM6Y,SACRniB,EAAAA,EAAEiD,OAAOgf,EAAW,CAClBjT,KAAM8S,EACN1S,SAAUyS,EACVlS,KAAMoS,EACNrS,GAAIsS,IAGNhiB,EAAAA,EAAEiD,OAAOgf,EAAW,CAClBjT,KAAM6S,EACNzS,SAAU0S,EACVnS,KAAMoS,EACNrS,GAAIsS,IAKN1Y,EAAM6Y,SACRniB,EAAAA,EAAEiD,OAAOgf,EAAW,CAClBjT,KAAMgT,EACN5S,SAAU2S,EACVpS,KAAMkS,EACNnS,GAAIoS,IAGN9hB,EAAAA,EAAEiD,OAAOgf,EAAW,CAClBjT,KAAM+S,EACN3S,SAAU4S,EACVrS,KAAMkS,EACNnS,GAAIoS,IAIVrhB,EAAAA,SAASsO,UAAUrK,EAAG,eAAgBud,O,6BAU1C,WAAkB,IAAA1e,EAAAR,KACVqZ,EAAQpc,GAAAA,CAAEuZ,SAAS2G,MACzBnd,KAAKqf,qBACLhG,EAAM7X,GAAG,4CAA6C,SAACG,IACpC1E,GAAAA,CAAE0E,EAAEG,QAAQ0B,QAAQhD,EAAKP,UAAUH,SAGpDU,EAAK4Z,QACL5Z,EAAK6e,0B,gCAST,WACEpiB,GAAAA,CAAEuZ,SAAS2G,MAAM5b,IAAI,+C,mBAUvB,SAAM8M,GACJ,IAAInE,EAAMlK,KAAKgK,MAAM0Q,MAAM1a,KAAKgK,MAAMpF,OAAO,SAASxK,EAAGyJ,GACvD,OAAiC,EAA1B5G,GAAAA,CAAE4G,GAAIlD,KAAK0N,GAAMvO,UAEtBwf,EAAQjR,EAAKnL,OAAO,iCAAiCF,SAAS,iCAClEhD,KAAKoa,MAAMkF,EAAOpV,GAClBmE,EAAK/G,IAAI,aAAc,UAAUpD,SAAS,sBACrChB,OAAO,iCAAiCgB,SAAS,aAC1C1G,EAAAA,IAAI+hB,iBAAiBlR,EAAM,MAAM,KAEvCmR,EAAsC,SAA3Bxf,KAAKJ,QAAQwc,UAAuB,SAAW,SAC1DqD,EAAYpR,EAAKnL,OAAO,gCAClBkC,YAAV,QAAAhC,OAA8Boc,IAAYtb,SAA1C,SAAAd,OAA4DpD,KAAKJ,QAAQwc,YACjE5e,EAAAA,IAAI+hB,iBAAiBlR,EAAM,MAAM,IAEvCoR,EAAUra,YAAV,SAAAhC,OAA+BpD,KAAKJ,QAAQwc,YAAalY,SAAS,eAEpElE,KAAKke,SAAU,GAEjB7P,EAAK/G,IAAI,aAAc,IACnBtH,KAAKJ,QAAQ2Z,cAAgBvZ,KAAKsd,kBAKtCtd,KAAKC,SAAS4G,QAAQ,uBAAwB,CAACwH,M,mBAWjD,SAAMhH,EAAO6C,GACX,IAcMwV,EAZJC,EADEtY,GAASA,EAAMvH,OACNuH,OACa,IAAR6C,EACLlK,KAAKgK,MAAMpJ,IAAI,SAASxG,GACjC,OAAOA,IAAM8P,IAIJlK,KAAKC,UAEK0f,EAASvU,SAAS,cAAqD,EAArCuU,EAAShf,KAAK,cAAcb,WAG/E4f,EAAcC,EAAShf,KAAK,iBACpBwC,IAAIwc,GAAUrd,KAAK,CAC7Bsd,iBAAiB,IAChBxa,YAAY,aAEfua,EAAShf,KAAK,yBAAyByE,YAAY,uBAE/CpF,KAAKke,SAAWyB,EAAShf,KAAK,eAAeb,UAC3C0f,EAAsC,SAA3Bxf,KAAKJ,QAAQwc,UAAuB,QAAU,OAC7DuD,EAAShf,KAAK,iCAAiCwC,IAAIwc,GAC1Cva,YADT,qBAAAhC,OAC0CpD,KAAKJ,QAAQwc,YAC9ClY,SAFT,SAAAd,OAE2Boc,IAC3Bxf,KAAKke,SAAU,GAGjBnJ,aAAa2K,EAAYtf,KAAK,WAC9BJ,KAAKqf,qBAMLrf,KAAKC,SAAS4G,QAAQ,uBAAwB,CAAC8Y,O,sBAQnD,WACE3f,KAAKkY,WAAW3W,IAAI,oBAAoB4P,WAAW,iBAC9C/L,YAAY,iFACjBnI,GAAAA,CAAEuZ,SAAS2G,MAAM5b,IAAI,oBACrBzD,EAAAA,KAAKsS,KAAKpQ,KAAKC,SAAU,iB,gCAO7BvB,EAAayB,SAAW,CAOtBue,cAAc,EAOdD,qBAAqB,EAOrBE,WAAW,EAOX1B,WAAY,GAOZmB,WAAW,EAQXQ,YAAa,IAObxC,UAAW,OAOX7C,cAAc,EAOdiF,oBAAoB,EAOpBT,cAAe,WAOfC,WAAY,cAOZpB,aAAa,I,6kDCjdTje,E,iPAAkBe,EAAAA,W,qMAStB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAW3C,EAAAA,EAAEiD,OAAO,GAAIvB,EAAUwB,SAAUH,KAAKC,SAASG,OAAQR,GACvEI,KAAKO,UAAY,YAEjBP,KAAK7B,U,mBAOP,WACE,IAAI0hB,EAAO7f,KAAKC,SAASqC,KAAK,mBAAqB,GAC/Cwd,EAAW9f,KAAKC,SAASU,KAAd,0BAAAyC,OAA6Cyc,EAA7C,OAEfliB,EAAAA,WAAWQ,QAEX6B,KAAK8f,SAAWA,EAAShgB,OAASggB,EAAW9f,KAAKC,SAASU,KAAK,0BAChEX,KAAKC,SAASqC,KAAK,cAAgBud,GAAQziB,OAAAA,EAAAA,YAAAA,CAAY,EAAG,OAC1D4C,KAAKC,SAASqC,KAAK,cAAgBud,GAAQziB,OAAAA,EAAAA,YAAAA,CAAY,EAAG,OAE1D4C,KAAK+f,UAA4D,EAAhD/f,KAAKC,SAASU,KAAK,oBAAoBb,OACxDE,KAAKggB,SAAkF,EAAvEhgB,KAAKC,SAAS8P,aAAayG,SAAS2G,KAAM,oBAAoBrd,OAC9EE,KAAKigB,MAAO,EACZjgB,KAAK2Z,aAAe,CAClBuG,gBAAiBlgB,KAAKmgB,YAAYjL,KAAKlV,MACvCogB,qBAAsBpgB,KAAKqgB,iBAAiBnL,KAAKlV,OAGnD,IACIsgB,EADAC,EAAOvgB,KAAKC,SAASU,KAAK,OAE3BX,KAAKJ,QAAQ4gB,YACdF,EAAWtgB,KAAKygB,WAChBxjB,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyBxB,KAAKygB,SAASvL,KAAKlV,QAEzDA,KAAKqB,gBAEiB,IAAbif,IAAyC,IAAbA,QAA2C,IAAbA,KAChEC,EAAKzgB,OACNrC,OAAAA,EAAAA,eAAAA,CAAe8iB,EAAMvgB,KAAK0gB,QAAQxL,KAAKlV,OAEvCA,KAAK0gB,a,0BASX,WACE1gB,KAAKigB,MAAO,EACZjgB,KAAKC,SAASsB,IAAI,CAChBof,gBAAiB3gB,KAAK2Z,aAAayG,qBACnC1D,sBAAuB1c,KAAK2Z,aAAauG,gBAC5CU,sBAAuB5gB,KAAK2Z,aAAauG,oB,yBAQ1C,WACElgB,KAAK0gB,Y,8BAOP,SAAiB/e,GACZA,EAAEG,SAAW9B,KAAKC,SAAS,IAAKD,KAAK0gB,Y,qBAO1C,WACE1gB,KAAK6gB,eACF7gB,KAAK+f,UACN/f,KAAKC,SAASuB,GAAG,6BAA8BxB,KAAK2Z,aAAayG,uBAEjEpgB,KAAKC,SAASuB,GAAG,sBAAuBxB,KAAK2Z,aAAauG,iBAC7DlgB,KAAKC,SAASuB,GAAG,sBAAuBxB,KAAK2Z,aAAauG,kBAEzDlgB,KAAKigB,MAAO,I,sBAOd,WACE,IAAIK,GAAY3iB,EAAAA,WAAWoI,GAAG/F,KAAKJ,QAAQ4gB,YAW3C,OAVGF,EACEtgB,KAAKigB,OACNjgB,KAAK6gB,eACL7gB,KAAK8f,SAASxY,IAAI,SAAU,SAG1BtH,KAAKigB,MACPjgB,KAAKqB,UAGFif,I,yBAOT,c,qBAQA,WACE,IAAItgB,KAAKJ,QAAQkhB,iBACZ9gB,KAAK+gB,aAEN,OADA/gB,KAAK8f,SAASxY,IAAI,SAAU,SACrB,EAGPtH,KAAKJ,QAAQohB,cACfhhB,KAAKihB,gBAAgBjhB,KAAKkhB,iBAAiBhM,KAAKlV,OAEhDA,KAAKmhB,WAAWnhB,KAAKohB,YAAYlM,KAAKlV,S,wBAQ1C,WACE,OAAKA,KAAK8f,SAAS,KAAO9f,KAAK8f,SAAS,IAGjC9f,KAAK8f,SAAS,GAAG7E,wBAAwBvP,MAAQ1L,KAAK8f,SAAS,GAAG7E,wBAAwBvP,M,wBAQnG,SAAWmL,GAET,IADA,IAAIwK,EAAU,GACNjnB,EAAI,EAAGknB,EAAMthB,KAAK8f,SAAShgB,OAAQ1F,EAAIknB,EAAKlnB,IAClD4F,KAAK8f,SAAS1lB,GAAGsc,MAAM4D,OAAS,OAChC+G,EAAQpb,KAAKjG,KAAK8f,SAAS1lB,GAAGmnB,cAEhC1K,EAAGwK,K,6BAQL,SAAgBxK,GACd,IAAI2K,EAAmBxhB,KAAK8f,SAAShgB,OAASE,KAAK8f,SAASjb,QAAQ0G,SAASG,IAAM,EAC/E+V,EAAS,GACTC,EAAQ,EAEZD,EAAOC,GAAS,GAChB,IAAI,IAAItnB,EAAI,EAAGknB,EAAMthB,KAAK8f,SAAShgB,OAAQ1F,EAAIknB,EAAKlnB,IAAI,CACtD4F,KAAK8f,SAAS1lB,GAAGsc,MAAM4D,OAAS,OAEhC,IAAIqH,EAAc1kB,GAAAA,CAAE+C,KAAK8f,SAAS1lB,IAAImR,SAASG,IAC3CiW,IAAgBH,IAElBC,IADAC,GACgB,GAChBF,EAAgBG,GAElBF,EAAOC,GAAOzb,KAAK,CAACjG,KAAK8f,SAAS1lB,GAAG4F,KAAK8f,SAAS1lB,GAAGmnB,eAGxD,IAAK,IAAIK,EAAI,EAAGC,EAAKJ,EAAO3hB,OAAQ8hB,EAAIC,EAAID,IAAK,CAC/C,IAAIP,EAAUpkB,GAAAA,CAAEwkB,EAAOG,IAAIhe,IAAI,WAAY,OAAO5D,KAAK,KAAO8hB,MAC1DxS,EAAcD,KAAKC,IAAIgE,MAAM,KAAM+N,GACvCI,EAAOG,GAAG3b,KAAKqJ,GAEjBuH,EAAG4K,K,yBASL,SAAYJ,GACN/R,EAAMD,KAAKC,IAAIgE,MAAM,KAAM+N,GAK/BrhB,KAAKC,SAAS4G,QAAQ,6BAEtB7G,KAAK8f,SAASxY,IAAI,SAAUgI,GAM3BtP,KAAKC,SAAS4G,QAAQ,gC,8BAWzB,SAAiB4a,GAIfzhB,KAAKC,SAAS4G,QAAQ,6BACtB,IAAK,IAAIzM,EAAI,EAAGknB,EAAMG,EAAO3hB,OAAQ1F,EAAIknB,EAAMlnB,IAAK,CAClD,IAAI2nB,EAAgBN,EAAOrnB,GAAG0F,OAC1BwP,EAAMmS,EAAOrnB,GAAG2nB,EAAgB,GACpC,GAAIA,GAAe,EACjB9kB,GAAAA,CAAEwkB,EAAOrnB,GAAG,GAAG,IAAIkN,IAAI,CAACgT,OAAS,aADnC,CAQAta,KAAKC,SAAS4G,QAAQ,gCACtB,IAAK,IAAI+a,EAAI,EAAGI,EAAQD,EAAc,EAAIH,EAAII,EAAOJ,IACnD3kB,GAAAA,CAAEwkB,EAAOrnB,GAAGwnB,GAAG,IAAIta,IAAI,CAACgT,OAAShL,IAMnCtP,KAAKC,SAAS4G,QAAQ,kCAKvB7G,KAAKC,SAAS4G,QAAQ,gC,sBAOzB,WACE7G,KAAK6gB,eACL7gB,KAAK8f,SAASxY,IAAI,SAAU,a,gCAOhC3I,EAAUwB,SAAW,CAOnB2gB,iBAAiB,EAOjBE,eAAe,EAOfR,WAAY,K,8kDC3SR5hB,E,iPAAoBc,EAAAA,W,qMASxB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAItB,EAAYuB,SAAUH,KAAKC,SAASG,OAAQR,GACxEI,KAAKiiB,MAAQ,GACbjiB,KAAKkiB,YAAc,GACnBliB,KAAKO,UAAY,cAGjBrC,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,QACL6B,KAAKqB,Y,mBAQP,WACE1D,EAAAA,WAAWQ,QAEX,IAAI2E,EAAK9C,KAAKC,SAAS,GAAG6C,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,eAC/C4C,KAAKC,SAASqC,KAAK,CACjBwZ,cAAehZ,EACfA,GAAMA,IAGR9C,KAAKmiB,gBACLniB,KAAKoiB,kBACLpiB,KAAKqiB,iBACLriB,KAAK0gB,Y,qBAQP,WAAU,IAAAna,EAAAvG,KACRA,KAAKC,SAASsB,IAAI,uBAAuBC,GAAG,sBAAuB,WAAA,OAAM+E,EAAKma,c,qBAQhF,WACE,IAAIxE,EAGK9hB,EAEDkoB,EAFR,IAASloB,KAAK4F,KAAKiiB,MACdjiB,KAAKiiB,MAAMta,eAAevN,KACvBkoB,EAAOtiB,KAAKiiB,MAAM7nB,GAClBE,OAAOioB,WAAWD,EAAKE,OAAOC,UAChCvG,EAAQoG,IAKVpG,GACFlc,KAAK2T,QAAQuI,EAAMwG,Q,2BAUvB,gBAEmC,IAAtB1iB,KAAKJ,QAAQ4C,KACtBxC,KAAKJ,QAAQ4C,KAAO,QACyB,IAHnC,CAAC,OAAQ,MAAO,aAAc,QAG3B2E,QAAQnH,KAAKJ,QAAQ4C,QAClCiK,QAAQkW,KAAR,2BAAAvf,OAAwCpD,KAAKJ,QAAQ4C,KAArD,oCACAxC,KAAKJ,QAAQ4C,KAAO,U,6BASxB,WACE,IAAK,IAAIpI,KAAKuD,EAAAA,WAAWilB,QACnBjlB,EAAAA,WAAWilB,QAAQjb,eAAevN,KAChCooB,EAAQ7kB,EAAAA,WAAWilB,QAAQxoB,GAC/BwE,EAAYikB,gBAAgBL,EAAMhS,MAAQgS,EAAMM,S,4BAWtD,WACE,IAYS1oB,EAGDsoB,EACAF,EAhBJO,EAAY,GAIdd,EADEjiB,KAAKJ,QAAQqiB,OAIPjiB,KAAKC,SAASG,KAAK,eAK7B,IAAShG,KAFT6nB,EAA0B,iBAAVA,EAAqBA,EAAM/F,MAAM,iBAAmB+F,EAG/DA,EAAMta,eAAevN,KAElBsoB,GADAJ,EAAOL,EAAM7nB,GAAG8Y,MAAM,GAAI,GAAG9M,MAAM,OACvB8M,MAAM,GAAI,GAAG8P,KAAK,IAC9BR,EAAQF,EAAKA,EAAKxiB,OAAS,GAE3BlB,EAAYikB,gBAAgBL,KAC9BA,EAAQ5jB,EAAYikB,gBAAgBL,IAGtCO,EAAU9c,KAAK,CACbyc,KAAMA,EACNF,MAAOA,KAKbxiB,KAAKiiB,MAAQc,I,qBASf,SAAQL,GAAM,IAGR7b,EAEArE,EALQhC,EAAAR,KACRA,KAAKkiB,cAAgBQ,IAErB7b,EAAU,0BAaD,SARTrE,EAFS,UADTA,EAAOxC,KAAKJ,QAAQ4C,MAEY,QAA9BxC,KAAKC,SAAS,GAAGgjB,SACZ,MACAP,EAAKxG,MAAM,wCACX,aAEA,OAIP1Z,GACFxC,KAAKC,SAASqC,KAAK,MAAOogB,GACvBlhB,GAAG,OAAQ,WAAQhB,EAAK0hB,YAAcQ,IACtC7b,QAAQA,GAGK,eAATrE,GACPkgB,EAAOA,EAAK/O,QAAQ,MAAO,OAAOA,QAAQ,MAAO,OACjD3T,KAAKC,SACFqH,IAAI,CAAE4b,mBAAoB,OAASR,EAAO,MAC1C7b,QAAQA,IAGK,SAATrE,GACPvF,EAAAA,EAAE6kB,IAAIY,EAAM,SAACS,GACX3iB,EAAKP,SACFmjB,KAAKD,GACLtc,QAAQA,GACX5J,GAAAA,CAAEkmB,GAAUvR,aACZpR,EAAK0hB,YAAcQ,O,sBAezB,WACE1iB,KAAKC,SAASsB,IAAI,4B,gCAOtB3C,EAAYuB,SAAW,CAOrB8hB,MAAO,KAYPzf,KAAM,QAGR5D,EAAYikB,gBAAkB,CAC5BQ,UAAa,sCACbC,SAAY,qCACZC,OAAU,4R,qkDCvON1kB,E,iPAAiBa,EAAAA,W,qMASrB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAW3C,EAAAA,EAAEiD,OAAO,GAAIrB,EAASsB,SAAUH,KAAKC,SAASG,OAAQR,GACtEI,KAAKO,UAAY,WAGjBrC,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,QACL6B,KAAKwjB,e,mBAOP,WACE,IAAI1gB,EAAK9C,KAAKC,SAAS,GAAG6C,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,YAC/C4C,KAAKyjB,SAAWxmB,GAAAA,CAAE,0BAClB+C,KAAK0jB,OAAS1jB,KAAKC,SAASU,KAAK,KACjCX,KAAKC,SAASqC,KAAK,CACjBwZ,cAAehZ,EACf6gB,cAAe7gB,EACfA,GAAMA,IAER9C,KAAK4jB,QAAU3mB,GAAAA,GACf+C,KAAKga,UAAY9R,SAAS5N,OAAOupB,YAAa,IAE9C7jB,KAAKqB,Y,wBAQP,WACE,IAAIkF,EAAQvG,KACRmd,EAAO3G,SAAS2G,KAChBiG,EAAO5M,SAASsN,gBAEpB9jB,KAAK+jB,OAAS,GACd/jB,KAAKgkB,UAAY3U,KAAK4U,MAAM5U,KAAKC,IAAIhV,OAAO4pB,YAAad,EAAKe,eAC9DnkB,KAAKokB,UAAY/U,KAAK4U,MAAM5U,KAAKC,IAAI6N,EAAKkH,aAAclH,EAAKoE,aAAc6B,EAAKe,aAAcf,EAAKiB,aAAcjB,EAAK7B,eAEtHvhB,KAAKyjB,SAASziB,KAAK,WACjB,IAAIsjB,EAAOrnB,GAAAA,CAAE+C,MACTukB,EAAKlV,KAAK4U,MAAMK,EAAK/Y,SAASG,IAAMnF,EAAM3G,QAAQ4kB,WACtDF,EAAKG,YAAcF,EACnBhe,EAAMwd,OAAO9d,KAAKse,O,qBAQtB,WACE,IAAIhe,EAAQvG,KAEZ/C,GAAAA,CAAE3C,QAAQ2c,IAAI,OAAQ,WACjB1Q,EAAM3G,QAAQ8kB,aACZ1Z,SAASC,MACV1E,EAAMoe,YAAY3Z,SAASC,MAG/B1E,EAAMid,aACNjd,EAAMqe,kBAGRre,EAAMse,eAAiBtnB,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,WACvCiM,EAAMtG,SACHuB,GAAG,CACFkb,sBAAuBnW,EAAM0L,OAAOiD,KAAK3O,GACzCue,sBAAuBve,EAAMqe,cAAc1P,KAAK3O,KAEjD/E,GAAG,oBAAqB,eAAgB,SAAUG,GACjDA,EAAEE,iBACEkjB,EAAU/kB,KAAK+B,aAAa,QAChCwE,EAAMoe,YAAYI,OAIxB/kB,KAAKglB,gBAAkB,WAClBze,EAAM3G,QAAQ8kB,aACfne,EAAMoe,YAAYrqB,OAAO0Q,SAASC,OAItChO,GAAAA,CAAE3C,QAAQkH,GAAG,aAAcxB,KAAKglB,mB,yBAQlC,SAAYC,GACVjlB,KAAKklB,eAAgB,EACrB,IAAI3e,EAAQvG,KAERJ,EAAU,CACZua,gBAAiBna,KAAKJ,QAAQua,gBAC9BD,kBAAmBla,KAAKJ,QAAQsa,kBAChCsK,UAAWxkB,KAAKJ,QAAQ4kB,UACxBjZ,OAAQvL,KAAKJ,QAAQ2L,QAGvBnM,EAAAA,aAAaulB,YAAYM,EAAKrlB,EAAS,WACrC2G,EAAM2e,eAAgB,M,oBAQ1B,WACEllB,KAAKwjB,aACLxjB,KAAK4kB,kB,2BASP,WAAwC,IAGhCO,EACAC,EAiBAC,EACFC,EAOEC,EAaI1c,EA1C4BrI,EAAAR,KACnCA,KAAKklB,gBAEFC,EAAejd,SAAS5N,OAAOupB,YAAa,IAC5CuB,EAAgBplB,KAAKga,UAAYmL,GACvCnlB,KAAKga,UAAYmL,GAICnlB,KAAK+jB,OAAO,GAAK/jB,KAAKJ,QAAQ2L,QAAU6Z,EAAgBplB,KAAKJ,QAAQ4kB,UAAY,KAExCgB,EAAnDL,EAAenlB,KAAKgkB,YAAchkB,KAAKokB,UAAwBpkB,KAAK+jB,OAAOjkB,OAAS,GAGpF2lB,EAAezlB,KAAK+jB,OAAOnf,OAAO,SAAC+M,GACvC,OAAQA,EAAInR,EAAKZ,QAAQ2L,QAAU6Z,EAAgB5kB,EAAKZ,QAAQ4kB,UAAY,IAAOW,KAE5DrlB,OAAS2lB,EAAa3lB,OAAS,EAAI,GAIxDulB,EAAarlB,KAAK4jB,QACpB0B,EAAa,QACO,IAAdE,GACRxlB,KAAK4jB,QAAU5jB,KAAK0jB,OAAO9e,OAAO,WAAa5E,KAAKyjB,SAASrU,GAAGoW,GAAWplB,KAAK,mBAAqB,MACjGJ,KAAK4jB,QAAQ9jB,SAAQwlB,EAAatlB,KAAK4jB,QAAQ,GAAG7hB,aAAa,UAEnE/B,KAAK4jB,QAAU3mB,GAAAA,GAEXsoB,KAAiBvlB,KAAK4jB,QAAQ9jB,SAAWulB,EAAWvlB,QAAYE,KAAK4jB,QAAQ7d,GAAGsf,IAChFK,EAAYJ,IAAehrB,OAAO0Q,SAASC,KAG9Csa,IACDF,EAAWjgB,YAAYpF,KAAKJ,QAAQ+lB,aACpC3lB,KAAK4jB,QAAQ1f,SAASlE,KAAKJ,QAAQ+lB,cAIlC3lB,KAAKJ,QAAQ8kB,aAAegB,IAC1BprB,OAAOwS,QAAQC,WAEVlE,EAAMyc,GAA0BhrB,OAAO0Q,SAAS4a,SAAWtrB,OAAO0Q,SAAS6a,OAC9E7lB,KAAKJ,QAAQiN,cACdvS,OAAOwS,QAAQC,UAAU,GAAI,GAAIlE,GAEjCvO,OAAOwS,QAAQE,aAAa,GAAI,GAAInE,IAGtCvO,OAAO0Q,SAASC,KAAOqa,GAIvBC,GAKHvlB,KAAKC,SAAS4G,QAAQ,qBAAsB,CAAC7G,KAAK4jB,a,sBAQrD,WAIE,IACM3Y,EAJNjL,KAAKC,SAASsB,IAAI,4BACbZ,KADL,IAAAyC,OACcpD,KAAKJ,QAAQ+lB,cAAevgB,YAAYpF,KAAKJ,QAAQ+lB,aAEhE3lB,KAAKJ,QAAQ8kB,cACVzZ,EAAOjL,KAAK4jB,QAAQ,GAAG7hB,aAAa,QACxCzH,OAAO0Q,SAASC,KAAK0I,QAAQ1I,EAAM,KAGrChO,GAAAA,CAAE3C,QAAQiH,IAAI,aAAcvB,KAAKglB,iBAC7BhlB,KAAK6kB,gBAAgB5nB,GAAAA,CAAE3C,QAAQiH,IAAIvB,KAAK6kB,qB,gCAOhDhmB,EAASsB,SAAW,CAOlB+Z,kBAAmB,IAQnBC,gBAAiB,SAOjBqK,UAAW,GAOXmB,YAAa,YAObjB,aAAa,EAOb7X,eAAe,EAOftB,OAAQ,I,knDC5QJzM,E,iPAAkBY,EAAAA,W,qMAStB,SAAOC,EAASC,GAAS,IAAAY,EAAAR,KACvBA,KAAKO,UAAY,YACjBP,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIpB,EAAUqB,SAAUH,KAAKC,SAASG,OAAQR,GACtEI,KAAK8lB,eAAiB,CAAEC,KAAM,GAAIC,OAAQ,IAC1ChmB,KAAKimB,aAAehpB,GAAAA,GACpB+C,KAAKkmB,UAAYjpB,GAAAA,GACjB+C,KAAKic,SAAW,OAChBjc,KAAKmK,SAAWlN,GAAAA,GAChB+C,KAAKmmB,SAAYnmB,KAAKJ,QAAQumB,OAC9BnmB,KAAKomB,QAAUnpB,GAAAA,GACf+C,KAAKqmB,YAAa,EAGlBppB,GAAAA,CAAE,CAAC,OAAQ,YAAY+D,KAAK,SAAC0Z,EAAO/X,GAClCnC,EAAKslB,eAAeC,KAAK9f,KAAK,kBAAkBtD,KAElD1F,GAAAA,CAAE,CAAC,OAAQ,QAAS,MAAO,WAAW+D,KAAK,SAAC0Z,EAAO/X,GACjDnC,EAAKslB,eAAeC,KAAK9f,KAAK,gBAAgBtD,GAC9CnC,EAAKslB,eAAeE,OAAO/f,KAAK,cAActD,KAIhDzE,EAAAA,SAASD,KAAKhB,EAAAA,GACdU,EAAAA,WAAWQ,QAEX6B,KAAK7B,QACL6B,KAAKqB,UAEL3D,EAAAA,SAAS8L,SAAS,YAAa,CAC7BwE,OAAU,Y,mBAUd,WACE,IAAIlL,EAAK9C,KAAKC,SAASqC,KAAK,MAE5BtC,KAAKC,SAASqC,KAAK,cAAe,QAG9BtC,KAAKJ,QAAQ0mB,UACftmB,KAAKmK,SAAWlN,GAAAA,CAAE,IAAI+C,KAAKJ,QAAQ0mB,WAC1BtmB,KAAKC,SAAS+C,SAAS,6BAA6BlD,OAC7DE,KAAKmK,SAAWnK,KAAKC,SAAS+C,SAAS,6BAA6B6B,QAEpE7E,KAAKmK,SAAWnK,KAAKC,SAASuD,QAAQ,6BAA6BqB,QAGhE7E,KAAKJ,QAAQ0mB,UAIPtmB,KAAKJ,QAAQ0mB,WAAqC,OAAxBtmB,KAAKJ,QAAQumB,QAGhD1Z,QAAQkW,KAAK,qEALb3iB,KAAKmmB,OAAwE,IAA/DnmB,KAAKC,SAAS+C,SAAS,6BAA6BlD,QAQhD,IAAhBE,KAAKmmB,SAEPnmB,KAAKJ,QAAQuW,WAAa,UAE1BnW,KAAKC,SAASmF,YAAY,uBAG5BpF,KAAKC,SAASiE,SAAd,iBAAAd,OAAwCpD,KAAKJ,QAAQuW,WAArD,eAGAnW,KAAKkmB,UAAYjpB,GAAAA,CAAEuZ,UAChB7V,KAAK,eAAemC,EAAG,oBAAoBA,EAAG,qBAAqBA,EAAG,MACtER,KAAK,gBAAiB,SACtBA,KAAK,gBAAiBQ,GAGzB9C,KAAKic,SAAWjc,KAAKC,SAAS8F,GAAG,oEAAsE/F,KAAKC,SAASqC,KAAK,SAAS4Z,MAAM,qCAAqC,GAAKlc,KAAKic,UAGpJ,IAAhCjc,KAAKJ,QAAQ2mB,iBACXC,EAAUhQ,SAASC,cAAc,OACjCgQ,EAAuD,UAArCxpB,GAAAA,CAAE+C,KAAKC,UAAUqH,IAAI,YAA0B,mBAAqB,sBAC1Fkf,EAAQE,aAAa,QAAS,yBAA2BD,GACzDzmB,KAAK2mB,SAAW1pB,GAAAA,CAAEupB,GACK,oBAApBC,EACDxpB,GAAAA,CAAE+C,KAAK2mB,UAAUC,YAAY5mB,KAAKC,UAElCD,KAAKmK,SAASuO,OAAO1Y,KAAK2mB,WAK9B,IACIE,EADiB,IAAIhf,OAAOvK,OAAAA,EAAAA,aAAAA,CAAa0C,KAAKJ,QAAQknB,aAAe,YAAa,KACnDrT,KAAKzT,KAAKC,SAAS,GAAGM,WACrDsmB,IACF7mB,KAAKJ,QAAQmnB,YAAa,EAC1B/mB,KAAKJ,QAAQonB,SAAWhnB,KAAKJ,QAAQonB,UAAYH,EAAc,KAIjC,IAA5B7mB,KAAKJ,QAAQmnB,YAAuB/mB,KAAKJ,QAAQonB,WACnDhnB,KAAKC,SAAS4E,QAAQX,SAAtB,GAAAd,OAAkCpD,KAAKJ,QAAQknB,aAA/C1jB,OAA6DpD,KAAKJ,QAAQonB,WAC1EhnB,KAAKinB,iBAGHjnB,KAAKJ,QAAQsnB,gBACflnB,KAAKC,SAASqH,IAAI,sBAAuBtH,KAAKJ,QAAQsnB,gBAIxDlnB,KAAKomB,QAAUpmB,KAAKmK,SAASxJ,KAAK,4BACR,EAAtBX,KAAKomB,QAAQtmB,QAA0C,SAA5BE,KAAKJ,QAAQuW,aAG1CnW,KAAKJ,QAAQunB,eAAgB,GAG3BC,EAAcpnB,KAAKC,SAASqC,KAAK,SAAS4Z,MAAM,yBAChDkL,GAAsC,IAAvBA,EAAYtnB,OAE7BE,KAAKJ,QAAQynB,WAAaD,EAAY,GAC7BpnB,KAAKJ,QAAQynB,YAEtBrnB,KAAKC,SAASiE,SAAd,iBAAAd,OAAwCpD,KAAKJ,QAAQynB,aAGnDrnB,KAAKJ,QAAQynB,YACfrnB,KAAKsnB,iBAIPtnB,KAAKunB,0B,qBAQP,WAAU,IAAAjmB,EAAAtB,KACRA,KAAKC,SAASsB,IAAI,6BAA6BC,GAAG,CAChD+a,kBAAmBvc,KAAKyP,KAAKyF,KAAKlV,MAClCwc,mBAAoBxc,KAAK0P,MAAMwF,KAAKlV,MACpCyc,oBAAqBzc,KAAK+L,OAAOmJ,KAAKlV,MACtCwnB,uBAAwBxnB,KAAKynB,gBAAgBvS,KAAKlV,SAGlB,IAA9BA,KAAKJ,QAAQ2Z,eACDvZ,KAAKJ,QAAQ2mB,eAAiBvmB,KAAK2mB,SAAW3mB,KAAKmK,UACzD3I,GAAG,CAACkmB,qBAAsB1nB,KAAK0P,MAAMwF,KAAKlV,QAGhDA,KAAKJ,QAAQynB,YACfpqB,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyB,WACpCF,EAAKgmB,qB,2BAUX,WACE,IAAI/gB,EAAQvG,KAEZA,KAAK6kB,eAAiBtnB,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,WAClCqD,EAAAA,WAAWgqB,QAAQphB,EAAM3G,QAAQonB,WACnCzgB,EAAMyf,QAAO,KAIjB/oB,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyB,WAChC7D,EAAAA,WAAWgqB,QAAQphB,EAAM3G,QAAQonB,UACnCzgB,EAAMyf,QAAO,GAEbzf,EAAMyf,QAAO,O,4BASnB,WACEhmB,KAAKqmB,WAAa1oB,EAAAA,WAAWgqB,QAAQ3nB,KAAKJ,QAAQynB,aAC1B,IAApBrnB,KAAKqmB,YACPrmB,KAAK0P,U,mCAUT,SAAsBkY,GACK,kBAAdA,EACT5nB,KAAKmK,SAAS/E,YAAYpF,KAAK8lB,eAAeC,KAAK/C,KAAK,OACjC,IAAd4E,GACT5nB,KAAKmK,SAAS/E,YAAd,cAAAhC,OAAwCpD,KAAKic,a,gCAUjD,SAAmB2L,GACjB5nB,KAAKunB,sBAAsBK,GACF,kBAAdA,EACT5nB,KAAKmK,SAASjG,SAAd,kBAAAd,OAAyCpD,KAAKJ,QAAQuW,WAAtD,kBAAA/S,OAAiFpD,KAAKic,YAC/D,IAAd2L,GACT5nB,KAAKmK,SAASjG,SAAd,cAAAd,OAAqCpD,KAAKic,a,gCAS9C,WACEjc,KAAKomB,QAAQplB,KAAK,SAAC6mB,EAAGhkB,GACpB,IAAMxB,EAAMpF,GAAAA,CAAE4G,GAIc,UAAxBxB,EAAIiF,IAAI,cAGNwgB,EAAS5f,SAAS7F,EAAIiF,IAAI,OAAQ,IACtCjF,EAAIjC,KAAK,kBAAmB,CAAEsL,IAAKoc,IAE/BC,EAAiB9qB,GAAAA,CAAEuZ,UAAU/K,YAAcqc,EAC/CzlB,EAAIiF,IAAI,CAAEoE,IAAG,GAAAtI,OAAK2kB,EAAL,MAAyB7M,MAAO,OAAQ/E,WAAY,c,kCAUvE,WACEnW,KAAKomB,QAAQplB,KAAK,SAAC6mB,EAAGhkB,GACpB,IAAMxB,EAAMpF,GAAAA,CAAE4G,GACVmkB,EAAa3lB,EAAIjC,KAAK,mBAGA,WAAtBoR,EAAOwW,KACT3lB,EAAIiF,IAAI,CAAEoE,IAAG,GAAAtI,OAAK4kB,EAAWtc,IAAhB,MAAyBwP,MAAO,GAAI/E,WAAY,KAC7D9T,EAAIjC,KAAK,kBAAmB,S,oBAUlC,SAAO2mB,GACDA,GACF/mB,KAAK0P,QACL1P,KAAK+mB,YAAa,EAClB/mB,KAAKC,SAASqC,KAAK,cAAe,SAClCtC,KAAKC,SAASsB,IAAI,qCAClBvB,KAAKC,SAASmF,YAAY,eAE1BpF,KAAK+mB,YAAa,EAClB/mB,KAAKC,SAASqC,KAAK,cAAe,QAClCtC,KAAKC,SAASsB,IAAI,qCAAqCC,GAAG,CACxD+a,kBAAmBvc,KAAKyP,KAAKyF,KAAKlV,MAClCyc,oBAAqBzc,KAAK+L,OAAOmJ,KAAKlV,QAExCA,KAAKC,SAASiE,SAAS,cAEzBlE,KAAKioB,mBAAmBlB,K,4BAQ1B,WACE,OAAO,I,+BAQT,SAAkBmB,GACHloB,KACRmoB,MAAQD,EAAME,QAAQ,GAAGC,Q,oCAQhC,SAAuBH,GACrB,IACM3hB,EAAQ2hB,EAAM9nB,KACdkoB,EAFOtoB,KAEMmoB,MAAQD,EAAME,QAAQ,GAAGC,MAF/BroB,KAGRmoB,MAAQD,EAAME,QAAQ,GAAGC,MAEzB9hB,EAAMgiB,WAAWD,EALTtoB,OAMXkoB,EAAMrmB,mB,kCAUV,SAAqBqmB,GACnB,IACM3hB,EAAQ2hB,EAAM9nB,KACd8C,EAFOlD,KAEOwD,QAAQ,wDACtB8kB,EAHOtoB,KAGMmoB,MAAQD,EAAME,QAAQ,GAAGC,MAC5CnlB,EAAOilB,MAJMnoB,KAIOmoB,MAAQD,EAAME,QAAQ,GAAGC,MAE7CH,EAAMM,kBAEDjiB,EAAMgiB,WAAWD,EARTtoB,QASNuG,EAAMgiB,WAAWD,EAAOplB,GAG3BA,EAAOuI,WAAa6c,EAFpBJ,EAAMrmB,oB,wBAcZ,SAAWymB,EAAOlhB,GAChB,IAEMqhB,EAA2B,EAAjBrhB,EAAKqE,UACfid,EAAYthB,EAAKqE,UAAYrE,EAAKid,aAAejd,EAAK+c,aAC5D,OAJWmE,EAAQ,GAING,GAHQ,EAARH,GAGmBI,I,kBAWlC,SAAKR,EAAOrhB,GAAS,IAEfN,EAFe1D,EAAA7C,KACfA,KAAKC,SAASmL,SAAS,YAAcpL,KAAK+mB,YAAc/mB,KAAKqmB,aAC7D9f,EAAQvG,KAER6G,IACF7G,KAAKimB,aAAepf,GAGO,QAAzB7G,KAAKJ,QAAQ+oB,QACfruB,OAAOsuB,SAAS,EAAG,GACe,WAAzB5oB,KAAKJ,QAAQ+oB,SACtBruB,OAAOsuB,SAAS,EAAEpS,SAAS2G,KAAKkH,cAG9BrkB,KAAKJ,QAAQsnB,gBAA8C,YAA5BlnB,KAAKJ,QAAQuW,WAC9CnW,KAAKC,SAAS+C,SAAS,6BAA6BsE,IAAI,sBAAuBtH,KAAKJ,QAAQsnB,gBAE5FlnB,KAAKC,SAAS+C,SAAS,6BAA6BsE,IAAI,sBAAuB,IAGjFtH,KAAKC,SAASiE,SAAS,WAAWkB,YAAY,aAE9CpF,KAAKkmB,UAAU5jB,KAAK,gBAAiB,QACrCtC,KAAKC,SAASqC,KAAK,cAAe,SAElCtC,KAAKmK,SAASjG,SAAS,WAAalE,KAAKic,WAGN,IAA/Bjc,KAAKJ,QAAQunB,gBACflqB,GAAAA,CAAE,QAAQiH,SAAS,sBAAsB1C,GAAG,YAAaxB,KAAK6oB,gBAC9D7oB,KAAKC,SAASuB,GAAG,aAAcxB,KAAK8oB,mBACpC9oB,KAAKC,SAASuB,GAAG,YAAaxB,KAAMA,KAAK+oB,wBACzC/oB,KAAKC,SAASuB,GAAG,aAAc,8BAA+BxB,KAAK8oB,mBACnE9oB,KAAKC,SAASuB,GAAG,YAAa,8BAA+BxB,KAAMA,KAAKgpB,wBAGtC,IAAhChpB,KAAKJ,QAAQ2mB,gBACfvmB,KAAK2mB,SAASziB,SAAS,eAGS,IAA9BlE,KAAKJ,QAAQ2Z,eAAyD,IAAhCvZ,KAAKJ,QAAQ2mB,gBACrDvmB,KAAK2mB,SAASziB,SAAS,gBAGM,IAA3BlE,KAAKJ,QAAQ4a,WACfxa,KAAKC,SAASgX,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc2C,KAAKC,UAAW,WAC9C,IAGIgpB,EAHC1iB,EAAMtG,SAASmL,SAAS,cAGzB6d,EAAc1iB,EAAMtG,SAASU,KAAK,qBACtBb,OACZmpB,EAEA1iB,EAAMtG,SAASU,KAAK,cAFRyO,GAAG,GAAGjD,WAOK,IAA3BnM,KAAKJ,QAAQ2d,YACfvd,KAAKmK,SAAS7H,KAAK,WAAY,MAC/B5E,EAAAA,SAAS6f,UAAUvd,KAAKC,WAGM,SAA5BD,KAAKJ,QAAQuW,YACfnW,KAAKkpB,qBAGPlpB,KAAKioB,qBAMLjoB,KAAKC,SAAS4G,QAAQ,uBAMtB7G,KAAKC,SAASgX,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc2C,KAAKC,UAAW,WAC9C4C,EAAK5C,SAAS4G,QAAQ,+B,mBAW1B,WAAQ,IAAAnD,EAAA1D,KACDA,KAAKC,SAASmL,SAAS,aAAcpL,KAAK+mB,aAM/C/mB,KAAKC,SAAS4G,QAAQ,sBAEtB7G,KAAKC,SAASmF,YAAY,WAE1BpF,KAAKC,SAASqC,KAAK,cAAe,QAElCtC,KAAKmK,SAAS/E,YAAY,0DAEU,IAAhCpF,KAAKJ,QAAQ2mB,gBACfvmB,KAAK2mB,SAASvhB,YAAY,eAGM,IAA9BpF,KAAKJ,QAAQ2Z,eAAyD,IAAhCvZ,KAAKJ,QAAQ2mB,gBACrDvmB,KAAK2mB,SAASvhB,YAAY,eAG5BpF,KAAKkmB,UAAU5jB,KAAK,gBAAiB,SAIrCtC,KAAKC,SAASgX,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAc2C,KAAKC,UAAW,WAE9CyD,EAAKzD,SAASiE,SAAS,aACvBR,EAAK6jB,wBAE2B,SAA5B7jB,EAAK9D,QAAQuW,YACfzS,EAAKylB,wBAI4B,IAA/BzlB,EAAK9D,QAAQunB,gBACflqB,GAAAA,CAAE,QAAQmI,YAAY,sBAAsB7D,IAAI,YAAamC,EAAKmlB,gBAClEnlB,EAAKzD,SAASsB,IAAI,aAAcmC,EAAKolB,mBACrCplB,EAAKzD,SAASsB,IAAI,YAAamC,EAAKqlB,wBACpCrlB,EAAKzD,SAASsB,IAAI,aAAc,8BAA+BmC,EAAKolB,mBACpEplB,EAAKzD,SAASsB,IAAI,YAAa,8BAA+BmC,EAAKslB,wBAGtC,IAA3BtlB,EAAK9D,QAAQ2d,YACf7Z,EAAKyG,SAASgH,WAAW,YACzBzT,EAAAA,SAAS8f,aAAa9Z,EAAKzD,WAO7ByD,EAAKzD,SAAS4G,QAAQ,4B,oBAU1B,SAAOqhB,EAAOrhB,GACR7G,KAAKC,SAASmL,SAAS,WACzBpL,KAAK0P,MAAMwY,EAAOrhB,GAGlB7G,KAAKyP,KAAKyY,EAAOrhB,K,6BASrB,SAAgBlF,GAAG,IAAAmC,EAAA9D,KACjBtC,EAAAA,SAASsO,UAAUrK,EAAG,YAAa,CACjC+N,MAAO,WAGL,OAFA5L,EAAK4L,QACL5L,EAAKmiB,aAAa9Z,SACX,GAETI,QAAS,WACP5K,EAAEE,sB,sBASR,WACE7B,KAAK0P,QACL1P,KAAKC,SAASsB,IAAI,6BAClBvB,KAAK2mB,SAASplB,IAAI,iBACdvB,KAAK6kB,gBAAgB5nB,GAAAA,CAAE3C,QAAQiH,IAAIvB,KAAK6kB,qB,gCAIhD/lB,EAAUqB,SAAW,CAOnBoZ,cAAc,EAQdgN,gBAAgB,EAQhBD,UAAW,KAQXH,OAAQ,KAQRgB,eAAe,EAQfD,eAAgB,KAQhB/Q,WAAY,OAQZwS,QAAS,KAQT5B,YAAY,EAQZC,SAAU,KAQVK,WAAY,KAQZ7M,WAAW,EASXsM,YAAa,cAQbvJ,WAAW,I,mrDC5qBPxe,E,iPAAcW,EAAAA,W,qMAQlB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAInB,EAAMoB,SAAUH,KAAKC,SAASG,OAAQR,GAClEI,KAAKO,UAAY,QAEjBvC,EAAAA,MAAMC,KAAKhB,EAAAA,GAEX+C,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,QAAS,CACzB4f,IAAO,CACLtb,YAAe,OACfC,WAAc,YAEhB7Q,IAAO,CACL6Q,WAAc,OACdD,YAAe,gB,mBAUrB,WAEE9N,KAAKqpB,SAELrpB,KAAK+Y,SAAW/Y,KAAKC,SAASU,KAAd,IAAAyC,OAAuBpD,KAAKJ,QAAQ0pB,iBACpDtpB,KAAKupB,QAAUvpB,KAAKC,SAASU,KAAd,IAAAyC,OAAuBpD,KAAKJ,QAAQ4pB,aAEnD,IAAIC,EAAUzpB,KAAKC,SAASU,KAAK,OAC7B+oB,EAAa1pB,KAAKupB,QAAQ3kB,OAAO,cACjC9B,EAAK9C,KAAKC,SAAS,GAAG6C,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,SAE/C4C,KAAKC,SAASqC,KAAK,CACjBwZ,cAAehZ,EACfA,GAAMA,IAGH4mB,EAAW5pB,QACdE,KAAKupB,QAAQna,GAAG,GAAGlL,SAAS,aAGzBlE,KAAKJ,QAAQ+pB,QAChB3pB,KAAKupB,QAAQrlB,SAAS,eAGpBulB,EAAQ3pB,OACVrC,OAAAA,EAAAA,eAAAA,CAAegsB,EAASzpB,KAAK4pB,iBAAiB1U,KAAKlV,OAEnDA,KAAK4pB,mBAGH5pB,KAAKJ,QAAQiqB,SACf7pB,KAAK8pB,eAGP9pB,KAAKqB,UAEDrB,KAAKJ,QAAQmqB,UAAkC,EAAtB/pB,KAAKupB,QAAQzpB,QACxCE,KAAKgqB,UAGHhqB,KAAKJ,QAAQqqB,YACfjqB,KAAK+Y,SAASzW,KAAK,WAAY,K,0BASnC,WACEtC,KAAKkqB,SAAWlqB,KAAKC,SAASU,KAAd,IAAAyC,OAAuBpD,KAAKJ,QAAQuqB,eAAgBxpB,KAAK,Y,qBAO3E,WACE,IAAI4F,EAAQvG,KACZA,KAAKgU,MAAQ,IAAIjW,EAAAA,MACfiC,KAAKC,SACL,CACEmqB,SAAUpqB,KAAKJ,QAAQyqB,WACvBC,UAAU,GAEZ,WACE/jB,EAAMgkB,aAAY,KAEtBvqB,KAAKgU,MAAMiB,U,8BAQb,WACEjV,KAAKwqB,sB,+BASP,SAAkB3T,GAChB,IAAa4T,EAATnb,EAAM,EAASob,EAAU,EAAGnkB,EAAQvG,KAExCA,KAAKupB,QAAQvoB,KAAK,WAChBypB,EAAOzqB,KAAKib,wBAAwBX,OACpCrd,GAAAA,CAAE+C,MAAMsC,KAAK,aAAcooB,GAGtB,OAAO9iB,KAAK3K,GAAAA,CAAE+C,MAAM,GAAGO,YAAcgG,EAAMgjB,QAAQ3kB,OAAO,cAAc,KAAO2B,EAAMgjB,QAAQna,GAAGsb,GAAS,IAC5GztB,GAAAA,CAAE+C,MAAMsH,IAAI,CAACqjB,QAAW,SAE1Brb,EAAaA,EAAPmb,EAAaA,EAAOnb,EAC1Bob,MAGEA,IAAY1qB,KAAKupB,QAAQzpB,SAC3BE,KAAK+Y,SAASzR,IAAI,CAACgT,OAAUhL,IAC1BuH,GAAKA,EAAGvH,M,6BASf,SAAgBgL,GACdta,KAAKupB,QAAQvoB,KAAK,WAChB/D,GAAAA,CAAE+C,MAAMsH,IAAI,aAAcgT,O,qBAS9B,WACE,IAAI/T,EAAQvG,KAOZA,KAAKC,SAASsB,IAAI,wBAAwBC,GAAG,CAC3Ckb,sBAAuB1c,KAAK4pB,iBAAiB1U,KAAKlV,QAE1B,EAAtBA,KAAKupB,QAAQzpB,SAEXE,KAAKJ,QAAQgrB,OACf5qB,KAAKupB,QAAQhoB,IAAI,0CAChBC,GAAG,qBAAsB,SAASG,GACjCA,EAAEE,iBACF0E,EAAMgkB,aAAY,KACjB/oB,GAAG,sBAAuB,SAASG,GACpCA,EAAEE,iBACF0E,EAAMgkB,aAAY,KAKlBvqB,KAAKJ,QAAQmqB,WACf/pB,KAAKupB,QAAQ/nB,GAAG,iBAAkB,WAChC+E,EAAMtG,SAASG,KAAK,aAAamG,EAAMtG,SAASG,KAAK,cACrDmG,EAAMyN,MAAMzN,EAAMtG,SAASG,KAAK,aAAe,QAAU,aAGvDJ,KAAKJ,QAAQirB,cACf7qB,KAAKC,SAASuB,GAAG,sBAAuB,WACtC+E,EAAMyN,MAAM8W,UACXtpB,GAAG,sBAAuB,WACtB+E,EAAMtG,SAASG,KAAK,cACvBmG,EAAMyN,MAAMiB,WAMhBjV,KAAKJ,QAAQmrB,YACC/qB,KAAKC,SAASU,KAAd,IAAAyC,OAAuBpD,KAAKJ,QAAQorB,UAApC,OAAA5nB,OAAmDpD,KAAKJ,QAAQqrB,YACtE3oB,KAAK,WAAY,GAE1Bd,GAAG,mCAAoC,SAASG,GACtDA,EAAEE,iBACK0E,EAAMgkB,YAAYttB,GAAAA,CAAE+C,MAAMoL,SAAS7E,EAAM3G,QAAQorB,cAIjDhrB,KAAKJ,QAAQiqB,SACf7pB,KAAKkqB,SAAS1oB,GAAG,mCAAoC,WACnD,GAAI,aAAaoG,KAAK5H,KAAKO,WAAc,OAAO,EAChD,IAAI2J,EAAMjN,GAAAA,CAAE+C,MAAMI,KAAK,SACvBgpB,EAAMlf,EAAM3D,EAAMgjB,QAAQ3kB,OAAO,cAAcxE,KAAK,SACpD8qB,EAAS3kB,EAAMgjB,QAAQna,GAAGlF,GAE1B3D,EAAMgkB,YAAYnB,EAAK8B,EAAQhhB,KAI/BlK,KAAKJ,QAAQqqB,YACfjqB,KAAK+Y,SAAS5V,IAAInD,KAAKkqB,UAAU1oB,GAAG,mBAAoB,SAASG,GAE/DjE,EAAAA,SAASsO,UAAUrK,EAAG,QAAS,CAC7BsK,KAAM,WACJ1F,EAAMgkB,aAAY,IAEpBle,SAAU,WACR9F,EAAMgkB,aAAY,IAEpBhe,QAAS,WACHtP,GAAAA,CAAE0E,EAAEG,QAAQiE,GAAGQ,EAAM2jB,WACvB3jB,EAAM2jB,SAAStlB,OAAO,cAAcuH,gB,oBAYlD,gBAE8B,IAAjBnM,KAAKupB,SAIU,EAAtBvpB,KAAKupB,QAAQzpB,SAEfE,KAAKC,SAASsB,IAAI,aAAaZ,KAAK,KAAKY,IAAI,aAGzCvB,KAAKJ,QAAQmqB,UACf/pB,KAAKgU,MAAMmX,UAIbnrB,KAAKupB,QAAQvoB,KAAK,SAAS6C,GACzB5G,GAAAA,CAAE4G,GAAIuB,YAAY,6BACf+L,WAAW,aACXsM,SAILzd,KAAKupB,QAAQ1kB,QAAQX,SAAS,aAAaknB,OAG3CprB,KAAKC,SAAS4G,QAAQ,uBAAwB,CAAC7G,KAAKupB,QAAQ1kB,UAGxD7E,KAAKJ,QAAQiqB,SACf7pB,KAAKqrB,eAAe,M,yBAa1B,SAAYC,EAAOC,EAAarhB,GAC9B,GAAKlK,KAAKupB,QAAV,CACA,IAAIiC,EAAYxrB,KAAKupB,QAAQ3kB,OAAO,cAAcwK,GAAG,GAErD,GAAI,OAAOxH,KAAK4jB,EAAU,GAAGjrB,WAAc,OAAO,EAElD,IAAIkrB,EAAczrB,KAAKupB,QAAQ1kB,QAC/B6mB,EAAa1rB,KAAKupB,QAAQjd,OAC1Bqf,EAAQL,EAAQ,QAAU,OAC1BM,EAASN,EAAQ,OAAS,QAC1B/kB,EAAQvG,KASN6rB,EANGN,IACSD,GACXtrB,KAAKJ,QAAQksB,cAAeN,EAAUvf,KAAV,IAAA7I,OAAmBpD,KAAKJ,QAAQ4pB,aAAc1pB,OAAuE0rB,EAAUvf,KAAV,IAAA7I,OAAmBpD,KAAKJ,QAAQ4pB,aAA9CiC,GAEnIzrB,KAAKJ,QAAQksB,cAAeN,EAAU5gB,KAAV,IAAAxH,OAAmBpD,KAAKJ,QAAQ4pB,aAAc1pB,OAAsE0rB,EAAU5gB,KAAV,IAAAxH,OAAmBpD,KAAKJ,QAAQ4pB,aAA7CkC,GAKlIG,EAAU/rB,SAKZE,KAAKC,SAAS4G,QAAQ,6BAA8B,CAAC2kB,EAAWK,IAE5D7rB,KAAKJ,QAAQiqB,UACf3f,EAAMA,GAAOlK,KAAKupB,QAAQ7O,MAAMmR,GAChC7rB,KAAKqrB,eAAenhB,IAGlBlK,KAAKJ,QAAQ+pB,SAAW3pB,KAAKC,SAAS8F,GAAG,YAC3CnI,EAAAA,OAAOmuB,UACLF,EAAU3nB,SAAS,aACnBlE,KAAKJ,QAAL,aAAAwD,OAA0BuoB,IAC1B,WACEE,EAAUvkB,IAAI,CAACqjB,QAAW,UAAUroB,KAAK,YAAa,YAG1D1E,EAAAA,OAAOouB,WACLR,EAAUpmB,YAAY,aACtBpF,KAAKJ,QAAL,YAAAwD,OAAyBwoB,IACzB,WACEJ,EAAUra,WAAW,aAClB5K,EAAM3G,QAAQmqB,WAAaxjB,EAAMyN,MAAMiY,UACxC1lB,EAAMyN,MAAMmX,cAKlBK,EAAUpmB,YAAY,mBAAmB+L,WAAW,aAAasM,OACjEoO,EAAU3nB,SAAS,mBAAmB5B,KAAK,YAAa,UAAU8oB,OAC9DprB,KAAKJ,QAAQmqB,WAAa/pB,KAAKgU,MAAMiY,UACvCjsB,KAAKgU,MAAMmX,WAOfnrB,KAAKC,SAAS4G,QAAQ,uBAAwB,CAACglB,Q,4BAanD,SAAe3hB,GACb,IAAIgiB,EAAalsB,KAAKkqB,SAAStlB,OAAO,cAClCunB,EAAiBnsB,KAAKkqB,SAAStpB,IAAI,cACnCwrB,EAAapsB,KAAKkqB,SAAS9a,GAAGlF,GAElCgiB,EAAW9mB,YAAY,aAAayV,OACpCuR,EAAWloB,SAAS,aAGpB,IAIMmoB,EAJFC,EAAwBJ,EAAWjiB,SAAS,6BAA6BqC,OAGxEggB,EAAsBxsB,SACrBusB,EAAQH,EAAWjiB,SAAS,QACDkiB,EAAeI,UAAU3oB,IAAI,SAAA4oB,GAAC,OAAIvvB,GAAAA,CAAEuvB,GAAGviB,SAAS,QAAQnK,SAG1D2sB,MAAM,SAAAC,GAAK,OAAIA,EAAQL,EAAMvsB,WACxDwsB,EAAwBD,EAAM/f,QACRhK,KAAK,0BAA2B,KAKtDgqB,EAAsBxsB,SACxBwsB,EAAsBpc,SACtBkc,EAAW1T,OAAO4T,M,sBAQtB,WACEtsB,KAAKC,SAASsB,IAAI,aAAaZ,KAAK,KAAKY,IAAI,aAAawD,MAAM0Y,Y,gCAIpE1e,EAAMoB,SAAW,CAOf0pB,SAAS,EAOTkB,YAAY,EAOZ4B,gBAAiB,iBAOjBC,eAAgB,kBAQhBC,eAAgB,gBAOhBC,cAAe,iBAOf/C,UAAU,EAOVM,WAAY,IAOZyB,cAAc,EAOdlB,OAAO,EAOPC,cAAc,EAOdZ,YAAY,EAOZX,eAAgB,kBAOhBE,WAAY,cAOZW,aAAc,gBAOda,UAAW,aAOXC,UAAW,iBAOXtB,QAAQ,I,sgDCliBV,IAAMoD,EAAY,CAAC,OAAQ,QAAS,MAAO,UACrCC,EAAsB,CAAC,MAAO,SAAU,UACxCC,EAAwB,CAAC,OAAQ,QAAS,UAE1CC,EAAa,CACjBC,KAAQH,EACRI,MAASJ,EACTthB,IAAOuhB,EACPI,OAAUJ,GAGZ,SAASK,EAASC,EAAMC,GAClBC,EAAaD,EAAMrmB,QAAQomB,GAC/B,OAAGE,IAAeD,EAAM1tB,OAAS,EACxB0tB,EAAM,GAENA,EAAMC,EAAa,G,IAKxBrS,E,iPAAqB1b,EAAAA,W,oMAWzB,WACEM,KAAK0tB,eAAiB,GACtB1tB,KAAKic,SAAsC,SAA1Bjc,KAAKJ,QAAQqc,SAAsBjc,KAAK2tB,sBAAwB3tB,KAAKJ,QAAQqc,SAC9Fjc,KAAKoc,UAAuC,SAA3Bpc,KAAKJ,QAAQwc,UAAuBpc,KAAK4tB,uBAAyB5tB,KAAKJ,QAAQwc,UAChGpc,KAAK6tB,iBAAmB7tB,KAAKic,SAC7Bjc,KAAK8tB,kBAAoB9tB,KAAKoc,Y,iCAGhC,WACE,MAAO,W,kCAGT,WACE,OAAOpc,KAAKic,UACV,IAAK,SACL,IAAK,MACH,OAAOgC,OAAAA,EAAAA,IAAAA,GAAQ,QAAU,OAC3B,IAAK,OACL,IAAK,QACH,MAAO,Y,yBAUb,WACKje,KAAK+tB,qBAAqB/tB,KAAKic,WAChCjc,KAAKic,SAAWqR,EAASttB,KAAKic,SAAU8Q,GACxC/sB,KAAKoc,UAAY8Q,EAAWltB,KAAKic,UAAU,IAE3Cjc,KAAKguB,a,sBAUT,WACEhuB,KAAKiuB,kBAAkBjuB,KAAKic,SAAUjc,KAAKoc,WAC3Cpc,KAAKoc,UAAYkR,EAASttB,KAAKoc,UAAW8Q,EAAWltB,KAAKic,a,+BAG5D,SAAkBA,EAAUG,GAC1Bpc,KAAK0tB,eAAezR,GAAYjc,KAAK0tB,eAAezR,IAAa,GACjEjc,KAAK0tB,eAAezR,GAAUhW,KAAKmW,K,iCAGrC,WAEE,IADA,IAAI8R,GAAc,EACV9zB,EAAI,EAAGA,EAAI2yB,EAAUjtB,OAAQ1F,IACnC8zB,EAAcA,GAAeluB,KAAK+tB,qBAAqBhB,EAAU3yB,IAEnE,OAAO8zB,I,kCAGT,SAAqBjS,GACnB,OAAOjc,KAAK0tB,eAAezR,IAAajc,KAAK0tB,eAAezR,GAAUnc,SAAWotB,EAAWjR,GAAUnc,S,yBAUxG,WACE,OAAOE,KAAKJ,QAAQ8d,U,yBAGtB,WACE,OAAO1d,KAAKJ,QAAQ+d,U,0BAGtB,SAAazS,EAASjL,EAAU2b,GAC9B,GAAqC,UAAlC1Q,EAAQ5I,KAAK,iBAA+B,OAAO,EAUtD,GARKtC,KAAKJ,QAAQge,eAEhB5d,KAAKic,SAAWjc,KAAK6tB,iBACrB7tB,KAAKoc,UAAYpc,KAAK8tB,mBAGxB7tB,EAASsL,OAAO/N,EAAAA,IAAI2wB,mBAAmBluB,EAAUiL,EAASlL,KAAKic,SAAUjc,KAAKoc,UAAWpc,KAAKouB,cAAepuB,KAAKquB,iBAE9GruB,KAAKJ,QAAQge,aAAc,CAI7B,IAHA,IAAI0Q,EAAa,IAEbC,EAAiB,CAACtS,SAAUjc,KAAKic,SAAUG,UAAWpc,KAAKoc,YACxDpc,KAAKwuB,uBAAuB,CACjC,IAAIC,EAAUjxB,EAAAA,IAAIkxB,YAAYzuB,EAAU2b,GAAS,GAAO,EAAO5b,KAAKJ,QAAQie,oBAC5E,GAAe,IAAZ4Q,EACD,OAGCA,EAAUH,IACXA,EAAaG,EACbF,EAAiB,CAACtS,SAAUjc,KAAKic,SAAUG,UAAWpc,KAAKoc,YAG7Dpc,KAAK2uB,cAEL1uB,EAASsL,OAAO/N,EAAAA,IAAI2wB,mBAAmBluB,EAAUiL,EAASlL,KAAKic,SAAUjc,KAAKoc,UAAWpc,KAAKouB,cAAepuB,KAAKquB,gBAIpHruB,KAAKic,SAAWsS,EAAetS,SAC/Bjc,KAAKoc,UAAYmS,EAAenS,UAChCnc,EAASsL,OAAO/N,EAAAA,IAAI2wB,mBAAmBluB,EAAUiL,EAASlL,KAAKic,SAAUjc,KAAKoc,UAAWpc,KAAKouB,cAAepuB,KAAKquB,sB,gCAMxHjT,EAAajb,SAAW,CAOtB8b,SAAU,OAOVG,UAAW,OASXwB,cAAc,EASdC,oBAAoB,EAOpBH,QAAS,EAOTC,QAAS,I,mmDClMX,IAAIiR,EAAc,CAChBC,KAAM,CACJC,SAAU,OACV1wB,O,6BAAUkB,KACVmQ,KAAU,SAACrR,EAAQ0D,GAAT,OAAoB1D,EAAO2wB,UAAUjtB,IAC/C4N,MAAU,KACV3D,OAAU,MAEZijB,UAAW,CACTF,SAAU,YACV1wB,OAAUE,EAAAA,UACVmR,KAAU,SAACrR,EAAQ0D,GAAT,OAAoB1D,EAAOwO,KAAK3P,GAAAA,CAAE6E,KAC5C4N,MAAU,SAACtR,EAAQ0D,GAAT,OAAoB1D,EAAOuO,GAAG1P,GAAAA,CAAE6E,KAC1CiK,OAAU,SAAC3N,EAAQ0D,GAAT,OAAoB1D,EAAO2N,OAAO9O,GAAAA,CAAE6E,OAa5CrC,E,iPAAgCC,EAAAA,W,iBACpC,SAAAD,EAAYE,EAASC,GAEnB,O,4FAF4B4V,CAAAxV,KAAAP,GAE5BwvB,EADAzuB,EAAA0uB,EAAA/b,KAAAnT,KAAML,EAASC,GACRY,EAAKZ,QAAQqS,QAAUzR,EAAK2uB,aAA5BC,EAAA5uB,I,mCAWT,SAAOb,EAASC,GACdI,KAAKC,SAAWhD,GAAAA,CAAE0C,GAClBK,KAAKC,SAASG,KAAK,eAAgBJ,MACnCA,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIT,EAAwBU,SAAUH,KAAKC,SAASG,OAAQR,GAEpFI,KAAKiiB,MAAQjiB,KAAKC,SAASG,KAAK,6BAChCJ,KAAKqvB,UAAY,KACjBrvB,KAAKsvB,YAAc,KACnBtvB,KAAKuvB,cAAgB,KACrBvvB,KAAKO,UAAY,0BACZP,KAAKC,SAASqC,KAAK,OACtBtC,KAAKC,SAASqC,KAAK,KAAKlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,4BAGzC4C,KAAK7B,QACL6B,KAAKqB,Y,mBAQP,WAIE,GAHA1D,EAAAA,WAAWQ,QAGe,iBAAf6B,KAAKiiB,MAAoB,CAOlC,IANA,IAAIuN,EAAY,GAGZvN,EAAQjiB,KAAKiiB,MAAM7b,MAAM,KAGpBhM,EAAI,EAAGA,EAAI6nB,EAAMniB,OAAQ1F,IAAK,CACrC,IAAIkoB,EAAOL,EAAM7nB,GAAGgM,MAAM,KACtBqpB,EAAyB,EAAdnN,EAAKxiB,OAAawiB,EAAK,GAAK,QACvCoN,EAA2B,EAAdpN,EAAKxiB,OAAawiB,EAAK,GAAKA,EAAK,GAElB,OAA5BsM,EAAYc,KACdF,EAAUC,GAAYb,EAAYc,IAItC1vB,KAAKiiB,MAAQuN,EAGfxvB,KAAK2vB,iBAEA1yB,EAAAA,EAAE2yB,cAAc5vB,KAAKiiB,QACxBjiB,KAAK6vB,uB,4BAIT,WAIE,IAFA,IAESjuB,KAFG5B,KACN8vB,WAAa,GACHlB,EACd,GAAIA,EAAYjnB,eAAe/F,GAAM,CACnC,IAAIgU,EAAMgZ,EAAYhtB,GACtB,IACE,IAESmuB,EAEDC,EAJJC,EAAchzB,GAAAA,CAAE,aAChBizB,EAAY,IAAIta,EAAIxX,OAAO6xB,EAPzBjwB,KAO2CJ,SACjD,IAASmwB,KAAUG,EAAUtwB,QACvBswB,EAAUtwB,QAAQ+H,eAAeooB,IAAsB,aAAXA,IAC1CC,EAASE,EAAUtwB,QAAQmwB,GAV7B/vB,KAWI8vB,WAAWC,GAAUC,GAG/BE,EAAUC,UAEZ,MAAMxuB,GACJ8K,QAAQkW,KAAR,oDAAAvf,OAAiEzB,Q,qBAWzE,WACE3B,KAAKowB,4BAA8BpwB,KAAK6vB,mBAAmB3a,KAAKlV,MAChE/C,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyBxB,KAAKowB,+B,gCAQ7C,WACE,IAAIC,EAAW9pB,EAAQvG,KAEvB/C,EAAAA,EAAE+D,KAAKhB,KAAKiiB,MAAO,SAASrgB,GACtBjE,EAAAA,WAAWgqB,QAAQ/lB,KACrByuB,EAAYzuB,KAKXyuB,IAGDrwB,KAAKuvB,yBAAyBvvB,KAAKiiB,MAAMoO,GAAWjyB,SAGxDnB,EAAAA,EAAE+D,KAAK4tB,EAAa,SAAShtB,EAAKkhB,GAChCvc,EAAMtG,SAASmF,YAAY0d,EAAMgM,YAInC9uB,KAAKC,SAASiE,SAASlE,KAAKiiB,MAAMoO,GAAWvB,UAGzC9uB,KAAKuvB,iBAEFvvB,KAAKuvB,cAActvB,SAASG,KAAK,aAAeJ,KAAKmvB,aAAanvB,KAAKuvB,cAActvB,SAASG,KAAK,WAAWJ,KAAKmvB,aACxHnvB,KAAKuvB,cAAcY,WAErBnwB,KAAKswB,cAActwB,KAAKiiB,MAAMoO,GAAWvB,UACzC9uB,KAAKsvB,YAActvB,KAAKiiB,MAAMoO,GAC9BrwB,KAAKuvB,cAAgB,IAAIvvB,KAAKsvB,YAAYlxB,OAAO4B,KAAKC,SAAUD,KAAKJ,SACrEI,KAAKmvB,YAAcnvB,KAAKuvB,cAActvB,SAASG,KAAK,gB,2BAItD,SAAcmwB,GACZ,IAOIC,EACAC,EAGAC,EACAC,EAmBEC,EA/BFrqB,EAAQvG,KAAM6wB,EAAa,YAC3BC,EAAU7zB,GAAAA,CAAE,sBAAsB+C,KAAKC,SAASqC,KAAK,MAAM,MAC3CuuB,EAAhBC,EAAQhxB,OAAqB,OAC7B+wB,KAAeN,IAIfC,EAAYjqB,EAAMupB,WAAWiB,WAAqC,aAClEN,EAAYlqB,EAAMupB,WAAWkB,YAAuC,aAExEhxB,KAAKC,SAASkR,WAAW,QACrBuf,EAAW1wB,KAAKC,SAASgK,SAAS,IAAIumB,EAAU,0BAA0BprB,YAAYorB,GAAWprB,YAAY,kBAAkB+L,WAAW,uBAC1Iwf,EAAYD,EAASzmB,SAAS,KAAK7E,YAAY,mBAEhC,SAAfyrB,GACFC,EAAUA,EAAQ7mB,SAAS,IAAIwmB,GAAWrrB,YAAYqrB,GAAWtf,WAAW,QAAQA,WAAW,eAAeA,WAAW,oBACjHlH,SAAS,KAAKkH,WAAW,QAAQA,WAAW,iBAAiBA,WAAW,iBAEhF2f,EAAUJ,EAASzmB,SAAS,sBAAsB7E,YAAY,qBAGhE0rB,EAAQxpB,IAAI,CAACqjB,QAAQ,GAAGsG,WAAW,KACnCP,EAASppB,IAAI,CAACqjB,QAAQ,GAAGsG,WAAW,KACtB,cAAVV,EACFO,EAAQ9vB,KAAK,SAASY,EAAIkhB,GACxB7lB,GAAAA,CAAE6lB,GAAOoO,SAASR,EAAS5O,IAAIlgB,IAAMsC,SAAS,qBAAqB5B,KAAK,mBAAmB,IAAI8C,YAAY,aAAakC,IAAI,CAACgT,OAAO,KACpIrd,GAAAA,CAAE,sBAAsBsJ,EAAMtG,SAASqC,KAAK,MAAM,KAAKuM,MAAM,6BAA6BtI,EAAMtG,SAASqC,KAAK,MAAM,YAAY4N,SAChIwgB,EAASxsB,SAAS,kBAAkB5B,KAAK,sBAAsB,IAC/DquB,EAAUzsB,SAAS,qBAEF,SAAVqsB,IACLK,EAAe3zB,GAAAA,CAAE,sBAAsBsJ,EAAMtG,SAASqC,KAAK,MAAM,MACjE6uB,EAAel0B,GAAAA,CAAE,qBAAqBsJ,EAAMtG,SAASqC,KAAK,QAC7CxC,QACf8wB,EAAe3zB,GAAAA,CAAE,oCAAoC2pB,YAAYuK,GAAc7uB,KAAK,oBAAoBiE,EAAMtG,SAASqC,KAAK,OAC5H6uB,EAAahhB,UAEbygB,EAAe3zB,GAAAA,CAAE,oCAAoC2pB,YAAYrgB,EAAMtG,UAAUqC,KAAK,oBAAoBiE,EAAMtG,SAASqC,KAAK,OAEhIwuB,EAAQ9vB,KAAK,SAASY,EAAIkhB,GACxB,IAAIsO,EAAYn0B,GAAAA,CAAE6lB,GAAOoO,SAASN,GAAc1sB,SAASusB,GACrDxlB,EAAO0lB,EAAU7O,IAAIlgB,GAAKqJ,KAAKiI,MAAM,GACrCpQ,EAAK7F,GAAAA,CAAE6lB,GAAOxgB,KAAK,OAASlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,aAC3C6N,IAASnI,IACE,KAATmI,EACFhO,GAAAA,CAAE6lB,GAAOxgB,KAAK,KAAK2I,IAEnBA,EAAOnI,EACP7F,GAAAA,CAAE6lB,GAAOxgB,KAAK,KAAK2I,GACnBhO,GAAAA,CAAE0zB,EAAU7O,IAAIlgB,IAAMU,KAAK,OAAOrF,GAAAA,CAAE0zB,EAAU7O,IAAIlgB,IAAMU,KAAK,QAAQqR,QAAQ,IAAI,IAAI,IAAI1I,KAG9EhO,GAAAA,CAAEyzB,EAAS5O,IAAIlgB,IAAMwJ,SAAS,cAE3CgmB,EAAUltB,SAAS,eAGvBwsB,EAASxsB,SAASssB,O,kBAWtB,WACuE,IAAAa,EAArE,GAAIrxB,KAAKsvB,aAAgD,mBAA1BtvB,KAAKsvB,YAAY7f,KAC9C,OAAO4hB,EAAArxB,KAAKsvB,aAAY7f,KAAjB6D,MAAA+d,EAAA,CAAsBrxB,KAAKuvB,eAA3BnsB,OAAA4P,MAAAC,UAAAC,MAAAC,KAA6CtT,e,mBAUxD,WACwE,IAAAyxB,EAAtE,GAAItxB,KAAKsvB,aAAiD,mBAA3BtvB,KAAKsvB,YAAY5f,MAC9C,OAAO4hB,EAAAtxB,KAAKsvB,aAAY5f,MAAjB4D,MAAAge,EAAA,CAAuBtxB,KAAKuvB,eAA5BnsB,OAAA4P,MAAAC,UAAAC,MAAAC,KAA8CtT,e,oBAUzD,WACyE,IAAA0xB,EAAvE,GAAIvxB,KAAKsvB,aAAkD,mBAA5BtvB,KAAKsvB,YAAYvjB,OAC9C,OAAOwlB,EAAAvxB,KAAKsvB,aAAYvjB,OAAjBuH,MAAAie,EAAA,CAAwBvxB,KAAKuvB,eAA7BnsB,OAAA4P,MAAAC,UAAAC,MAAAC,KAA+CtT,e,sBAQ1D,WACMG,KAAKuvB,eAAevvB,KAAKuvB,cAAcY,UAC3ClzB,GAAAA,CAAE3C,QAAQiH,IAAI,wBAAyBvB,KAAKowB,kC,gCAIhD3wB,EAAwBU,SAAW,I,2pDCtRnC,IAAIyuB,EAAc,CAChB4C,SAAU,CACR1C,SAAU,WACV1wB,OAAQM,EAAAA,cAEX+yB,UAAW,CACR3C,SAAU,YACV1wB,OAAQI,EAAAA,WAEVwwB,UAAW,CACTF,SAAU,iBACV1wB,OAAQG,EAAAA,gBAcNS,E,iPAAuBU,EAAAA,W,qMAS3B,SAAOC,GACLK,KAAKC,SAAWhD,GAAAA,CAAE0C,GAClBK,KAAKiiB,MAAQjiB,KAAKC,SAASG,KAAK,mBAChCJ,KAAKqvB,UAAY,KACjBrvB,KAAKuvB,cAAgB,KACrBvvB,KAAKO,UAAY,iBAEjBP,KAAK7B,QACL6B,KAAKqB,Y,mBAQP,WAIE,GAFA1D,EAAAA,WAAWQ,QAEe,iBAAf6B,KAAKiiB,MAAoB,CAOlC,IANA,IAAIuN,EAAY,GAGZvN,EAAQjiB,KAAKiiB,MAAM7b,MAAM,KAGpBhM,EAAI,EAAGA,EAAI6nB,EAAMniB,OAAQ1F,IAAK,CACrC,IAAIkoB,EAAOL,EAAM7nB,GAAGgM,MAAM,KACtBqpB,EAAyB,EAAdnN,EAAKxiB,OAAawiB,EAAK,GAAK,QACvCoN,EAA2B,EAAdpN,EAAKxiB,OAAawiB,EAAK,GAAKA,EAAK,GAElB,OAA5BsM,EAAYc,KACdF,EAAUC,GAAYb,EAAYc,IAItC1vB,KAAKiiB,MAAQuN,EAGVvyB,EAAAA,EAAE2yB,cAAc5vB,KAAKiiB,QACxBjiB,KAAK6vB,qBAGP7vB,KAAKC,SAASqC,KAAK,cAAgBtC,KAAKC,SAASqC,KAAK,gBAAkBlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,sB,qBAQzF,WACE,IAAImJ,EAAQvG,KAEZ/C,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyB,WACpC+E,EAAMspB,yB,gCAYV,WACE,IAAIQ,EAAW9pB,EAAQvG,KAEvB/C,EAAAA,EAAE+D,KAAKhB,KAAKiiB,MAAO,SAASrgB,GACtBjE,EAAAA,WAAWgqB,QAAQ/lB,KACrByuB,EAAYzuB,KAKXyuB,IAGDrwB,KAAKuvB,yBAAyBvvB,KAAKiiB,MAAMoO,GAAWjyB,SAGxDnB,EAAAA,EAAE+D,KAAK4tB,EAAa,SAAShtB,EAAKkhB,GAChCvc,EAAMtG,SAASmF,YAAY0d,EAAMgM,YAInC9uB,KAAKC,SAASiE,SAASlE,KAAKiiB,MAAMoO,GAAWvB,UAGzC9uB,KAAKuvB,eAAevvB,KAAKuvB,cAAcY,UAC3CnwB,KAAKuvB,cAAgB,IAAIvvB,KAAKiiB,MAAMoO,GAAWjyB,OAAO4B,KAAKC,SAAU,Q,sBAOvE,WACED,KAAKuvB,cAAcY,UACnBlzB,GAAAA,CAAE3C,QAAQiH,IAAI,2B,gCAIlBvC,EAAemB,SAAW,I,ijDCzIpBlB,E,iPAAyBS,EAAAA,W,qMAS7B,SAAOC,EAASC,GACdI,KAAKC,SAAWhD,GAAAA,CAAE0C,GAClBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIjB,EAAiBkB,SAAUH,KAAKC,SAASG,OAAQR,GAC7EI,KAAKO,UAAY,mBAEjBP,KAAK7B,QACL6B,KAAKqB,Y,mBAQP,WACE1D,EAAAA,WAAWQ,QACX,IAcM8C,EAdFywB,EAAW1xB,KAAKC,SAASG,KAAK,qBAC7BsxB,GACHjlB,QAAQtL,MAAM,oEAGhBnB,KAAK2xB,YAAc10B,GAAAA,CAAC,IAAAmG,OAAKsuB,IACzB1xB,KAAK4xB,SAAW5xB,KAAKC,SAASU,KAAK,iBAAiBiE,OAAO,WACzD,IAAI9C,EAAS7E,GAAAA,CAAE+C,MAAMI,KAAK,UAC1B,OAAQ0B,IAAW4vB,GAAuB,KAAX5vB,IAEjC9B,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIF,KAAKJ,QAASI,KAAK2xB,YAAYvxB,QAGxDJ,KAAKJ,QAAQ4L,UACVvK,EAAQjB,KAAKJ,QAAQ4L,QAAQpF,MAAM,KAEvCpG,KAAK6xB,YAAc5wB,EAAM,GACzBjB,KAAK8xB,aAAe7wB,EAAM,IAAM,MAGlCjB,KAAK+xB,Y,qBAQP,WACE/xB,KAAKgyB,iBAAmBhyB,KAAK+xB,QAAQ7c,KAAKlV,MAE1C/C,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyBxB,KAAKgyB,kBAE3ChyB,KAAK4xB,SAASpwB,GAAG,4BAA6BxB,KAAKiyB,WAAW/c,KAAKlV,S,qBAQrE,WAEOrC,EAAAA,WAAWgqB,QAAQ3nB,KAAKJ,QAAQsyB,UAOnClyB,KAAKC,SAASwd,OACdzd,KAAK2xB,YAAYvG,SAPjBprB,KAAKC,SAASmrB,OACdprB,KAAK2xB,YAAYlU,U,wBAerB,WAAa,IAAAlX,EAAAvG,KACNrC,EAAAA,WAAWgqB,QAAQ3nB,KAAKJ,QAAQsyB,WAKhClyB,KAAKJ,QAAQ4L,QACVxL,KAAK2xB,YAAY5rB,GAAG,WACtBnI,EAAAA,OAAOmuB,UAAU/rB,KAAK2xB,YAAa3xB,KAAK6xB,YAAa,WACnDtrB,EAAKtG,SAAS4G,QAAQ,+BACtBN,EAAKorB,YAAYhxB,KAAK,iBAAiBgW,eAAe,yBAIxD/Y,EAAAA,OAAOouB,WAAWhsB,KAAK2xB,YAAa3xB,KAAK8xB,aAAc,WACrDvrB,EAAKtG,SAAS4G,QAAQ,kCAK1B7G,KAAK2xB,YAAY5lB,OAAO,GACxB/L,KAAK2xB,YAAYhxB,KAAK,iBAAiBkG,QAAQ,uBAC/C7G,KAAKC,SAAS4G,QAAQ,mC,sBAK5B,WACE7G,KAAKC,SAASsB,IAAI,wBAClBvB,KAAK4xB,SAASrwB,IAAI,wBAElBtE,GAAAA,CAAE3C,QAAQiH,IAAI,wBAAyBvB,KAAKgyB,uB,gCAIhD/yB,EAAiBkB,SAAW,CAO1B+xB,QAAS,SAQT1mB,SAAS,I,urDCjILtM,E,iPAAeQ,EAAAA,W,qMAQnB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIhB,EAAOiB,SAAUH,KAAKC,SAASG,OAAQR,GACnEI,KAAKO,UAAY,SACjBP,KAAK7B,QAGLH,EAAAA,MAAMC,KAAKhB,EAAAA,GACXiB,EAAAA,SAASD,KAAKhB,EAAAA,GAEdS,EAAAA,SAAS8L,SAAS,SAAU,CAC1BwE,OAAU,Y,mBAQd,WAAQ,IAAAxN,EAAAR,KACNrC,EAAAA,WAAWQ,QACX6B,KAAK8C,GAAK9C,KAAKC,SAASqC,KAAK,MAC7BtC,KAAKuO,UAAW,EAChBvO,KAAKmyB,OAAS,CAACC,GAAIz0B,EAAAA,WAAW00B,SAE9BryB,KAAKkL,QAAUjO,GAAAA,CAAC,eAAAmG,OAAgBpD,KAAK8C,GAArB,OAA6BhD,OAAS7C,GAAAA,CAAC,eAAAmG,OAAgBpD,KAAK8C,GAArB,OAA+B7F,GAAAA,CAAC,iBAAAmG,OAAkBpD,KAAK8C,GAAvB,OACvF9C,KAAKkL,QAAQ5I,KAAK,CAChB+H,gBAAiBrK,KAAK8C,GACtB2Y,gBAAiB,SACjBlD,SAAY,KAGVvY,KAAKJ,QAAQ0yB,YAActyB,KAAKC,SAASmL,SAAS,WACpDpL,KAAKJ,QAAQ0yB,YAAa,EAC1BtyB,KAAKJ,QAAQ4mB,SAAU,GAErBxmB,KAAKJ,QAAQ4mB,UAAYxmB,KAAK2mB,WAChC3mB,KAAK2mB,SAAW3mB,KAAKuyB,aAAavyB,KAAK8C,KAGzC9C,KAAKC,SAASqC,KAAK,CACfiI,KAAQ,SACRE,eAAe,EACf+Q,gBAAiBxb,KAAK8C,GACtBgZ,cAAe9b,KAAK8C,KAGrB9C,KAAK2mB,SACN3mB,KAAKC,SAASiQ,SAASghB,SAASlxB,KAAK2mB,WAErC3mB,KAAKC,SAASiQ,SAASghB,SAASj0B,GAAAA,CAAE+C,KAAKJ,QAAQsxB,WAC/ClxB,KAAKC,SAASiE,SAAS,oBAEzBlE,KAAKqB,UACDrB,KAAKJ,QAAQiM,UAAYvR,OAAO0Q,SAASC,OAAhB,IAAA7H,OAA+BpD,KAAK8C,MAC/D9C,KAAK6kB,eAAiBtnB,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,WAAA,OAAMkG,EAAKiP,Y,0BAQvD,WACE,IAAI+iB,EAA2B,GAM/B,OAJIxyB,KAAKJ,QAAQ4yB,2BACfA,EAA2B,IAAMxyB,KAAKJ,QAAQ4yB,0BAGzCv1B,GAAAA,CAAE,eACNiH,SAAS,iBAAmBsuB,GAC5BtB,SAASlxB,KAAKJ,QAAQsxB,Y,6BAQ3B,WACE,IAAIhW,EAAQlb,KAAKC,SAASwyB,aACtBA,EAAax1B,GAAAA,CAAE3C,QAAQ4gB,QACvBZ,EAASta,KAAKC,SAASyyB,cACvBA,EAAcz1B,GAAAA,CAAE3C,QAAQggB,SAClB5O,EAAM,KAEdyhB,EAD2B,SAAzBntB,KAAKJ,QAAQ+d,QACRzV,UAAUuqB,EAAavX,GAAS,EAAG,IAEnChT,SAASlI,KAAKJ,QAAQ+d,QAAS,IAEX,SAAzB3d,KAAKJ,QAAQ8d,QAEbhS,EADWgnB,EAATpY,EACIpS,SAASmH,KAAKE,IAAI,IAAKmjB,EAAc,IAAK,IAE1CxqB,UAAUwqB,EAAcpY,GAAU,EAAG,IAEX,OAAzBta,KAAKJ,QAAQ8d,UACtBhS,EAAMxD,SAASlI,KAAKJ,QAAQ8d,QAAS,KAG3B,OAARhS,GACF1L,KAAKC,SAASqH,IAAI,CAACoE,IAAKA,EAAM,OAK3B1L,KAAK2mB,UAAsC,SAAzB3mB,KAAKJ,QAAQ+d,UAClC3d,KAAKC,SAASqH,IAAI,CAAC6lB,KAAMA,EAAO,OAChCntB,KAAKC,SAASqH,IAAI,CAACqrB,OAAQ,W,qBAS/B,WAAU,IAAArxB,EAAAtB,KACJuG,EAAQvG,KAEZA,KAAKC,SAASuB,GAAG,CACf+a,kBAAmBvc,KAAKyP,KAAKyF,KAAKlV,MAClCwc,mBAAoB,SAAC0L,EAAOjoB,GAC1B,GAAKioB,EAAMpmB,SAAWyE,EAAMtG,SAAS,IAChChD,GAAAA,CAAEirB,EAAMpmB,QAAQ0N,QAAQ,mBAAmB,KAAOvP,EACrD,OAAOqB,EAAKoO,MAAM4D,MAAMhS,IAG5Bmb,oBAAqBzc,KAAK+L,OAAOmJ,KAAKlV,MACtC0c,sBAAuB,WACrBnW,EAAMqsB,qBAIN5yB,KAAKJ,QAAQ2Z,cAAgBvZ,KAAKJ,QAAQ4mB,SAC5CxmB,KAAK2mB,SAASplB,IAAI,cAAcC,GAAG,oCAAqC,SAASG,GAC3EA,EAAEG,SAAWyE,EAAMtG,SAAS,KAC9BhD,EAAAA,EAAEwc,SAASlT,EAAMtG,SAAS,GAAI0B,EAAEG,SAC7B7E,EAAAA,EAAEwc,SAASjD,SAAU7U,EAAEG,SAG5ByE,EAAMmJ,UAGN1P,KAAKJ,QAAQiM,UACf5O,GAAAA,CAAE3C,QAAQkH,GAAV,wBAAA4B,OAAqCpD,KAAK8C,IAAM9C,KAAK6yB,aAAa3d,KAAKlV,S,0BAQ3E,WACK1F,OAAO0Q,SAASC,OAAW,IAAMjL,KAAK8C,IAAQ9C,KAAKuO,SAChDvO,KAAK0P,QADsD1P,KAAKyP,S,4BAQxE,SAAehE,GACbA,EAAYA,GAAaxO,GAAAA,CAAE3C,QAAQmR,YAC/BxO,GAAAA,CAAEuZ,UAAU8D,SAAWrd,GAAAA,CAAE3C,QAAQggB,UACnCrd,GAAAA,CAAE,QACCqK,IAAI,OAAQmE,K,2BAQnB,SAAcA,GACZA,EAAYA,GAAavD,SAASjL,GAAAA,CAAE,QAAQqK,IAAI,OAAQ,IACpDrK,GAAAA,CAAEuZ,UAAU8D,SAAWrd,GAAAA,CAAE3C,QAAQggB,WACnCrd,GAAAA,CAAE,QACCqK,IAAI,MAAO,IACdrK,GAAAA,CAAE3C,QAAQmR,WAAWA,M,kBAWzB,WAAO,IAAA5I,EAAA7C,KAECiL,EAAI,IAAA7H,OAAOpD,KAAK8C,IAClB9C,KAAKJ,QAAQiM,UAAYvR,OAAO0Q,SAASC,OAASA,IAEhD3Q,OAAOwS,QAAQC,UACb/M,KAAKJ,QAAQiN,cACfvS,OAAOwS,QAAQC,UAAU,GAAI,GAAI9B,GAEjC3Q,OAAOwS,QAAQE,aAAa,GAAI,GAAI/B,GAGtC3Q,OAAO0Q,SAASC,KAAOA,GAK3BjL,KAAK8yB,cAAgB71B,GAAAA,CAAEuZ,SAASuc,eAAehtB,GAAG/F,KAAKkL,SAAWjO,GAAAA,CAAEuZ,SAASuc,eAAiB/yB,KAAKkL,QAEnGlL,KAAKuO,UAAW,EAGhBvO,KAAKC,SACAqH,IAAI,CAAE2pB,WAAc,WACpB7F,OACA3f,UAAU,GACXzL,KAAKJ,QAAQ4mB,SACfxmB,KAAK2mB,SAASrf,IAAI,CAAC2pB,WAAc,WAAW7F,OAG9CprB,KAAK4yB,kBAEL5yB,KAAKC,SACFwd,OACAnW,IAAI,CAAE2pB,WAAc,KAEpBjxB,KAAK2mB,WACN3mB,KAAK2mB,SAASrf,IAAI,CAAC2pB,WAAc,KAAKxT,OACnCzd,KAAKC,SAASmL,SAAS,QACxBpL,KAAK2mB,SAASziB,SAAS,QACdlE,KAAKC,SAASmL,SAAS,SAChCpL,KAAK2mB,SAASziB,SAAS,SAKtBlE,KAAKJ,QAAQozB,gBAMhBhzB,KAAKC,SAAS4G,QAAQ,oBAAqB7G,KAAK8C,IAGd,IAAhC7F,GAAAA,CAAE,mBAAmB6C,QACvBE,KAAKizB,iBAGP,IAAI1sB,EAAQvG,KAGRA,KAAKJ,QAAQiyB,aAWX7xB,KAAKJ,QAAQ4mB,SACf5oB,EAAAA,OAAOmuB,UAAU/rB,KAAK2mB,SAAU,WAElC/oB,EAAAA,OAAOmuB,UAAU/rB,KAAKC,SAAUD,KAAKJ,QAAQiyB,YAAa,WACrDhvB,EAAK5C,WACN4C,EAAKqwB,kBAAoBx1B,EAAAA,SAAS2f,cAAcxa,EAAK5C,UAdvDsG,EAAMtG,SACHqC,KAAK,CACJmI,eAAe,EACf8N,UAAa,IAEdpM,QACH5F,EAAM4sB,oBACNz1B,EAAAA,SAAS6f,UAAUhX,EAAMtG,eAcvBD,KAAKJ,QAAQ4mB,SACfxmB,KAAK2mB,SAASyE,KAAK,GAErBprB,KAAKC,SAASmrB,KAAKprB,KAAKJ,QAAQwzB,YAIlCpzB,KAAKC,SACFqC,KAAK,CACJmI,eAAe,EACf8N,UAAa,IAEdpM,QACHzO,EAAAA,SAAS6f,UAAUvd,KAAKC,UAExBD,KAAKmzB,oBAELnzB,KAAKqzB,sBAMLrzB,KAAKC,SAAS4G,QAAQ,oB,+BAcxB,WAC+B,SAAvBysB,IACJr2B,GAAAA,CAAE,QAAQs2B,YAAY,mBAAoBt2B,GAAAA,CAAEuZ,UAAU8D,SAAWrd,GAAAA,CAAE3C,QAAQggB,WAG7Eta,KAAKC,SAASuB,GAAG,8CAAqD8xB,GACtEA,IACAr2B,GAAAA,CAAE,QAAQiH,SAAS,oB,kCAOrB,WACElE,KAAKC,SAASsB,IAAI,+CAClBtE,GAAAA,CAAE,QAAQmI,YAAY,kBACtBnI,GAAAA,CAAE,QAAQmI,YAAY,mB,iCAOxB,WACE,IAAImB,EAAQvG,KACRA,KAAKC,WACTD,KAAKkzB,kBAAoBx1B,EAAAA,SAAS2f,cAAcrd,KAAKC,UAEhDD,KAAKJ,QAAQ4mB,UAAWxmB,KAAKJ,QAAQ2Z,cAAiBvZ,KAAKJ,QAAQ0yB,YACtEr1B,GAAAA,CAAE,QAAQuE,GAAG,oCAAqC,SAASG,GACrDA,EAAEG,SAAWyE,EAAMtG,SAAS,KAC9BhD,EAAAA,EAAEwc,SAASlT,EAAMtG,SAAS,GAAI0B,EAAEG,SAC7B7E,EAAAA,EAAEwc,SAASjD,SAAU7U,EAAEG,SAC5ByE,EAAMmJ,UAIN1P,KAAKJ,QAAQ4zB,YACfv2B,GAAAA,CAAE3C,QAAQkH,GAAG,oBAAqB,SAASG,GACzCjE,EAAAA,SAASsO,UAAUrK,EAAG,SAAU,CAC9B+N,MAAO,WACDnJ,EAAM3G,QAAQ4zB,YAChBjtB,EAAMmJ,gB,mBAalB,WACE,IAAK1P,KAAKuO,WAAavO,KAAKC,SAAS8F,GAAG,YACtC,OAAO,EAET,IAwEU0tB,EAxENltB,EAAQvG,KAiCZ,SAAS0zB,IAKP,IAAIjoB,EAAYvD,SAASjL,GAAAA,CAAE,QAAQqK,IAAI,OAAQ,IAEV,IAAjCrK,GAAAA,CAAE,mBAAmB6C,QACvByG,EAAMotB,uBAGRj2B,EAAAA,SAAS8f,aAAajX,EAAMtG,UAE5BsG,EAAMtG,SAASqC,KAAK,eAAe,GAEE,IAAjCrF,GAAAA,CAAE,mBAAmB6C,QACvByG,EAAMqtB,cAAcnoB,GAOtBlF,EAAMtG,SAAS4G,QAAQ,oBArDrB7G,KAAKJ,QAAQkyB,cACX9xB,KAAKJ,QAAQ4mB,SACf5oB,EAAAA,OAAOouB,WAAWhsB,KAAK2mB,SAAU,YAGnC/oB,EAAAA,OAAOouB,WAAWhsB,KAAKC,SAAUD,KAAKJ,QAAQkyB,aAAc4B,KAI5D1zB,KAAKC,SAASwd,KAAKzd,KAAKJ,QAAQi0B,WAE5B7zB,KAAKJ,QAAQ4mB,QACfxmB,KAAK2mB,SAASlJ,KAAK,EAAGiW,GAGtBA,KAKA1zB,KAAKJ,QAAQ4zB,YACfv2B,GAAAA,CAAE3C,QAAQiH,IAAI,sBAGXvB,KAAKJ,QAAQ4mB,SAAWxmB,KAAKJ,QAAQ2Z,cACxCtc,GAAAA,CAAE,QAAQsE,IAAI,qCAGhBvB,KAAKC,SAASsB,IAAI,qBAgCdvB,KAAKJ,QAAQk0B,cACf9zB,KAAKC,SAASmjB,KAAKpjB,KAAKC,SAASmjB,QAGnCpjB,KAAKuO,UAAW,EAEZhI,EAAM3G,QAAQiM,UAAYvR,OAAO0Q,SAASC,OAAhB,IAAA7H,OAA6BpD,KAAK8C,MAE1DxI,OAAOwS,QAAQE,cACXymB,EAAiBn5B,OAAO0Q,SAAS4a,SAAWtrB,OAAO0Q,SAAS6a,OAC9D7lB,KAAKJ,QAAQiN,cACfvS,OAAOwS,QAAQC,UAAU,GAAI,GAAI0mB,GAEjCn5B,OAAOwS,QAAQE,aAAa,GAAIwJ,SAASud,MAAON,IAGlDn5B,OAAO0Q,SAASC,KAAO,IAI3BjL,KAAK8yB,cAAc3mB,U,oBAOrB,WACMnM,KAAKuO,SACPvO,KAAK0P,QAEL1P,KAAKyP,S,sBAQT,WACMzP,KAAKJ,QAAQ4mB,UACfxmB,KAAKC,SAASixB,SAASj0B,GAAAA,CAAE+C,KAAKJ,QAAQsxB,WACtClxB,KAAK2mB,SAASlJ,OAAOlc,MAAM4O,UAE7BnQ,KAAKC,SAASwd,OAAOlc,MACrBvB,KAAKkL,QAAQ3J,IAAI,OACjBtE,GAAAA,CAAE3C,QAAQiH,IAAV,cAAA6B,OAA4BpD,KAAK8C,KAC7B9C,KAAK6kB,gBAAgB5nB,GAAAA,CAAE3C,QAAQiH,IAAIvB,KAAK6kB,gBAEP,IAAjC5nB,GAAAA,CAAE,mBAAmB6C,QACvBE,KAAK2zB,4B,gCAKXz0B,EAAOiB,SAAW,CAOhB0xB,YAAa,GAObC,aAAc,GAOdsB,UAAW,EAOXS,UAAW,EAOXta,cAAc,EAOdia,YAAY,EAOZR,gBAAgB,EAOhBtV,QAAS,OAOTC,QAAS,OAOT2U,YAAY,EAOZ9L,SAAS,EAOTsN,cAAc,EAQdjoB,UAAU,EAMVgB,eAAe,EAOfqkB,SAAU,OAOVsB,yBAA0B,K,6oDCnmBtBrzB,E,iPAAeO,EAAAA,W,qMAQnB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIf,EAAOgB,SAAUH,KAAKC,SAASG,OAAQR,GACnEI,KAAKO,UAAY,SACjBP,KAAKiH,aAAc,EAGnBjJ,EAAAA,MAAMC,KAAKhB,EAAAA,GACXiB,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,QAELT,EAAAA,SAAS8L,SAAS,SAAU,CAC1B4f,IAAO,CACLtb,YAAe,WACflE,SAAY,WACZD,WAAc,WACdoE,WAAc,WACdimB,kBAAqB,eACrBC,eAAkB,eAClBC,iBAAoB,eACpBC,iBAAoB,eACpBtqB,KAAQ,MACRC,IAAO,OAET5M,IAAO,CACL6Q,WAAc,WACdD,YAAe,WACfqmB,iBAAoB,eACpBH,kBAAqB,oB,mBAU3B,WACEh0B,KAAKo0B,OAASp0B,KAAKC,SAASU,KAAK,SACjCX,KAAKq0B,QAAUr0B,KAAKC,SAASU,KAAK,wBAElCX,KAAKs0B,QAAUt0B,KAAKq0B,QAAQjlB,GAAG,GAC/BpP,KAAKu0B,OAASv0B,KAAKo0B,OAAOt0B,OAASE,KAAKo0B,OAAOhlB,GAAG,GAAKnS,GAAAA,CAAC,IAAAmG,OAAKpD,KAAKs0B,QAAQhyB,KAAK,mBAC/EtC,KAAKw0B,MAAQx0B,KAAKC,SAASU,KAAK,sBAAsB2G,IAAItH,KAAKJ,QAAQ60B,SAAW,SAAW,QAAS,IAElGz0B,KAAKJ,QAAQ80B,UAAY10B,KAAKC,SAASmL,SAASpL,KAAKJ,QAAQ+0B,kBAC/D30B,KAAKJ,QAAQ80B,UAAW,EACxB10B,KAAKC,SAASiE,SAASlE,KAAKJ,QAAQ+0B,gBAEjC30B,KAAKo0B,OAAOt0B,SACfE,KAAKo0B,OAASn3B,GAAAA,GAAIkG,IAAInD,KAAKu0B,QAC3Bv0B,KAAKJ,QAAQg1B,SAAU,GAGzB50B,KAAK60B,aAAa,GAEd70B,KAAKq0B,QAAQ,KACfr0B,KAAKJ,QAAQk1B,aAAc,EAC3B90B,KAAK+0B,SAAW/0B,KAAKq0B,QAAQjlB,GAAG,GAChCpP,KAAKg1B,QAA+B,EAArBh1B,KAAKo0B,OAAOt0B,OAAaE,KAAKo0B,OAAOhlB,GAAG,GAAKnS,GAAAA,CAAC,IAAAmG,OAAKpD,KAAK+0B,SAASzyB,KAAK,mBAEhFtC,KAAKo0B,OAAO,KACfp0B,KAAKo0B,OAASp0B,KAAKo0B,OAAOjxB,IAAInD,KAAKg1B,UAIrCh1B,KAAK60B,aAAa,IAIpB70B,KAAKi1B,aAELj1B,KAAKqB,UACLrB,KAAKiH,aAAc,I,wBAGrB,WAAa,IAAAzG,EAAAR,KACRA,KAAKq0B,QAAQ,GACdr0B,KAAKk1B,cAAcl1B,KAAKs0B,QAASt0B,KAAKo0B,OAAOhlB,GAAG,GAAGzM,MAAO,WACxDnC,EAAK00B,cAAc10B,EAAKu0B,SAAUv0B,EAAK4zB,OAAOhlB,GAAG,GAAGzM,SAGtD3C,KAAKk1B,cAAcl1B,KAAKs0B,QAASt0B,KAAKo0B,OAAOhlB,GAAG,GAAGzM,S,qBAIvD,WACE3C,KAAKi1B,e,uBAOP,SAAUnS,GACR,IAAIqS,GAAmBrS,EAAQ9iB,KAAKJ,QAAQqV,QAAOjV,KAAKJ,QAAQmF,IAAM/E,KAAKJ,QAAQqV,OAEnF,OAAOjV,KAAKJ,QAAQw1B,uBACpB,IAAK,MACHD,EAAWn1B,KAAKq1B,cAAcF,GAC9B,MACF,IAAK,MACHA,EAAWn1B,KAAKs1B,cAAcH,GAIhC,OAAOA,EAASI,QAAQ,K,oBAQ1B,SAAOJ,GACL,OAAOn1B,KAAKJ,QAAQw1B,uBACpB,IAAK,MACHD,EAAWn1B,KAAKs1B,cAAcH,GAC9B,MACF,IAAK,MACHA,EAAWn1B,KAAKq1B,cAAcF,GAIhC,IAIErS,EAHE9iB,KAAKJ,QAAQ60B,SAGPliB,WAAWvS,KAAKJ,QAAQmF,KAAOowB,GAAYn1B,KAAKJ,QAAQqV,MAAQjV,KAAKJ,QAAQmF,MAE5E/E,KAAKJ,QAAQmF,IAAM/E,KAAKJ,QAAQqV,OAASkgB,EAAW5iB,WAAWvS,KAAKJ,QAAQqV,OAGvF,OAAO6N,I,2BAQT,SAAcA,GACZ,OA8hBaiD,EA9hBE/lB,KAAKJ,QAAQ41B,cA8hBT1S,EA9hB0BA,GAAO9iB,KAAKJ,QAAQ41B,cAAc,GAAI,EA+hB9EnmB,KAAKomB,IAAI3S,GAAOzT,KAAKomB,IAAI1P,GADlC,IAAiBA,I,2BAthBf,SAAcjD,GACZ,OAAQzT,KAAKqmB,IAAI11B,KAAKJ,QAAQ41B,cAAe1S,GAAS,IAAM9iB,KAAKJ,QAAQ41B,cAAgB,K,2BAa3F,SAAcG,EAAO3qB,EAAU6L,GAE7B,IAsBItQ,EAEAqvB,EACAC,EACAC,EAGAX,EAIAY,EAIAzuB,EAME0uB,EAIAC,EAsBFC,EArEAl2B,KAAKC,SAASmL,SAASpL,KAAKJ,QAAQ+0B,kBAIxC3pB,EAAWuH,WAAWvH,IAGPhL,KAAKJ,QAAQqV,MAASjK,EAAWhL,KAAKJ,QAAQqV,MACpDjK,EAAWhL,KAAKJ,QAAQmF,MAAOiG,EAAWhL,KAAKJ,QAAQmF,MAE5DoxB,EAAQn2B,KAAKJ,QAAQk1B,eAKrB9pB,EAFgC,IAA9BhL,KAAKq0B,QAAQ3Z,MAAMib,IACjBS,EAAQ7jB,WAAWvS,KAAK+0B,SAASzyB,KAAK,oBAC/B0I,EAAoBorB,EAAQp2B,KAAKJ,QAAQy2B,KAAOrrB,EAGhDA,IADPsrB,EAAQ/jB,WAAWvS,KAAKs0B,QAAQhyB,KAAK,mBACVg0B,EAAQt2B,KAAKJ,QAAQy2B,KAAOrrB,GAK3DurB,GADAhwB,EAAQvG,MACIJ,QAAQ60B,SACpBmB,EAAOW,EAAO,SAAW,QACzBV,EAAOU,EAAO,MAAQ,OACtBT,EAAYH,EAAM,GAAG1a,wBAAwB2a,GAC7CY,EAAUx2B,KAAKC,SAAS,GAAGgb,wBAAwB2a,GAEnDT,EAAWn1B,KAAKy2B,UAAUzrB,GAI1B+qB,IAFYS,EAAUV,GAAaX,EAELqB,EAAW,KAAKjB,QAAQv1B,KAAKJ,QAAQ82B,SAEnE1rB,EAAWuH,WAAWvH,EAASuqB,QAAQv1B,KAAKJ,QAAQ82B,UAEpDpvB,EAAM,GAEVtH,KAAK22B,WAAWhB,EAAO3qB,GAGnBmrB,IACEH,EAA2C,IAA9Bh2B,KAAKq0B,QAAQ3Z,MAAMib,GAIhCM,EAAa5mB,KAAK4G,MAAc6f,EAAWU,EAAW,KAEtDR,GAEF1uB,EAAIuuB,GAAJ,GAAAzyB,OAAe2yB,EAAf,KAEAa,EAAMrkB,WAAWvS,KAAK+0B,SAAS,GAAGre,MAAMmf,IAASE,EAAWE,EAGxDpf,GAAoB,mBAAPA,GAAqBA,MAGlCggB,EAAYtkB,WAAWvS,KAAKs0B,QAAQ,GAAG5d,MAAMmf,IAGjDe,EAAMb,GAAYzjB,MAAMukB,IAAc72B,KAAKJ,QAAQk3B,aAAe92B,KAAKJ,QAAQqV,SAASjV,KAAKJ,QAAQmF,IAAI/E,KAAKJ,QAAQqV,OAAO,KAAO4hB,GAAaZ,GAGnJ3uB,EAAG,OAAAlE,OAAQwyB,IAAX,GAAAxyB,OAAwBwzB,EAAxB,MAIEV,EAAWl2B,KAAKC,SAASG,KAAK,YAAc,IAAK,GAAKJ,KAAKJ,QAAQs2B,SAEvEr4B,OAAAA,EAAAA,KAAAA,CAAKq4B,EAAUP,EAAO,WAIhBrjB,MAAMyjB,GACRJ,EAAMruB,IAAIuuB,EAAV,GAAAzyB,OAA8B,IAAX+xB,EAAnB,MAGAQ,EAAMruB,IAAIuuB,EAAV,GAAAzyB,OAAmB2yB,EAAnB,MAGGxvB,EAAM3G,QAAQk1B,YAKjBvuB,EAAMiuB,MAAMltB,IAAIA,GAHhBf,EAAMiuB,MAAMltB,IAAIsuB,EAAhB,GAAAxyB,OAAoC,IAAX+xB,EAAzB,QAOAn1B,KAAKiH,cACPjH,KAAKC,SAASgX,IAAI,sBAAuB,WAKvC1Q,EAAMtG,SAAS4G,QAAQ,kBAAmB,CAAC8uB,MAM7C5gB,aAAaxO,EAAMyW,SACnBzW,EAAMyW,QAAU9I,WAAW,WACzB3N,EAAMtG,SAAS4G,QAAQ,oBAAqB,CAAC8uB,KAC5CpvB,EAAM3G,QAAQm3B,kB,0BAUrB,SAAa7sB,GACX,IAAI8sB,EAAmB,IAAR9sB,EAAYlK,KAAKJ,QAAQk3B,aAAe92B,KAAKJ,QAAQq3B,WAChEn0B,EAAK9C,KAAKo0B,OAAOhlB,GAAGlF,GAAK5H,KAAK,OAASlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,UAC1D4C,KAAKo0B,OAAOhlB,GAAGlF,GAAK5H,KAAK,CACvBQ,GAAMA,EACNwM,IAAOtP,KAAKJ,QAAQmF,IACpBwK,IAAOvP,KAAKJ,QAAQqV,MACpBohB,KAAQr2B,KAAKJ,QAAQy2B,OAEvBr2B,KAAKo0B,OAAOhlB,GAAGlF,GAAKvH,IAAIq0B,GACxBh3B,KAAKq0B,QAAQjlB,GAAGlF,GAAK5H,KAAK,CACxBiI,KAAQ,SACRF,gBAAiBvH,EACjBo0B,gBAAiBl3B,KAAKJ,QAAQmF,IAC9BoyB,gBAAiBn3B,KAAKJ,QAAQqV,MAC9BmiB,gBAAiBJ,EACjBK,mBAAoBr3B,KAAKJ,QAAQ60B,SAAW,WAAa,aACzDlc,SAAY,M,wBAWhB,SAAW+b,EAAS3xB,GAClB,IAAIuH,EAAMlK,KAAKJ,QAAQk1B,YAAc90B,KAAKq0B,QAAQ3Z,MAAM4Z,GAAW,EACnEt0B,KAAKo0B,OAAOhlB,GAAGlF,GAAKvH,IAAIA,GACxB2xB,EAAQhyB,KAAK,gBAAiBK,K,0BAchC,SAAahB,EAAG2yB,EAAS3xB,GACvB,IAKM20B,EACAC,EACAC,EACAC,EAWFC,EAQF5U,EA1BGngB,EAwCHmgB,EAAQ9iB,KAAK23B,aAAa,KAAMh1B,IAvChChB,EAAEE,iBAGEy1B,GADA7C,EADQz0B,KACQJ,QAAQ60B,UACL,SAAW,QAC9B8C,EAAY9C,EAAW,MAAQ,OAC/B+C,EAAc/C,EAAW9yB,EAAE0mB,MAAQ1mB,EAAEi2B,MACrCH,EAASz3B,KAAKC,SAAS,GAAGgb,wBAAwBqc,GAClDO,EAAepD,EAAWx3B,GAAAA,CAAE3C,QAAQmR,YAAcxO,GAAAA,CAAE3C,QAAQw9B,aAE5DC,EAAa/3B,KAAKC,SAASsL,SAASgsB,GAIpC51B,EAAEq2B,UAAYr2B,EAAE0mB,QAASmP,GAA4BK,GAYzD/U,EAAQ9iB,KAAKi4B,QARXP,GAHEQ,EAAeV,EAAcO,GAEd,EACT,EACgBN,EAAfS,EACDT,EAEAS,GAEqBT,GAK3BxZ,OAAAA,EAAAA,IAAAA,KAAUje,KAAKJ,QAAQ60B,WAAW3R,EAAQ9iB,KAAKJ,QAAQmF,IAAM+d,GAEjEA,EA7BY9iB,KA6BE23B,aAAa,KAAM7U,GAK3BwR,EAHDA,IACgB6D,EAAYn4B,KAAKs0B,QAASiD,EAAWG,EAAOJ,IAC5Ca,EAAYn4B,KAAK+0B,SAAUwC,EAAWG,EAAOJ,GACnBt3B,KAAKs0B,QAAUt0B,KAAK+0B,WAOrE/0B,KAAKk1B,cAAcZ,EAASxR,K,0BAU9B,SAAawR,EAASxR,GACpB,IACEuT,EAAOr2B,KAAKJ,QAAQy2B,KACpB+B,EAAM7lB,WAAW8jB,EAAK,GAGtB1zB,EADI2xB,EACE/hB,WAAW+hB,EAAQhyB,KAAK,kBAGxBwgB,EAGNqK,EADS,GAAPxqB,EACKA,EAAM0zB,EAENA,EAAQ1zB,EAAM0zB,EAEvBgC,EAAc11B,EAAMwqB,EAEpB,OAAa,IAATA,EACKxqB,EAETA,EAAa01B,EAAcD,GAArBz1B,EAJI01B,EAAchC,EAImBgC,I,qBAS7C,WACEr4B,KAAKs4B,iBAAiBt4B,KAAKs0B,SACxBt0B,KAAKq0B,QAAQ,IACdr0B,KAAKs4B,iBAAiBt4B,KAAK+0B,Y,8BAW/B,SAAiBT,GAIa,SAApBiE,EAA6B52B,GACjC,IAAMuI,EAAM3D,EAAM6tB,OAAO1Z,MAAMzd,GAAAA,CAAE+C,OACjCuG,EAAMiyB,aAAa72B,EAAG4E,EAAM8tB,QAAQjlB,GAAGlF,GAAMjN,GAAAA,CAAE+C,MAAM2C,OALzD,IACI81B,EAiCEpf,EAlCF9S,EAAQvG,KAWVA,KAAKo0B,OAAO7yB,IAAI,mBAAmBC,GAAG,kBAAmB,SAAUG,GAChD,KAAdA,EAAE+2B,SAAgBH,EAAkBplB,KAAKnT,KAAM2B,KAGpD3B,KAAKo0B,OAAO7yB,IAAI,oBAAoBC,GAAG,mBAAoB+2B,GAEvDv4B,KAAKJ,QAAQ+4B,aACf34B,KAAKC,SAASsB,IAAI,mBAAmBC,GAAG,kBAAmB,SAASG,GAClE,OAAI4E,EAAMtG,SAASG,KAAK,kBAEnBnD,GAAAA,CAAE0E,EAAEG,QAAQiE,GAAG,0BACdQ,EAAM3G,QAAQk1B,YAChBvuB,EAAMiyB,aAAa72B,GAEnB4E,EAAMiyB,aAAa72B,EAAG4E,EAAM+tB,aAMlCt0B,KAAKJ,QAAQg5B,YACf54B,KAAKq0B,QAAQwE,WAETxf,EAAQpc,GAAAA,CAAE,QACdq3B,EACG/yB,IAAI,uBACJC,GAAG,sBAAuB,SAASG,GAClC2yB,EAAQpwB,SAAS,eACjBqC,EAAMiuB,MAAMtwB,SAAS,eACrBqC,EAAMtG,SAASG,KAAK,YAAY,GAEhCq4B,EAAYx7B,GAAAA,CAAE0E,EAAEmW,eAEhBuB,EAAM7X,GAAG,sBAAuB,SAASgY,GACvCA,EAAG3X,iBACH0E,EAAMiyB,aAAahf,EAAIif,KAEtBj3B,GAAG,oBAAqB,SAASgY,GAClCjT,EAAMiyB,aAAahf,EAAIif,GAEvBnE,EAAQlvB,YAAY,eACpBmB,EAAMiuB,MAAMpvB,YAAY,eACxBmB,EAAMtG,SAASG,KAAK,YAAY,GAEhCiZ,EAAM9X,IAAI,6CAIfC,GAAG,4CAA6C,SAASG,GACxDA,EAAEE,oBAINyyB,EAAQ/yB,IAAI,qBAAqBC,GAAG,oBAAqB,SAASG,GAChE,IAGIm3B,EAHAC,EAAW97B,GAAAA,CAAE+C,MACbkK,EAAM3D,EAAM3G,QAAQk1B,YAAcvuB,EAAM8tB,QAAQ3Z,MAAMqe,GAAY,EAClEC,EAAWzmB,WAAWhM,EAAM6tB,OAAOhlB,GAAGlF,GAAKvH,OAI/CjF,EAAAA,SAASsO,UAAUrK,EAAG,SAAU,CAC9Bs3B,SAAU,WACRH,EAAWE,EAAWzyB,EAAM3G,QAAQy2B,MAEtC6C,SAAU,WACRJ,EAAWE,EAAWzyB,EAAM3G,QAAQy2B,MAEtC8C,aAAc,WACZL,EAAWE,EAAgC,GAArBzyB,EAAM3G,QAAQy2B,MAEtC+C,aAAc,WACZN,EAAWE,EAAgC,GAArBzyB,EAAM3G,QAAQy2B,MAEtC9mB,IAAK,WACHupB,EAAWvyB,EAAM3G,QAAQqV,OAE3B3F,IAAK,WACHwpB,EAAWvyB,EAAM3G,QAAQmF,KAE3BwH,QAAS,WACP5K,EAAEE,iBACF0E,EAAM2uB,cAAc6D,EAAUD,U,sBAatC,WACE94B,KAAKq0B,QAAQ9yB,IAAI,cACjBvB,KAAKo0B,OAAO7yB,IAAI,cAChBvB,KAAKC,SAASsB,IAAI,cAElBwT,aAAa/U,KAAKgd,c,gCAgJtB,SAASmb,EAAY7D,EAAS+E,EAAKC,EAAUhC,GAC3C,OAAOjoB,KAAKkqB,IAAKjF,EAAQrY,WAAWod,GAAQ/E,EAAQgD,KAAW,EAAMgC,GA7IvEn6B,EAAOgB,SAAW,CAOhB8U,MAAO,EAOPlQ,IAAK,IAOLsxB,KAAM,EAONS,aAAc,EAOdG,WAAY,IAOZrC,SAAS,EAOT+D,aAAa,EAOblE,UAAU,EAOVmE,WAAW,EAOXlE,UAAU,EAOVI,aAAa,EAWb4B,QAAS,EAWTR,SAAU,IAOVvB,cAAe,WAOf6E,gBAAgB,EAOhBzC,aAAc,IAOdvB,cAAe,EAOfJ,sBAAuB,W,8/CCxrBnBh2B,E,iPAAqBM,EAAAA,W,yMAmEvB,SAAmBulB,GAAgD,IAA3CrlB,EAA2C,EAAAC,UAAAC,aAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAjCT,EAAae,SAAU0U,EAAU,EAAAhV,UAAAC,OAAAD,UAAA,QAAAE,EACzD05B,EAAOx8B,GAAAA,CAAEgoB,GAGf,IAAKwU,EAAK35B,OAAQ,OAAO,EAErBka,EAAY3K,KAAK4U,MAAMwV,EAAKluB,SAASG,IAAM9L,EAAQ4kB,UAAY,EAAI5kB,EAAQ2L,QAE/EtO,GAAAA,CAAE,cAAc4Q,MAAK,GAAMrC,QACvB,CAAEC,UAAWuO,GACbpa,EAAQsa,kBACRta,EAAQua,gBACR,WAC4B,mBAAbtF,GACPA,U,uBAxEhB,SAAOlV,EAASC,GACZI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAId,EAAae,SAAUH,KAAKC,SAASG,OAAQR,GACzEI,KAAKO,UAAY,eAEjBP,KAAK7B,U,mBAOT,WACI,IAAM2E,EAAK9C,KAAKC,SAAS,GAAG6C,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,iBACjD4C,KAAKC,SAASqC,KAAK,CAAEQ,GAAAA,IAErB9C,KAAKqB,Y,qBAOT,WACIrB,KAAK05B,mBAAqB15B,KAAK25B,iBAAiBzkB,KAAKlV,MACrDA,KAAKC,SAASuB,GAAG,wBAAyBxB,KAAK05B,oBAC/C15B,KAAKC,SAASuB,GAAG,wBAAyB,eAAgBxB,KAAK05B,sB,8BASnE,SAAiB/3B,GAAG,IAIVojB,EAJUxe,EAAAvG,KAEX/C,GAAAA,CAAE0E,EAAEmW,eAAe/R,GAAG,kBAErBgf,EAAUpjB,EAAEmW,cAAc/V,aAAa,QAE7C/B,KAAKklB,eAAgB,EAErB9lB,EAAaulB,YAAYI,EAAS/kB,KAAKJ,QAAS,WAC5C2G,EAAK2e,eAAgB,IAGzBvjB,EAAEE,oB,sBAmCN,WACI7B,KAAKC,SAASsB,IAAI,wBAAyBvB,KAAK05B,oBAChD15B,KAAKC,SAASsB,IAAI,wBAAyB,eAAgBvB,KAAK05B,yB,gCAOxEt6B,EAAae,SAAW,CAOtB+Z,kBAAmB,IAQnBC,gBAAiB,SAOjBqK,UAAW,GAOXjZ,OAAQ,I,okDC5HJlM,E,iPAAeK,EAAAA,W,qMAQnB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIb,EAAOc,SAAUH,KAAKC,SAASG,OAAQR,GACnEI,KAAKO,UAAY,SAGjBrC,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,U,mBAQP,WACER,EAAAA,WAAWQ,QAEX,IAAIyd,EAAU5b,KAAKC,SAASiD,OAAO,2BAC/BJ,EAAK9C,KAAKC,SAAS,GAAG6C,IAAM1F,OAAAA,EAAAA,YAAAA,CAAY,EAAG,UAC3CmJ,EAAQvG,KAET4b,EAAQ9b,OACTE,KAAK45B,WAAahe,GAElB5b,KAAK65B,YAAa,EAClB75B,KAAKC,SAAS0O,KAAK3O,KAAKJ,QAAQk6B,WAChC95B,KAAK45B,WAAa55B,KAAKC,SAASiD,UAElClD,KAAK45B,WAAW11B,SAASlE,KAAKJ,QAAQ0pB,gBAEtCtpB,KAAKC,SAASiE,SAASlE,KAAKJ,QAAQm6B,aAAaz3B,KAAK,CAAEwZ,cAAehZ,EAAIk3B,cAAel3B,IAC9D,KAAxB9C,KAAKJ,QAAQmL,QACb9N,GAAAA,CAAE,IAAMsJ,EAAM3G,QAAQmL,QAAQzI,KAAK,CAAE03B,cAAel3B,IAGxD9C,KAAKi6B,YAAcj6B,KAAKJ,QAAQs6B,WAChCl6B,KAAKm6B,SAAU,EACfn6B,KAAK6kB,eAAiBtnB,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,WAEtCiM,EAAM6zB,gBAAoD,SAAlC7zB,EAAMtG,SAASqH,IAAI,WAAwB,EAAIf,EAAMtG,SAAS,GAAGgb,wBAAwBX,OACjH/T,EAAMqzB,WAAWtyB,IAAI,SAAUf,EAAM6zB,iBACrC7zB,EAAM8zB,WAAa9zB,EAAM6zB,gBACI,KAAzB7zB,EAAM3G,QAAQmL,OAChBxE,EAAM2E,QAAUjO,GAAAA,CAAE,IAAMsJ,EAAM3G,QAAQmL,QAEtCxE,EAAM+zB,eAGR/zB,EAAMg0B,UAAU,WACd,IAAIC,EAASlgC,OAAOupB,YACpBtd,EAAMk0B,OAAM,EAAOD,GAEdj0B,EAAM4zB,SACT5zB,EAAMm0B,gBAAeF,GAAUj0B,EAAMo0B,aAGzCp0B,EAAMlF,QAAQyB,EAAGsD,MAAM,KAAKw0B,UAAU5X,KAAK,U,0BAS/C,WAKE,IAJA,IASQ6X,EACA9vB,EAEJwZ,EAVAuW,EAAM,CAF2B,KAA3B96B,KAAKJ,QAAQm7B,UAAmB,EAAI/6B,KAAKJ,QAAQm7B,UACtB,KAA3B/6B,KAAKJ,QAAQo7B,UAAmBxkB,SAASsN,gBAAgBO,aAAerkB,KAAKJ,QAAQo7B,WAE3FC,EAAS,GACJ7gC,EAAI,EAAGknB,EAAMwZ,EAAIh7B,OAAQ1F,EAAIknB,GAAOwZ,EAAI1gC,GAAIA,IAE7B,iBAAX0gC,EAAI1gC,GACbmqB,EAAKuW,EAAI1gC,IAELygC,EAAQC,EAAI1gC,GAAGgM,MAAM,KAGzBme,GAFIxZ,EAAS9N,GAAAA,CAAC,IAAAmG,OAAKy3B,EAAM,MAEbtvB,SAASG,IACjBmvB,EAAM,IAAiC,WAA3BA,EAAM,GAAG9pB,gBACvBwT,GAAMxZ,EAAO,GAAGkQ,wBAAwBX,SAG5C2gB,EAAO7gC,GAAKmqB,EAIdvkB,KAAK+jB,OAASkX,I,qBAShB,SAAQn4B,GACN,IAAIyD,EAAQvG,KACRk7B,EAAiBl7B,KAAKk7B,eAAL,aAAA93B,OAAmCN,GACpD9C,KAAKigB,OACLjgB,KAAKm7B,WACPn7B,KAAKigB,MAAO,EACZhjB,GAAAA,CAAE3C,QAAQiH,IAAI25B,GACJ15B,GAAG05B,EAAgB,WACQ,IAAtB30B,EAAM0zB,aACR1zB,EAAM0zB,YAAc1zB,EAAM3G,QAAQs6B,WAClC3zB,EAAMg0B,UAAU,WACdh0B,EAAMk0B,OAAM,EAAOngC,OAAOupB,iBAG5Btd,EAAM0zB,cACN1zB,EAAMk0B,OAAM,EAAOngC,OAAOupB,iBAKzC7jB,KAAKC,SAASsB,IAAI,uBACJC,GAAG,sBAAuB,WACxB+E,EAAM60B,eAAet4B,KAGrC9C,KAAKC,SAASuB,GAAG,sBAAuB,WACpC+E,EAAM60B,eAAet4B,KAGtB9C,KAAKkL,SACNlL,KAAKkL,QAAQ1J,GAAG,sBAAuB,WACnC+E,EAAM60B,eAAet4B,Q,4BAU7B,SAAeA,GACV,IAAIyD,EAAQvG,KACXk7B,EAAiBl7B,KAAKk7B,eAAL,aAAA93B,OAAmCN,GAErDyD,EAAMg0B,UAAU,WAChBh0B,EAAMk0B,OAAM,GACRl0B,EAAM40B,SACH50B,EAAM0Z,MACT1Z,EAAMlF,QAAQyB,GAEPyD,EAAM0Z,MACf1Z,EAAM80B,gBAAgBH,O,6BAU7B,SAAgBA,GACdl7B,KAAKigB,MAAO,EACZhjB,GAAAA,CAAE3C,QAAQiH,IAAI25B,GAObl7B,KAAKC,SAAS4G,QAAQ,qB,mBASzB,SAAMy0B,EAAYd,GAGhB,GAFIc,GAAct7B,KAAKu6B,aAElBv6B,KAAKm7B,SAIR,OAHIn7B,KAAKm6B,SACPn6B,KAAK06B,eAAc,IAEd,GAGMF,EAAVA,GAAmBlgC,OAAOupB,cAEjB7jB,KAAK26B,SACbH,GAAUx6B,KAAKu7B,YACZv7B,KAAKm6B,SACRn6B,KAAKw7B,aAGHx7B,KAAKm6B,SACPn6B,KAAK06B,eAAc,GAInB16B,KAAKm6B,SACPn6B,KAAK06B,eAAc,K,wBAYzB,WACE,IAAIn0B,EAAQvG,KACRy7B,EAAUz7B,KAAKJ,QAAQ67B,QACvBC,EAAmB,QAAZD,EAAoB,YAAc,eACzCE,EAAyB,QAAZF,EAAoB,SAAW,MAC5Cn0B,EAAM,GAEVA,EAAIo0B,GAAJ,GAAAt4B,OAAepD,KAAKJ,QAAQ87B,GAA5B,MACAp0B,EAAIm0B,GAAW,EACfn0B,EAAIq0B,GAAc,OAClB37B,KAAKm6B,SAAU,EACfn6B,KAAKC,SAASmF,YAAd,qBAAAhC,OAA+Cu4B,IACjCz3B,SADd,kBAAAd,OACyCq4B,IAC3Bn0B,IAAIA,GAMJT,QARd,qBAAAzD,OAQ2Cq4B,IAC3Cz7B,KAAKC,SAASuB,GAAG,kFAAmF,WAClG+E,EAAMg0B,gB,2BAYV,SAAcqB,GACZ,IAAIH,EAAUz7B,KAAKJ,QAAQ67B,QAEvBn0B,EAAM,GACNu0B,GAAY77B,KAAK+jB,OAAS/jB,KAAK+jB,OAAO,GAAK/jB,KAAK+jB,OAAO,GAAK/jB,KAAK87B,cAAgB97B,KAAKq6B,WAEtF0B,EAAcH,EAAQ,MAAQ,SAElCt0B,EAN6B,QAAZm0B,EAGO,YAAc,gBAG1B,EAEZn0B,EAAI+lB,OAAS,OAEX/lB,EAAIoE,IADHkwB,EACS,EAEAC,EAGZ77B,KAAKm6B,SAAU,EACfn6B,KAAKC,SAASmF,YAAd,kBAAAhC,OAA4Cq4B,IAC9Bv3B,SADd,qBAAAd,OAC4C24B,IAC9Bz0B,IAAIA,GAMJT,QARd,yBAAAzD,OAQ+C24B,M,uBASjD,SAAUllB,GACR7W,KAAKm7B,SAAWx9B,EAAAA,WAAWoI,GAAG/F,KAAKJ,QAAQo8B,UACtCh8B,KAAKm7B,UACJtkB,GAAoB,mBAAPA,GAAqBA,IAGxC,IA2BQglB,EA3BJI,EAAej8B,KAAK45B,WAAW,GAAG3e,wBAAwBC,MAC5DghB,EAAO5hC,OAAO6hC,iBAAiBn8B,KAAK45B,WAAW,IAC/CwC,EAAQl0B,SAASg0B,EAAK,gBAAiB,IACvCG,EAAQn0B,SAASg0B,EAAK,iBAAkB,IAEtCl8B,KAAKkL,SAAWlL,KAAKkL,QAAQpL,OAC/BE,KAAK87B,aAAe97B,KAAKkL,QAAQ,GAAG+P,wBAAwBX,OAE5Dta,KAAKs6B,eAGPt6B,KAAKC,SAASqH,IAAI,CAChB6R,YAAA,GAAA/V,OAAgB64B,EAAeG,EAAQC,EAAvC,SAIEr8B,KAAKJ,QAAQ08B,eAAkBt8B,KAAKo6B,kBAElCmC,EAAqBv8B,KAAKC,SAAS,GAAGgb,wBAAwBX,QAAUta,KAAKo6B,gBACjFmC,EAAsD,SAAjCv8B,KAAKC,SAASqH,IAAI,WAAwB,EAAIi1B,EACnEv8B,KAAK45B,WAAWtyB,IAAI,SAAUi1B,GAC9Bv8B,KAAKo6B,gBAAkBmC,GAEzBv8B,KAAKq6B,WAAar6B,KAAKo6B,gBAElBp6B,KAAKm6B,SACJn6B,KAAKC,SAASmL,SAAS,kBACrBywB,GAAY77B,KAAK+jB,OAAS/jB,KAAK+jB,OAAO,GAAK/jB,KAAK45B,WAAWruB,SAASG,IAAM1L,KAAK87B,cAAgB97B,KAAKq6B,WACxGr6B,KAAKC,SAASqH,IAAI,MAAOu0B,IAI7B77B,KAAKw8B,gBAAgBx8B,KAAKo6B,gBAAiB,WACrCvjB,GAAoB,mBAAPA,GAAqBA,Q,6BAU1C,SAAgBwjB,EAAYxjB,GAC1B,IAAK7W,KAAKm7B,SAAU,CAClB,IAAItkB,GAAoB,mBAAPA,EACV,OAAO,EADwBA,IAGxC,IAAI4lB,EAAOC,EAAO18B,KAAKJ,QAAQ+8B,WAC3BC,EAAOF,EAAO18B,KAAKJ,QAAQi9B,cAC3BlC,EAAW36B,KAAK+jB,OAAS/jB,KAAK+jB,OAAO,GAAK/jB,KAAKkL,QAAQK,SAASG,IAChE6vB,EAAcv7B,KAAK+jB,OAAS/jB,KAAK+jB,OAAO,GAAK4W,EAAW36B,KAAK87B,aAG7D9X,EAAY1pB,OAAO4pB,YAEM,QAAzBlkB,KAAKJ,QAAQ67B,SACfd,GAAY8B,EACZlB,GAAgBlB,EAAaoC,GACK,WAAzBz8B,KAAKJ,QAAQ67B,UACtBd,GAAa3W,GAAaqW,EAAauC,GACvCrB,GAAgBvX,EAAY4Y,GAK9B58B,KAAK26B,SAAWA,EAChB36B,KAAKu7B,YAAcA,EAEf1kB,GAAoB,mBAAPA,GAAqBA,M,sBASxC,WACE7W,KAAK06B,eAAc,GAEnB16B,KAAKC,SAASmF,YAAd,GAAAhC,OAA6BpD,KAAKJ,QAAQm6B,YAA1C,2BACczyB,IAAI,CACHgT,OAAQ,GACR5O,IAAK,GACL2hB,OAAQ,GACRlU,YAAa,KAEd5X,IAAI,uBACJA,IAAI,uBACdvB,KAAKkL,SAAWlL,KAAKkL,QAAQpL,QAC/BE,KAAKkL,QAAQ3J,IAAI,oBAEfvB,KAAKk7B,gBAAgBj+B,GAAAA,CAAE3C,QAAQiH,IAAIvB,KAAKk7B,gBACxCl7B,KAAK6kB,gBAAgB5nB,GAAAA,CAAE3C,QAAQiH,IAAIvB,KAAK6kB,gBAExC7kB,KAAK65B,WACP75B,KAAKC,SAASkb,SAEdnb,KAAK45B,WAAWx0B,YAAYpF,KAAKJ,QAAQ0pB,gBACzBhiB,IAAI,CACHgT,OAAQ,U,gCAiG/B,SAASoiB,EAAOI,GACd,OAAO50B,SAAS5N,OAAO6hC,iBAAiB3lB,SAAS2G,KAAM,MAAM4f,SAAU,IAAMD,EA5F/Ez9B,EAAOc,SAAW,CAOhB25B,UAAW,oCAOX2B,QAAS,MAOT1wB,OAAQ,GAORgwB,UAAW,GAOXC,UAAW,GAOX2B,UAAW,EAOXE,aAAc,EAOdb,SAAU,SAOVjC,YAAa,SAObzQ,eAAgB,mBAOhBgT,eAAe,EAOfpC,YAAa,I,ikDCxeT56B,E,iPAAaI,EAAAA,W,qMASjB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIZ,EAAKa,SAAUH,KAAKC,SAASG,OAAQR,GACjEI,KAAKO,UAAY,OAEjBP,KAAK7B,QACLT,EAAAA,SAAS8L,SAAS,OAAQ,CACxBC,MAAS,OACTC,MAAS,OACToE,YAAe,OACflE,SAAY,WACZD,WAAc,OACdoE,WAAc,e,mBAUlB,WAAQ,IAkDA0b,EAlDAjpB,EAAAR,KACFuG,EAAQvG,KACZA,KAAK+J,iBAAkB,EAEvB/J,KAAKC,SAASqC,KAAK,CAACiI,KAAQ,YAC5BvK,KAAKg9B,WAAah9B,KAAKC,SAASU,KAAd,IAAAyC,OAAuBpD,KAAKJ,QAAQmxB,YACtD/wB,KAAK8L,YAAc7O,GAAAA,CAAC,uBAAAmG,OAAwBpD,KAAKC,SAAS,GAAG6C,GAAzC,OAEpB9C,KAAKg9B,WAAWh8B,KAAK,WACnB,IAAIqG,EAAQpK,GAAAA,CAAE+C,MACVmL,EAAQ9D,EAAM1G,KAAK,KACnB4N,EAAWlH,EAAM+D,SAAN,GAAAhI,OAAkBmD,EAAM3G,QAAQq9B,kBAC3ChyB,EAAOE,EAAM7I,KAAK,qBAAuB6I,EAAM,GAAGF,KAAKiI,MAAM,GAC7D9I,EAASe,EAAM,GAAGrI,IAAT,GAAAM,OAA+B6H,EAA/B,UACTa,EAAc7O,GAAAA,CAAC,IAAAmG,OAAK6H,IAExB5D,EAAM/E,KAAK,CAACiI,KAAQ,iBAEpBY,EAAM7I,KAAK,CACTiI,KAAQ,MACRF,gBAAiBY,EACjBiyB,gBAAiB3uB,EACjBzL,GAAMsH,EACNmO,SAAYhK,EAAW,IAAM,OAG/BzC,EAAYxJ,KAAK,CACfiI,KAAQ,WACRC,kBAAmBJ,IAIjBmE,IACFhI,EAAMoE,eAAN,IAAAvH,OAA2B6H,IAGzBsD,GACFzC,EAAYxJ,KAAK,cAAe,QAG/BiM,GAAYhI,EAAM3G,QAAQ4a,YAC3BjU,EAAMse,eAAiBtnB,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,WACvC2C,GAAAA,CAAE,cAAcuO,QAAQ,CAAEC,UAAWpE,EAAMkE,SAASG,KAAOnF,EAAM3G,QAAQgM,oBAAqB,WAC5FT,EAAMgB,eAMXnM,KAAKJ,QAAQu9B,eACV1T,EAAUzpB,KAAK8L,YAAYnL,KAAK,QAExBb,OACVrC,OAAAA,EAAAA,eAAAA,CAAegsB,EAASzpB,KAAKo9B,WAAWloB,KAAKlV,OAE7CA,KAAKo9B,cAKTp9B,KAAK8K,eAAiB,WACpB,IAAIC,EAASzQ,OAAO0Q,SAASC,KAE7B,IAAKF,EAAOjL,OAAQ,CAElB,GAAIU,EAAKuJ,gBAAiB,OAEtBvJ,EAAKmK,iBAAgBI,EAASvK,EAAKmK,gBAGzC,IAAI0yB,EAAsC,GAAvBtyB,EAAO5D,QAAQ,KAAY4D,EAAOmI,MAAM,GAAKnI,EAC5DG,EAAUmyB,GAAgBpgC,GAAAA,CAAC,IAAAmG,OAAKi6B,IAChClyB,EAAQJ,GAAUvK,EAAKP,SAASU,KAAd,WAAAyC,OAA8B2H,EAA9B,0BAAA3H,OAA6Di6B,EAA7D,OAA+Ex4B,SAEhFqG,EAAQpL,SAAUqL,EAAMrL,SAIvCoL,GAAWA,EAAQpL,QAAUqL,GAASA,EAAMrL,OAC9CU,EAAKuuB,UAAU7jB,GAAS,GAIxB1K,EAAK88B,YAIH98B,EAAKZ,QAAQ0L,iBACXC,EAAS/K,EAAKP,SAASsL,SAC3BtO,GAAAA,CAAE,cAAcuO,QAAQ,CAAEC,UAAWF,EAAOG,IAAMlL,EAAKZ,QAAQ+L,sBAAuBnL,EAAKZ,QAAQgM,sBAOrGpL,EAAKP,SAAS4G,QAAQ,mBAAoB,CAACsE,EAAOD,MAKlDlL,KAAKJ,QAAQiM,UACf7L,KAAK8K,iBAGP9K,KAAKqB,UAELrB,KAAK+J,iBAAkB,I,qBAOzB,WACE/J,KAAKu9B,iBACLv9B,KAAKw9B,mBACLx9B,KAAKy9B,oBAAsB,KAEvBz9B,KAAKJ,QAAQu9B,cACfn9B,KAAKy9B,oBAAsBz9B,KAAKo9B,WAAWloB,KAAKlV,MAEhD/C,GAAAA,CAAE3C,QAAQkH,GAAG,wBAAyBxB,KAAKy9B,sBAG1Cz9B,KAAKJ,QAAQiM,UACd5O,GAAAA,CAAE3C,QAAQkH,GAAG,aAAcxB,KAAK8K,kB,8BAQpC,WACE,IAAIvE,EAAQvG,KAEZA,KAAKC,SACFsB,IAAI,iBACJC,GAAG,gBAFN,IAAA4B,OAE2BpD,KAAKJ,QAAQmxB,WAAa,SAASpvB,GAC1DA,EAAEE,iBACF0E,EAAMm3B,iBAAiBzgC,GAAAA,CAAE+C,W,4BAQ/B,WACE,IAAIuG,EAAQvG,KAEZA,KAAKg9B,WAAWz7B,IAAI,mBAAmBC,GAAG,kBAAmB,SAASG,GACpE,IAGI1B,EACFkP,EACAF,EACAC,EANc,IAAZvN,EAAEg8B,QAGF19B,EAAWhD,GAAAA,CAAE+C,OACfmP,EAAYlP,EAASiD,OAAO,MAAM+G,SAAS,OAInCjJ,KAAK,SAAS5G,GAClB6C,GAAAA,CAAE+C,MAAM+F,GAAG9F,KAGXiP,EAFE3I,EAAM3G,QAAQg+B,YAChB3uB,EAAqB,IAAN7U,EAAU+U,EAAU7C,OAAS6C,EAAUC,GAAGhV,EAAE,GAC5CA,IAAM+U,EAAUrP,OAAQ,EAAIqP,EAAUtK,QAAUsK,EAAUC,GAAGhV,EAAE,KAE9E6U,EAAeE,EAAUC,GAAGC,KAAKC,IAAI,EAAGlV,EAAE,IAC3B+U,EAAUC,GAAGC,KAAKE,IAAInV,EAAE,EAAG+U,EAAUrP,OAAO,QAOjEpC,EAAAA,SAASsO,UAAUrK,EAAG,OAAQ,CAC5B8N,KAAM,WACJxP,EAASU,KAAK,gBAAgBwL,QAC9B5F,EAAMm3B,iBAAiBz9B,IAEzBoM,SAAU,WACR4C,EAAatO,KAAK,gBAAgBwL,QAClC5F,EAAMm3B,iBAAiBzuB,IAEzBhD,KAAM,WACJiD,EAAavO,KAAK,gBAAgBwL,QAClC5F,EAAMm3B,iBAAiBxuB,IAEzB3C,QAAS,WACP5K,EAAEE,yB,8BAaV,SAAiB2K,EAASqxB,GAGxB,IAOIC,EAIE/yB,EACAgzB,EAZFvxB,EAAQpB,SAAR,GAAAhI,OAAoBpD,KAAKJ,QAAQq9B,kBAC9Bj9B,KAAKJ,QAAQo+B,gBACZh+B,KAAKs9B,aAKTQ,EAAU99B,KAAKC,SACbU,KADQ,IAAAyC,OACCpD,KAAKJ,QAAQmxB,UADd,KAAA3tB,OAC2BpD,KAAKJ,QAAQq9B,kBAGhDlyB,GADAjJ,GADAm8B,EAAWzxB,EAAQ7L,KAAK,iBACN2B,KAAK,sBACJR,EAAOhC,OAAjB,IAAAsD,OAA8BtB,GAAWm8B,EAAS,GAAGhzB,KAC9D8yB,EAAiB/9B,KAAK8L,YAAYnL,KAAKoK,GAG7C/K,KAAKk+B,aAAaJ,GAGlB99B,KAAKiN,SAAST,GAGVxM,KAAKJ,QAAQiM,WAAagyB,IACxB79B,KAAKJ,QAAQiN,cACfC,QAAQC,UAAU,GAAI,GAAIhC,GAE1B+B,QAAQE,aAAa,GAAI,GAAIjC,IAQjC/K,KAAKC,SAAS4G,QAAQ,iBAAkB,CAAC2F,EAASuxB,IAGlDA,EAAep9B,KAAK,iBAAiBkG,QAAQ,0B,sBAQ/C,SAAS2F,GACL,IAAIyxB,EAAWzxB,EAAQ7L,KAAK,gBACxBsK,EAAOgzB,EAAS37B,KAAK,qBAAuB27B,EAAS,GAAGhzB,KAAKiI,MAAM,GACnE6qB,EAAiB/9B,KAAK8L,YAAYnL,KAAjB,IAAAyC,OAA0B6H,IAE/CuB,EAAQtI,SAAR,GAAAd,OAAoBpD,KAAKJ,QAAQq9B,kBAEjCgB,EAAS37B,KAAK,CACZ46B,gBAAiB,OACjB3kB,SAAY,MAGdwlB,EACG75B,SADH,GAAAd,OACepD,KAAKJ,QAAQu+B,mBAAoBhtB,WAAW,iB,0BAQ/D,SAAa3E,GACP4xB,EAAgB5xB,EACjBpH,YADiB,GAAAhC,OACFpD,KAAKJ,QAAQq9B,kBAC5Bt8B,KAAK,gBACL2B,KAAK,CACJ46B,gBAAiB,QACjB3kB,UAAa,IAGjBtb,GAAAA,CAAC,IAAAmG,OAAKg7B,EAAc97B,KAAK,mBACtB8C,YADH,GAAAhC,OACkBpD,KAAKJ,QAAQu+B,mBAC5B77B,KAAK,CAAEmI,cAAe,W,uBAQ3B,WACE,IAAI4zB,EAAar+B,KAAKC,SAASU,KAAd,IAAAyC,OAAuBpD,KAAKJ,QAAQmxB,UAApC,KAAA3tB,OAAiDpD,KAAKJ,QAAQq9B,kBAE3EoB,EAAWv+B,SACbE,KAAKk+B,aAAaG,GAMlBr+B,KAAKC,SAAS4G,QAAQ,mBAAoB,CAACw3B,O,uBAU/C,SAAUj3B,EAAMy2B,GACd,IAAWS,EAGTC,EADkB,WAAhB/sB,EAAOpK,GACDA,EAAK,GAAGtE,GAERsE,EAGNm3B,EAAMp3B,QAAQ,KAAO,EACvBm3B,EAAS,IAAAl7B,OAAOm7B,GAGhBA,GADAD,EAAYC,GACErrB,MAAM,GAGlB1G,EAAUxM,KAAKg9B,WAAWjlB,IAAhB,WAAA3U,OAA+Bk7B,EAA/B,0BAAAl7B,OAAiEm7B,EAAjE,OAA4E15B,QAE1F7E,KAAK09B,iBAAiBlxB,EAASqxB,K,wBAWjC,WACE,IAAIvuB,EAAM,EACN/I,EAAQvG,KAEPA,KAAK8L,aAIV9L,KAAK8L,YACFnL,KADH,IAAAyC,OACYpD,KAAKJ,QAAQoxB,aACtB1pB,IAAI,aAAc,IAClBtG,KAAK,WAEJ,IAAIw9B,EAAQvhC,GAAAA,CAAE+C,MACVuO,EAAWiwB,EAAMpzB,SAAN,GAAAhI,OAAkBmD,EAAM3G,QAAQu+B,mBAE1C5vB,GACHiwB,EAAMl3B,IAAI,CAAC2pB,WAAc,SAAUtG,QAAW,UAGhD,IAAIF,EAAOzqB,KAAKib,wBAAwBX,OAEnC/L,GACHiwB,EAAMl3B,IAAI,CACR2pB,WAAc,GACdtG,QAAW,KAIfrb,EAAaA,EAAPmb,EAAaA,EAAOnb,IAE3BhI,IAAI,aAvBP,GAAAlE,OAuBwBkM,EAvBxB,S,sBA8BF,WACEtP,KAAKC,SACFU,KADH,IAAAyC,OACYpD,KAAKJ,QAAQmxB,YACtBxvB,IAAI,YAAYkc,OAAO1Y,MACvBpE,KAHH,IAAAyC,OAGYpD,KAAKJ,QAAQoxB,aACtBvT,OAECzd,KAAKJ,QAAQu9B,aACiB,MAA5Bn9B,KAAKy9B,qBACNxgC,GAAAA,CAAE3C,QAAQiH,IAAI,wBAAyBvB,KAAKy9B,qBAI7Cz9B,KAAKJ,QAAQiM,UACf5O,GAAAA,CAAE3C,QAAQiH,IAAI,aAAcvB,KAAK8K,gBAG/B9K,KAAK6kB,gBACP5nB,GAAAA,CAAE3C,QAAQiH,IAAIvB,KAAK6kB,qB,gCAKzBvlB,EAAKa,SAAW,CAQd0L,UAAU,EAQVP,gBAAgB,EAQhBM,oBAAqB,IAQrBD,qBAAsB,EAQtBkB,eAAe,EASf2N,WAAW,EAQXojB,YAAY,EAQZT,aAAa,EAQba,gBAAgB,EAQhBjN,UAAW,aAQXkM,gBAAiB,YAQjBjM,WAAY,aAQZmN,iBAAkB,c,kkDCthBd5+B,E,iPAAgBG,EAAAA,W,qMASpB,SAAOC,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIX,EAAQY,SAAUR,EAAQS,OAAQR,GAC9DI,KAAKO,UAAY,GACjBP,KAAKO,UAAY,UAGjBrC,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,QACL6B,KAAKqB,Y,mBAQP,WAEE,IAGIJ,EAHA6B,EAAK9C,KAAKC,SAAS,GAAG6C,GACxBojB,EAAYjpB,GAAAA,CAAC,gBAAAmG,OAAiBN,EAAjB,sBAAAM,OAAwCN,EAAxC,uBAAAM,OAAgEN,EAAhE,OAIf,GAAI9C,KAAKJ,QAAQ4L,QACfvK,EAAQjB,KAAKJ,QAAQ4L,QAAQpF,MAAM,KAEnCpG,KAAK6xB,YAAc5wB,EAAM,GACzBjB,KAAK8xB,aAAe7wB,EAAM,IAAM,KAGhCilB,EAAU5jB,KAAK,iBAAkBtC,KAAKC,SAAS8F,GAAG,gBAG/C,CAEH,GAAqB,iBADrB9E,EAAQjB,KAAKJ,QAAQ6+B,WACax9B,EAAMnB,OACtC,MAAM,IAAI4+B,MAAJ,uEAAAt7B,OAAgFnC,EAAhF,MAGRjB,KAAKO,UAAyB,MAAbU,EAAM,GAAaA,EAAMiS,MAAM,GAAKjS,EAGrDilB,EAAU5jB,KAAK,gBAAiBtC,KAAKC,SAASmL,SAASpL,KAAKO,YAI9D2lB,EAAUllB,KAAK,SAAC0Z,EAAO7T,GACrB,IAAM83B,EAAW1hC,GAAAA,CAAE4J,GACb+3B,EAAWD,EAASr8B,KAAK,kBAAoB,GAEhC,IAAIuF,OAAJ,MAAAzE,OAAiB9F,OAAAA,EAAAA,aAAAA,CAAawF,GAA9B,QAAwC8E,KAAKg3B,IAC/CD,EAASr8B,KAAK,gBAAiBs8B,EAAQ,GAAAx7B,OAAMw7B,EAAN,KAAAx7B,OAAkBN,GAAOA,O,qBASrF,WACE9C,KAAKC,SAASsB,IAAI,qBAAqBC,GAAG,oBAAqBxB,KAAK+L,OAAOmJ,KAAKlV,S,oBASlF,WACEA,KAAMA,KAAKJ,QAAQ4L,QAAU,iBAAmB,oB,0BAGlD,WACExL,KAAKC,SAASszB,YAAYvzB,KAAKO,WAE/B,IAAI0f,EAAOjgB,KAAKC,SAASmL,SAASpL,KAAKO,WACnC0f,EAKFjgB,KAAKC,SAAS4G,QAAQ,iBAOtB7G,KAAKC,SAAS4G,QAAQ,kBAGxB7G,KAAK6+B,YAAY5e,GACjBjgB,KAAKC,SAASU,KAAK,iBAAiBkG,QAAQ,yB,4BAG9C,WACE,IAAIN,EAAQvG,KAERA,KAAKC,SAAS8F,GAAG,WACnBnI,EAAAA,OAAOmuB,UAAU/rB,KAAKC,SAAUD,KAAK6xB,YAAa,WAChDtrB,EAAMs4B,aAAY,GAClB7+B,KAAK6G,QAAQ,iBACb7G,KAAKW,KAAK,iBAAiBkG,QAAQ,yBAIrCjJ,EAAAA,OAAOouB,WAAWhsB,KAAKC,SAAUD,KAAK8xB,aAAc,WAClDvrB,EAAMs4B,aAAY,GAClB7+B,KAAK6G,QAAQ,kBACb7G,KAAKW,KAAK,iBAAiBkG,QAAQ,2B,yBAKzC,SAAYoZ,GACV,IAAInd,EAAK9C,KAAKC,SAAS,GAAG6C,GAC1B7F,GAAAA,CAAC,eAAAmG,OAAgBN,EAAhB,qBAAAM,OAAsCN,EAAtC,sBAAAM,OAA6DN,EAA7D,OACER,KAAK,CACJgI,kBAAiB2V,M,sBAQvB,WACEjgB,KAAKC,SAASsB,IAAI,oB,gCAItBhC,EAAQY,SAAW,CAMjBs+B,aAAS1+B,EAOTyL,SAAS,I,s2DC5JLhM,E,iPAAgB4b,EAAAA,iB,qMASpB,SAAOzb,EAASC,GACdI,KAAKC,SAAWN,EAChBK,KAAKJ,QAAU3C,EAAAA,EAAEiD,OAAO,GAAIV,EAAQW,SAAUH,KAAKC,SAASG,OAAQR,GACpEI,KAAKO,UAAY,UAEjBP,KAAKuO,UAAW,EAChBvO,KAAK8+B,SAAU,EAGf5gC,EAAAA,SAASD,KAAKhB,EAAAA,GAEd+C,KAAK7B,U,mBAOP,WACER,EAAAA,WAAWQ,QACX,IAAIsG,EAASzE,KAAKC,SAASqC,KAAK,qBAAuBlF,OAAAA,EAAAA,YAAAA,CAAY,EAAG,WAEtE4C,KAAKJ,QAAQm/B,QAAU/+B,KAAKJ,QAAQm/B,SAAW/+B,KAAKC,SAASqC,KAAK,SAClEtC,KAAKg/B,SAAWh/B,KAAKJ,QAAQo/B,SAAW/hC,GAAAA,CAAE+C,KAAKJ,QAAQo/B,UAAYh/B,KAAKi/B,eAAex6B,IAEnFzE,KAAKJ,QAAQs/B,UACfl/B,KAAKg/B,SAAS9N,SAAS1a,SAAS2G,MAC7BiG,KAAKpjB,KAAKJ,QAAQm/B,SAGrB/+B,KAAKg/B,SAAS9N,SAAS1a,SAAS2G,MAC7B5T,KAAKvJ,KAAKJ,QAAQm/B,UAHlBthB,OAOLzd,KAAKC,SAASqC,KAAK,CACjByxB,MAAS,GACToL,mBAAoB16B,EACpB+W,gBAAiB/W,EACjB26B,cAAe36B,EACfqX,cAAerX,IACdP,SAASlE,KAAKJ,QAAQy/B,cAEzBtjB,EAAAC,EAAAxc,EAAAyT,WAAA,QAAAjT,MAAAmT,KAAAnT,MACAA,KAAKqB,Y,iCAGP,WAEE,IAAIi+B,EAAmBt/B,KAAKC,SAAS,GAAGM,UAIpC0b,GAFAqjB,EADAt/B,KAAKC,SAAS,aAAcs/B,WACTD,EAAiBE,QAEzBF,GAAiBpjB,MAAM,gCACtC,OAAOD,EAAWA,EAAS,GAAK,Q,kCAGlC,WACE,MAAO,W,yBAGT,WACE,MAAqB,SAAlBjc,KAAKic,UAAyC,UAAlBjc,KAAKic,SAC3Bjc,KAAKJ,QAAQ+d,QAAU3d,KAAKJ,QAAQ6/B,aAEpCz/B,KAAKJ,QAAQ+d,U,yBAIxB,WACE,MAAqB,QAAlB3d,KAAKic,UAAwC,WAAlBjc,KAAKic,SAC1Bjc,KAAKJ,QAAQ8d,QAAU1d,KAAKJ,QAAQ8/B,cAEpC1/B,KAAKJ,QAAQ8d,U,4BAQxB,SAAe5a,GACb,IAAI68B,EAAkB,GAAAv8B,OAAIpD,KAAKJ,QAAQggC,aAAjB,KAAAx8B,OAAiCpD,KAAKJ,QAAQ+/B,iBAAmBvtB,OAQvF,OAPiBnV,GAAAA,CAAE,eAAeiH,SAASy7B,GAAiBr9B,KAAK,CAC/DiI,KAAQ,UACRE,eAAe,EACfo1B,kBAAkB,EAClBtkB,iBAAiB,EACjBzY,GAAMA,M,0BAUV,WACEiZ,EAAAC,EAAAxc,EAAAyT,WAAA,eAAAjT,MAAAmT,KAAAnT,KAAmBA,KAAKC,SAAUD,KAAKg/B,Y,kBASzC,WACE,GAA4B,QAAxBh/B,KAAKJ,QAAQkgC,SAAqBniC,EAAAA,WAAWoI,GAAG/F,KAAKJ,QAAQkgC,QAE/D,OAAO,EAIT9/B,KAAKg/B,SAAS13B,IAAI,aAAc,UAAU8jB,OAC1CprB,KAAK2c,eACL3c,KAAKg/B,SAAS55B,YAAY,yBAAyBlB,SAASlE,KAAKic,UACjEjc,KAAKg/B,SAAS55B,YAAY,8DAA8DlB,SAAS,SAAWlE,KAAKoc,WAMjHpc,KAAKC,SAAS4G,QAAQ,qBAAsB7G,KAAKg/B,SAAS18B,KAAK,OAG/DtC,KAAKg/B,SAAS18B,KAAK,CACjBu9B,kBAAkB,EAClBp1B,eAAe,IAfLzK,KAiBNuO,UAAW,EACjBvO,KAAKg/B,SAASnxB,OAAO4P,OAAOnW,IAAI,aAAc,IAAIy4B,OAAO//B,KAAKJ,QAAQogC,eAAgB,cAOtFhgC,KAAKC,SAAS4G,QAAQ,qB,kBAQxB,WACE,IAAIN,EAAQvG,KACZA,KAAKg/B,SAASnxB,OAAOvL,KAAK,CACxBmI,eAAe,EACfo1B,kBAAkB,IACjBI,QAAQjgC,KAAKJ,QAAQsgC,gBAAiB,WACvC35B,EAAMgI,UAAW,EACjBhI,EAAMu4B,SAAU,IAMlB9+B,KAAKC,SAAS4G,QAAQ,qB,qBAQxB,WACE,IAAMN,EAAQvG,KACRqc,EAAW,iBAAkB/hB,aAA0C,IAAxBA,OAAOgiB,aACxD6jB,GAAU,EAGV9jB,GAAYrc,KAAKJ,QAAQwgC,kBAExBpgC,KAAKJ,QAAQ8e,cAChB1e,KAAKC,SACJuB,GAAG,wBAAyB,WACtB+E,EAAMgI,WACThI,EAAMyW,QAAU9I,WAAW,WACzB3N,EAAM6kB,QACL7kB,EAAM3G,QAAQqd,eAGpBzb,GAAG,wBAAyBqU,OAAAA,EAAAA,qBAAAA,CAAqB,WAChDd,aAAaxO,EAAMyW,SACdmjB,KAAY55B,EAAMu4B,SAAYv4B,EAAM3G,QAAQwe,YAC/C7X,EAAMkX,UAKRpB,GACFrc,KAAKC,SACJuB,GAAG,qCAAsC,WACxC+E,EAAMgI,SAAWhI,EAAMkX,OAASlX,EAAM6kB,SAItCprB,KAAKJ,QAAQwe,UACfpe,KAAKC,SAASuB,GAAG,uBAAwB,WACnC+E,EAAMu4B,UAIRv4B,EAAMu4B,SAAU,GACXv4B,EAAM3G,QAAQ8e,cAAiBnY,EAAMtG,SAASqC,KAAK,aAAiBiE,EAAMgI,UAC7EhI,EAAM6kB,UAKZprB,KAAKC,SAASuB,GAAG,uBAAwB,WACvC+E,EAAMu4B,SAAU,IAIpB9+B,KAAKC,SAASuB,GAAG,CAGfgb,mBAAoBxc,KAAKyd,KAAKvI,KAAKlV,QAGrCA,KAAKC,SACFuB,GAAG,mBAAoB,WAEtB,OADA2+B,GAAU,EACN55B,EAAMu4B,SAGJv4B,EAAM3G,QAAQwe,YAAa+hB,GAAU,IAClC,QAEP55B,EAAM6kB,SAIT5pB,GAAG,sBAAuB,WACzB2+B,GAAU,EACV55B,EAAMu4B,SAAU,EAChBv4B,EAAMkX,SAGPjc,GAAG,sBAAuB,WACrB+E,EAAMgI,UACRhI,EAAMoW,oB,oBASd,WACM3c,KAAKuO,SACPvO,KAAKyd,OAELzd,KAAKorB,S,sBAQT,WACEprB,KAAKC,SAASqC,KAAK,QAAStC,KAAKg/B,SAASz1B,QAC5BhI,IAAI,2BACJ6D,YAAYpF,KAAKJ,QAAQy/B,cACzBj6B,YAAY,yBACZ+L,WAAW,0FAEzBnR,KAAKg/B,SAAS7uB,c,gCAIlB3Q,EAAQW,SAAW,CAOjB8c,WAAY,IAOZ+iB,eAAgB,IAOhBE,gBAAiB,IAOjBxhB,cAAc,EASd0hB,iBAAiB,EAOjBT,gBAAiB,GAOjBC,aAAc,UAOdP,aAAc,UAOdS,OAAQ,QAORd,SAAU,GAOVD,QAAS,GACTsB,eAAgB,gBAOhBjiB,WAAW,EAOXnC,SAAU,OAOVG,UAAW,OAQXwB,cAAc,EAUdC,oBAAoB,EAOpBH,QAAS,EAOTC,QAAS,EAOT+hB,cAAe,GAOfD,aAAc,GAQdP,WAAW,I,2DCvcb1kC,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,MAAA,WAAA,OAAA8C,IAAA,IAAIA,EAAM,CACR+hB,iBAgBF,SAA0B5f,EAASuD,EAAQo9B,EAAQC,EAAQC,GACzD,OAAsE,IAA/D9R,EAAY/uB,EAASuD,EAAQo9B,EAAQC,EAAQC,IAhBpD9R,YAAaA,EACb1T,cAAeA,EACfmT,mBA+GF,SAA4BxuB,EAASoL,EAAQkR,EAAUG,EAAWsB,EAASC,EAAS8iB,GAClF,IAGQ3Y,EAAQ4Y,EAHZC,EAAW3lB,EAAcrb,GACzBihC,EAAc71B,EAASiQ,EAAcjQ,GAAU,KAInD,GAAoB,OAAhB61B,EAAsB,CAE1B,OAAQ3kB,GACN,IAAK,MACH6L,EAAS8Y,EAAYr1B,OAAOG,KAAOi1B,EAASrmB,OAASoD,GACrD,MACF,IAAK,SACHoK,EAAS8Y,EAAYr1B,OAAOG,IAAMk1B,EAAYtmB,OAASoD,EACvD,MACF,IAAK,OACHgjB,EAAUE,EAAYr1B,OAAO4hB,MAAQwT,EAASzlB,MAAQyC,GACtD,MACF,IAAK,QACH+iB,EAAUE,EAAYr1B,OAAO4hB,KAAOyT,EAAY1lB,MAAQyC,EAK5D,OAAQ1B,GACN,IAAK,MACL,IAAK,SACH,OAAQG,GACN,IAAK,OACHskB,EAAUE,EAAYr1B,OAAO4hB,KAAOxP,EACpC,MACF,IAAK,QACH+iB,EAAUE,EAAYr1B,OAAO4hB,KAAOwT,EAASzlB,MAAQ0lB,EAAY1lB,MAAQyC,EACzE,MACF,IAAK,SACH+iB,EAAUD,EAAa9iB,EAAYijB,EAAYr1B,OAAO4hB,KAAQyT,EAAY1lB,MAAQ,EAAOylB,EAASzlB,MAAQ,EAAMyC,EAGpH,MACF,IAAK,QACL,IAAK,OACH,OAAQvB,GACN,IAAK,SACH0L,EAAS8Y,EAAYr1B,OAAOG,IAAMgS,EAAUkjB,EAAYtmB,OAASqmB,EAASrmB,OAC1E,MACF,IAAK,MACHwN,EAAS8Y,EAAYr1B,OAAOG,IAAMgS,EAClC,MACF,IAAK,SACHoK,EAAU8Y,EAAYr1B,OAAOG,IAAMgS,EAAWkjB,EAAYtmB,OAAS,EAAOqmB,EAASrmB,OAAS,IAOpG,MAAO,CAAC5O,IAAKoc,EAAQqF,KAAMuT,KAtJ7B,SAAShS,EAAY/uB,EAASuD,EAAQo9B,EAAQC,EAAQC,GACpD,IAKEK,EACAC,EACAC,EAPEC,EAAUhmB,EAAcrb,GAsB5B,OAdEshC,EANE/9B,GAGF29B,GAFIK,EAAUlmB,EAAc9X,IAENoX,OAAS4mB,EAAQ31B,OAAOG,KAAQs1B,EAAQz1B,OAAOG,IAAMs1B,EAAQ1mB,QACnFwmB,EAAaE,EAAQz1B,OAAOG,IAAMw1B,EAAQ31B,OAAOG,IACjDq1B,EAAaC,EAAQz1B,OAAO4hB,KAAO+T,EAAQ31B,OAAO4hB,KACpC+T,EAAQhmB,MAAQgmB,EAAQ31B,OAAO4hB,MAAS6T,EAAQz1B,OAAO4hB,KAAO6T,EAAQ9lB,SAGpF2lB,EAAcG,EAAQG,WAAW7mB,OAAS0mB,EAAQG,WAAW51B,OAAOG,KAAQs1B,EAAQz1B,OAAOG,IAAMs1B,EAAQ1mB,QACzGwmB,EAAaE,EAAQz1B,OAAOG,IAAMs1B,EAAQG,WAAW51B,OAAOG,IAC5Dq1B,EAAaC,EAAQz1B,OAAO4hB,KAAO6T,EAAQG,WAAW51B,OAAO4hB,KAChD6T,EAAQG,WAAWjmB,OAAS8lB,EAAQz1B,OAAO4hB,KAAO6T,EAAQ9lB,QAGzE2lB,EAAaL,EAAe,EAAInxB,KAAKE,IAAIsxB,EAAY,GACrDC,EAAazxB,KAAKE,IAAIuxB,EAAS,GAC/BC,EAAa1xB,KAAKE,IAAIwxB,EAAU,GAChCE,EAAa5xB,KAAKE,IAAI0xB,EAAW,GAE7BX,EACKS,EAAWE,EAEhBV,EACKO,EAAUD,EAIZxxB,KAAK+xB,KAAMN,EAAUA,EAAYD,EAAaA,EAAeE,EAAWA,EAAaE,EAAYA,GAU1G,SAASjmB,EAAc5T,GAGrB,IAFAA,EAAOA,EAAKtH,OAASsH,EAAK,GAAKA,KAElB9M,QAAU8M,IAASoP,SAC9B,MAAM,IAAIkoB,MAAM,gDAGlB,IAAI2C,EAAOj6B,EAAK6T,wBACZqmB,EAAUl6B,EAAKm6B,WAAWtmB,wBAC1BumB,EAAUhrB,SAAS2G,KAAKlC,wBACxBwmB,EAAOnnC,OAAOupB,YACd6d,EAAOpnC,OAAOqnC,YAElB,MAAO,CACLzmB,MAAOmmB,EAAKnmB,MACZZ,OAAQ+mB,EAAK/mB,OACb/O,OAAQ,CACNG,IAAK21B,EAAK31B,IAAM+1B,EAChBtU,KAAMkU,EAAKlU,KAAOuU,GAEpBE,WAAY,CACV1mB,MAAOomB,EAAQpmB,MACfZ,OAAQgnB,EAAQhnB,OAChB/O,OAAQ,CACNG,IAAK41B,EAAQ51B,IAAM+1B,EACnBtU,KAAMmU,EAAQnU,KAAOuU,IAGzBP,WAAY,CACVjmB,MAAOsmB,EAAQtmB,MACfZ,OAAQknB,EAAQlnB,OAChB/O,OAAQ,CACNG,IAAK+1B,EACLtU,KAAMuU,O,mEC/FdlnC,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,iBAAA,WAAA,OAAA+C,IAAA,IAAA9C,EAAAH,EAAA,UAAAI,EAAAJ,EAAAK,EAAAF,GAOA,SAAS8C,EAAeokC,EAAQhtB,GAC9B,IAAIitB,EAAWD,EAAO/hC,OAyBtB,SAASiiC,IAEU,MADjBD,GAEEjtB,IA1Ba,IAAbitB,GACFjtB,IAGFgtB,EAAO7gC,KAAK,WAEV,IAKMghC,EAEAC,EAPFjiC,KAAKkiC,eAAyC,IAAtBliC,KAAKmiC,aAC/BJ,KAIIC,EAAQ,IAAII,MAEZH,EAAS,iCACbhlC,GAAAA,CAAE+kC,GAAO/qB,IAAIgrB,EAAQ,SAASI,IAE5BplC,GAAAA,CAAE+C,MAAMuB,IAAI0gC,EAAQI,GACpBN,MAEFC,EAAMM,IAAMrlC,GAAAA,CAAE+C,MAAMsC,KAAK,Y,gEC7B/B9H,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,WAAA,WAAA,OAAAgD,IAAA,IAAA/C,EAAAH,EAAA,UAAAI,EAAAJ,EAAAK,EAAAF,GAAA4nC,EAAA/nC,EAAA,iCAWMgoC,EAAW,CACfC,EAAG,MACHC,GAAI,QACJC,GAAI,SACJC,GAAI,QACJC,GAAI,MACJC,GAAI,OACJC,GAAI,aACJC,GAAI,WACJC,GAAI,cACJC,GAAI,cAGFC,EAAW,GAGf,SAAS9lB,EAAcpd,GACrB,QAAIA,GACGA,EAASU,KAAK,gLAAgLiE,OAAO,WAC1M,SAAK3H,GAAAA,CAAE+C,MAAM+F,GAAG,aAAe9I,GAAAA,CAAE+C,MAAMsC,KAAK,YAAc,KAG3D8gC,KAAM,SAAU/oC,EAAGmyB,GAClB,GAAIvvB,GAAAA,CAAE5C,GAAGiI,KAAK,cAAgBrF,GAAAA,CAAEuvB,GAAGlqB,KAAK,YACtC,OAAO,EAET,IAAI+gC,EAAYn7B,SAASjL,GAAAA,CAAE5C,GAAGiI,KAAK,YAAa,IAC9CghC,EAAYp7B,SAASjL,GAAAA,CAAEuvB,GAAGlqB,KAAK,YAAa,IAE9C,YAAqC,IAA1BrF,GAAAA,CAAE5C,GAAGiI,KAAK,aAA2C,EAAZghC,EAC3C,OAE4B,IAA1BrmC,GAAAA,CAAEuvB,GAAGlqB,KAAK,aAA2C,EAAZ+gC,GAC1C,EAEQ,IAAdA,GAA+B,EAAZC,EACd,EAES,IAAdA,GAA+B,EAAZD,GAGnBA,EAAYC,GAFN,EAKMA,EAAZD,EACK,OADT,IAMJ,SAASE,EAASrb,GAChB,IAGAtmB,GAHIA,EAAM4gC,EAASta,EAAMyV,OAASzV,EAAMwQ,UAAY8K,OAAOC,aAAavb,EAAMyV,OAAO+F,eAG3E/vB,QAAQ,MAAO,IASzB,OAPIuU,EAAMyb,WAAU/hC,EAAG,SAAAwB,OAAYxB,IAC/BsmB,EAAM0b,UAAShiC,EAAG,QAAAwB,OAAWxB,IAIjCA,GAHkBA,EAAdsmB,EAAM2b,OAAW,OAAAzgC,OAAUxB,GAGzBA,GAAI+R,QAAQ,KAAM,IAK1B,IAAIjW,EAAW,CACbqU,KAgHF,SAAqB+xB,GACnB,IACSC,EADLC,EAAI,GACR,IAASD,KAAMD,EACTA,EAAIn8B,eAAeo8B,KAAKC,EAAEF,EAAIC,IAAOD,EAAIC,IAE/C,OAAOC,EArHDC,CAAYzB,GAQlBe,SAAUA,EAQVv3B,UAjBa,SAiBHkc,EAAOgc,EAAWhlB,GAC1B,IAAIilB,EAAchB,EAASe,GACzBxL,EAAU14B,KAAKujC,SAASrb,GAK1B,IAAKic,EAAa,OAAO13B,QAAQkW,KAAK,2BAGT,IAAzBuF,EAAMkc,kBAYVzxB,EAAKuM,QAT0B,IAApBilB,EAAY/a,IACZ+a,EAEHlmB,OAAAA,EAAAA,IAAAA,GAAchhB,EAAAA,EAAEiD,OAAO,GAAIikC,EAAY/a,IAAK+a,EAAYjnC,KAEhDD,EAAAA,EAAEiD,OAAO,GAAIikC,EAAYjnC,IAAKinC,EAAY/a,MAE3CsP,MAIS,mBAAP/lB,GACX0xB,EAAc1xB,EAAGW,QAGrB4U,EAAMkc,gBAAiB,GAGnBllB,EAAU3S,SAAwC,mBAAtB2S,EAAU3S,SACtC2S,EAAU3S,QAAQ83B,KAIlBnlB,EAAUolB,WAA4C,mBAAxBplB,EAAUolB,WACxCplB,EAAUolB,cAWlBjnB,cAAeA,EAQf7T,SAzEa,SAyEJ+6B,EAAeC,GACtBrB,EAASoB,GAAiBC,GAU5BjnB,UApFa,SAoFHtd,GACR,IAAImd,EAAaC,EAAcpd,GAC3BwkC,EAAkBrnB,EAAWhO,GAAG,GAChCs1B,EAAiBtnB,EAAWhO,IAAI,GAEpCnP,EAASuB,GAAG,uBAAwB,SAAS0mB,GACvCA,EAAMpmB,SAAW4iC,EAAe,IAA0B,QAApBnB,EAASrb,IACjDA,EAAMrmB,iBACN4iC,EAAgBt4B,SAET+b,EAAMpmB,SAAW2iC,EAAgB,IAA0B,cAApBlB,EAASrb,KACvDA,EAAMrmB,iBACN6iC,EAAev4B,YAQrBqR,aAxGa,SAwGAvd,GACXA,EAASsB,IAAI,2B,sHC3JTmV,EAEJhK,EANEi4B,E,yrCAJNrqC,OAAOioB,aAAejoB,OAAOioB,aAIvBoiB,EAAcrqC,OAAOqqC,YAAcrqC,OAAOsqC,SAIxCluB,EAAUF,SAASC,cAAc,SACrCouB,EAAcruB,SAASsuB,qBAAqB,UAAU,GACtDp4B,EAAc,KAEdgK,EAAMlU,KAAQ,WACdkU,EAAM5T,GAAQ,oBAET+hC,EAGHA,EAAOtD,WAAWwD,aAAaruB,EAAOmuB,GAFtCruB,SAASwuB,KAAKC,YAAYvuB,GAM5BhK,EAAQ,qBAAsBpS,QAAWA,OAAO6hC,iBAAiBzlB,EAAO,OAASA,EAAMwuB,aAEvFP,EAAa,CACXQ,YAAa,SAAUP,GACjBr7B,EAAO,UAAYq7B,EAAQ,yCAU/B,OAPIluB,EAAM0uB,WACR1uB,EAAM0uB,WAAWC,QAAU97B,EAE3BmN,EAAM4uB,YAAc/7B,EAIA,QAAfmD,EAAKwO,SAKX,SAAS0pB,GACd,MAAO,CACLniB,QAASkiB,EAAWQ,YAAYP,GAAS,OACzCA,MAAOA,GAAS,UAMtB,IAAIjnC,EAAa,CACfilB,QAAS,GAETyP,QAAS,GAOTl0B,MAVe,WAab,IAA2B,IAAvB6B,KAAKulC,cACP,OAAOvlC,KAEPA,KAAKulC,eAAgB,EAIXtoC,GAAAA,CAAE,sBACJ6C,QACR7C,GAAAA,CAAE,6DAA6Di0B,SAAS1a,SAASwuB,MAGnF,IACIQ,EA6MFC,EAvMO7jC,EAPL8jC,EAAkBzoC,GAAAA,CAAE,kBAAkBqK,IAAI,eAO9C,IAAS1F,KAuMP6jC,EAAc,GA3MhBD,EA6MiB,iBAHOnzB,EA1MUqzB,KAiNpCrzB,EAAMA,EAAID,OAAOc,MAAM,GAAI,IAM3BuyB,EAAcpzB,EAAIjM,MAAM,KAAKu/B,OAAO,SAASC,EAAKtO,GAChD,IAAIuO,EAAQvO,EAAM3jB,QAAQ,MAAO,KAAKvN,MAAM,KACxCxE,EAAMikC,EAAM,GACZljC,EAAMkjC,EAAM,GAChBjkC,EAAMkkC,mBAAmBlkC,GAIzBe,OAAqB,IAARA,EAAsB,KAAOmjC,mBAAmBnjC,GAS7D,OAPKijC,EAAIj+B,eAAe/F,GAEboR,MAAM+yB,QAAQH,EAAIhkC,IAC3BgkC,EAAIhkC,GAAKqE,KAAKtD,GAEdijC,EAAIhkC,GAAO,CAACgkC,EAAIhkC,GAAMe,GAJtBijC,EAAIhkC,GAAOe,EAMNijC,GACN,IA3BMH,EAvNIzlC,KAWN4iB,QAAU,GAEC4iB,EACXA,EAAa79B,eAAe/F,IAdtB5B,KAeF4iB,QAAQ3c,KAAK,CAChBuK,KAAM5O,EACNkhB,MAAK,+BAAA1f,OAAiCoiC,EAAa5jC,GAA9C,OAKX5B,KAAKqyB,QAAUryB,KAAKgmC,kBAEpBhmC,KAAKimC,YASPC,QApDe,WAqDblmC,KAAKulC,eAAgB,EACrBvlC,KAAK7B,SASPwpB,QA/De,SA+DPwe,GACF3jB,EAAQxiB,KAAK8hB,IAAIqkB,GAErB,QAAI3jB,GACKloB,OAAOioB,WAAWC,GAAOC,SAapC2jB,KAhFe,SAgFVD,GACH,OAAOA,IAASnmC,KAAKgmC,mBASvBK,KA1Fe,SA0FVF,GACGG,EAAWtmC,KAAKiM,KAAKk6B,GAI3B,OAAIG,IACMtmC,KAAK2nB,QAAQ2e,IAczBvgC,GA9Ge,SA8GZogC,GACD,IACAI,EAAAC,EADcL,EAAK/zB,OAAOhM,MAAM,KAAKxB,OAAO,SAAA+M,GAAC,QAAMA,EAAE7R,SACrD,GAAO2mC,EAAPF,EAAA,GAAAG,EAAAH,EAAA,GAAeI,OAAf,IAAAD,EAA4B,GAA5BA,EAGA,GAAmB,SAAfC,EACF,OAAO3mC,KAAKomC,KAAKK,GAGnB,IAAKE,GAA6B,OAAfA,EACjB,OAAO3mC,KAAK2nB,QAAQ8e,GAGtB,GAAmB,SAAfE,EACF,OAAO3mC,KAAKqmC,KAAKI,GAGnB,MAAM,IAAI/H,MAAJ,oIAAAt7B,OAEkE+iC,EAFlE,cAYRrkB,IA3Ie,SA2IXqkB,GACF,IAAK,IAAI/rC,KAAK4F,KAAK4iB,QACjB,GAAG5iB,KAAK4iB,QAAQjb,eAAevN,GAAI,CAC7BooB,EAAQxiB,KAAK4iB,QAAQxoB,GACzB,GAAI+rC,IAAS3jB,EAAMhS,KAAM,OAAOgS,EAAMM,MAI1C,OAAO,MAST7W,KA5Je,SA4JVk6B,GAAM,IAAA5/B,EAAAvG,KACH4mC,EAAa5mC,KAAK4iB,QAAQikB,UAAU,SAACC,GAAD,OAAOvgC,EAAKwgC,cAAcD,KAAOX,IAC3E,IAAoB,IAAhBS,EACF,MAAM,IAAIlI,MAAJ,iCAAAt7B,OACkB+iC,EADlB,8GAMFa,EAAYhnC,KAAK4iB,QAAQgkB,EAAa,GAC5C,OAAOI,EAAYA,EAAUx2B,KAAO,MAUtCu2B,cAhLe,SAgLDjkB,GACZ,GAAqB,iBAAVA,EACT,OAAOA,EACT,GAAqB,WAAjBtR,EAAOsR,GACT,OAAOA,EAAMtS,KACf,MAAM,IAAIsC,UAAJ,+IAAA1P,OAEuE0f,EAFvE,OAAA1f,OAAAoO,EAEyFsR,GAFzF,aAYRkjB,gBAjMe,WAoMb,IAFA,IAAIiB,EAEK7sC,EAAI,EAAGA,EAAI4F,KAAK4iB,QAAQ9iB,OAAQ1F,IAAK,CAC5C,IAAIooB,EAAQxiB,KAAK4iB,QAAQxoB,GAErBE,OAAOioB,WAAWC,EAAMM,OAAOL,UACjCwkB,EAAUzkB,GAId,OAAOykB,GAAWjnC,KAAK+mC,cAAcE,IAQvChB,SApNe,WAoNJ,IAAAzlC,EAAAR,KACT/C,GAAAA,CAAE3C,QAAQkH,GAAG,oBAAqB,WAChC,IAAI0lC,EAAU1mC,EAAKwlC,kBAAmBmB,EAAc3mC,EAAK6xB,QAErD6U,IAAYC,IAEd3mC,EAAK6xB,QAAU6U,EAGfjqC,GAAAA,CAAE3C,QAAQuM,QAAQ,wBAAyB,CAACqgC,EAASC,U,8DClS7D3sC,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,OAAA,WAAA,OAAAmD,IAAArD,EAAAO,EAAAL,EAAA,SAAA,WAAA,OAAAkD,IAAA,IAAAjD,EAAAH,EAAA,UAAAI,EAAAJ,EAAAK,EAAAF,GAAA4nC,EAAA/nC,EAAA,iCAQM4sC,EAAgB,CAAC,YAAa,aAC9BC,EAAgB,CAAC,mBAAoB,oBAErCzpC,EAAS,CACbmuB,UAAW,SAASpsB,EAAS2nC,EAAWzwB,GACtCrL,GAAQ,EAAM7L,EAAS2nC,EAAWzwB,IAGpCmV,WAAY,SAASrsB,EAAS2nC,EAAWzwB,GACvCrL,GAAQ,EAAO7L,EAAS2nC,EAAWzwB,KAIvC,SAAShZ,EAAKusB,EAAUhjB,EAAMuL,GAC5B,IAAI40B,EAAMC,EAAMvyB,EAAQ,KAExB,GAAiB,IAAbmV,EAGF,OAFAzX,EAAGW,MAAMlM,QACTA,EAAKP,QAAQ,sBAAuB,CAACO,IAAOuP,eAAe,sBAAuB,CAACvP,IAerFmgC,EAAOjtC,OAAOka,sBAXd,SAASizB,EAAKC,GAEZF,EAAOE,GADIzyB,EAAPA,GAAeyyB,GAEnB/0B,EAAGW,MAAMlM,GAENogC,EAAOpd,EAAWmd,EAAOjtC,OAAOka,sBAAsBizB,EAAMrgC,IAE7D9M,OAAOoa,qBAAqB6yB,GAC5BngC,EAAKP,QAAQ,sBAAuB,CAACO,IAAOuP,eAAe,sBAAuB,CAACvP,OAezF,SAASoE,EAAQm8B,EAAMhoC,EAAS2nC,EAAWzwB,GAGzC,IAEI+wB,EACAjiB,EAoCJ,SAASkiB,IACPloC,EAAQ,GAAG+W,MAAMoxB,mBAAqB,EACtCnoC,EAAQyF,YAAR,GAAAhC,OAAuBwkC,EAAvB,KAAAxkC,OAAoCuiB,EAApC,KAAAviB,OAAmDkkC,KA3CrD3nC,EAAU1C,GAAAA,CAAE0C,GAASyP,GAAG,IAEXtP,SAET8nC,EAAYD,EAAOP,EAAY,GAAKA,EAAY,GAChDzhB,EAAcgiB,EAAON,EAAc,GAAKA,EAAc,GAG1DQ,IAEAloC,EACGuE,SAASojC,GACThgC,IAAI,aAAc,QAErBkN,sBAAsB,WACpB7U,EAAQuE,SAAS0jC,GACbD,GAAMhoC,EAAQyrB,SAIpB5W,sBAAsB,WAIpB7U,EAAQ,GAAGooC,YACXpoC,EACG2H,IAAI,aAAc,IAClBpD,SAASyhB,KAIdhmB,EAAQsX,IAAI5Z,OAAAA,EAAAA,cAAAA,CAAcsC,GAG1B,WACOgoC,GAAMhoC,EAAQ8d,OACnBoqB,IACIhxB,GAAIA,EAAGvD,MAAM3T,Q,4DC3FrBnF,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,OAAA,WAAA,OAAAoD,IAAA,IAAAnD,EAAAH,EAAA,UAAAI,EAAAJ,EAAAK,EAAAF,GAEMmD,EAAO,CACXmQ,QADW,SACH+5B,GAAmB,IAAbxlC,EAAa,EAAA3C,UAAAC,aAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAN,KACnBmoC,EAAK1lC,KAAK,OAAQ,WAClB0lC,EAAKrnC,KAAK,KAAK2B,KAAK,CAACiI,KAAQ,aAE7B,IAAI09B,EAAQD,EAAKrnC,KAAK,MAAM2B,KAAK,CAACiI,KAAQ,SACtC29B,EAAY,MAAA9kC,OAASZ,EAAT,YACZ2lC,EAAY,GAAA/kC,OAAM8kC,EAAN,SACZE,EAAW,MAAAhlC,OAASZ,EAAT,mBACX6lC,EAAsB,cAAT7lC,EAEjBylC,EAAMjnC,KAAK,WACT,IAAIsnC,EAAQrrC,GAAAA,CAAE+C,MACVqO,EAAOi6B,EAAMr+B,SAAS,MAEtBoE,EAAKvO,SACPwoC,EAAMpkC,SAASkkC,GACZC,IACDC,EAAMr+B,SAAS,WAAW3H,KAAK,CAC7BmZ,iBAAiB,EACjB8sB,aAAcD,EAAMr+B,SAAS,WAAWV,SAK9B,cAAT/G,GACD8lC,EAAMhmC,KAAK,CAACgI,iBAAiB,KAGjC+D,EACGnK,SADH,WAAAd,OACuB8kC,IACpB5lC,KAAK,CACJkmC,eAAgB,GAChBj+B,KAAQ,YAEA,cAAT/H,GACD6L,EAAK/L,KAAK,CAACmI,eAAe,KAI1B69B,EAAMplC,OAAO,kBAAkBpD,QACjCwoC,EAAMpkC,SAAN,mBAAAd,OAAkC+kC,OAOxC/3B,KAhDW,SAgDN43B,EAAMxlC,GACT,IACI0lC,EAAY,MAAA9kC,OAASZ,EAAT,YACZ2lC,EAAY,GAAA/kC,OAAM8kC,EAAN,SACZE,EAAW,MAAAhlC,OAASZ,EAAT,mBAEfwlC,EACGrnC,KAAK,0DACLyE,YAFH,GAAAhC,OAEkB8kC,EAFlB,KAAA9kC,OAEkC+kC,EAFlC,KAAA/kC,OAEkDglC,EAFlD,uCAGGj3B,WAAW,gBAAgB7J,IAAI,UAAW,O,6DC3DjD,SAASvJ,EAAMqJ,EAAMxH,EAASiX,GAC5B,IAII5B,EACAjB,EALAzN,EAAQvG,KACRoqB,EAAWxqB,EAAQwqB,SACnBqe,EAAY32B,OAAOC,KAAK3K,EAAKhH,QAAQ,IAAM,QAC3CsoC,GAAU,EAId1oC,KAAKisB,UAAW,EAEhBjsB,KAAKmrB,QAAU,WACbud,GAAU,EACV3zB,aAAaf,GACbhU,KAAKiV,SAGPjV,KAAKiV,MAAQ,WACXjV,KAAKisB,UAAW,EAEhBlX,aAAaf,GACb00B,EAASA,GAAU,EAAIte,EAAWse,EAClCthC,EAAKhH,KAAK,UAAU,GACpB6U,EAAQd,KAAKC,MACbJ,EAAQE,WAAW,WACdtU,EAAQ0qB,UACT/jB,EAAM4kB,UAEJtU,GAAoB,mBAAPA,GAAqBA,KACrC6xB,GACHthC,EAAKP,QAAL,iBAAAzD,OAA8BqlC,KAGhCzoC,KAAK8qB,MAAQ,WACX9qB,KAAKisB,UAAW,EAEhBlX,aAAaf,GACb5M,EAAKhH,KAAK,UAAU,GACpB,IAAI2E,EAAMoP,KAAKC,MACfs0B,GAAmB3jC,EAAMkQ,EACzB7N,EAAKP,QAAL,kBAAAzD,OAA+BqlC,KAvCnCjuC,EAAAC,EAAAC,GAAAF,EAAAO,EAAAL,EAAA,QAAA,WAAA,OAAAqD,K,ySCOA,IAEI4qC,EACAC,EACAC,EACAC,EALA9qC,EAAQ,GAMR+qC,GAAW,EACXC,GAAW,EAEf,SAASC,EAAWtnC,GAClB3B,KAAKkpC,oBAAoB,YAAaC,GACtCnpC,KAAKkpC,oBAAoB,WAAYD,GAGhCD,IACCI,EAAWnsC,EAAAA,EAAEosC,MAAM,MAAOP,GAAcnnC,GAC5C1E,GAAAA,CAAE+C,MAAM6G,QAAQuiC,IAGlBN,EAAa,KAEbE,EADAD,GAAW,EAIb,SAASI,EAAYxnC,GAGnB,IAGM2nC,EAEAjQ,GAPF,IAASp8B,EAAAA,EAAEssC,UAAU1nC,gBAAkBF,EAAEE,iBAE1CknC,IACGS,EAAI7nC,EAAEymB,QAAQ,GAAGwP,MAEjB0R,EAAKX,EAAYa,EAGrBR,GAAW,EACXH,GAAc,IAAI10B,MAAOE,UAAYu0B,GAEnCvP,EADChqB,KAAKkqB,IAAI+P,IAAOrsC,EAAAA,EAAEssC,UAAUE,eAAiBZ,GAAe5rC,EAAAA,EAAEssC,UAAUG,cAC9D,EAALJ,EAAS,OAAS,QAKvBjQ,KACD13B,EAAEE,iBACFonC,EAAW31B,MAAMtT,KAAMH,WACvB5C,GAAAA,CAAE+C,MACC6G,QAAQ5J,EAAAA,EAAEosC,MAAM,QAASv3B,OAAO63B,OAAO,GAAIhoC,IAAK03B,GAChDxyB,QAAQ5J,EAAAA,EAAEosC,MAAF,QAAAjmC,OAAgBi2B,GAAOvnB,OAAO63B,OAAO,GAAIhoC,OAM1D,SAASioC,EAAajoC,GAEK,IAArBA,EAAEymB,QAAQtoB,SACZ6oC,EAAYhnC,EAAEymB,QAAQ,GAAGwP,MACzBkR,EAAannC,EAEbqnC,IADAD,GAAW,GAEXH,GAAY,IAAIz0B,MAAOE,UACvBrU,KAAK6pC,iBAAiB,YAAaV,EAAa,CAAEW,SAAU,IAAS7sC,EAAAA,EAAEssC,UAAU1nC,iBACjF7B,KAAK6pC,iBAAiB,WAAYZ,GAAY,IAIlD,SAAShrC,IACP+B,KAAK6pC,kBAAoB7pC,KAAK6pC,iBAAiB,aAAcD,EAAc,CAAEE,SAAU,I,IAOnFC,E,WACJ,SAAAA,K,4FAAcv0B,CAAAxV,KAAA+pC,GACZ/pC,KAAKqQ,QAAU,QACfrQ,KAAKgqC,QAAU,iBAAkBxzB,SAASsN,gBAC1C9jB,KAAK6B,gBAAiB,EACtB7B,KAAKypC,cAAgB,GACrBzpC,KAAK0pC,cAAgB,IACrB1pC,KAAK7B,Q,4CAGP,WACElB,EAAAA,EAAEirB,MAAM+hB,QAAQrf,MAAQ,CAAEsf,MAAOjsC,GACjChB,EAAAA,EAAEirB,MAAM+hB,QAAQE,IAAM,CAAED,MAAOjsC,GAE/BhB,EAAAA,EAAE+D,KAAK,CAAC,OAAQ,KAAM,OAAQ,SAAU,WACtC/D,EAAAA,EAAEirB,MAAM+hB,QAAR,QAAA7mC,OAAwBpD,OAAU,CAAEkqC,MAAO,WACzCjtC,GAAAA,CAAE+C,MAAMwB,GAAG,QAASvE,EAAAA,EAAEmtC,e,gCAa9BpsC,EAAMqsC,eAAiB,WACrBptC,EAAAA,EAAEssC,UAAY,IAAIQ,EAAU9sC,EAAAA,IAM9Be,EAAMssC,kBAAoB,WACxBrtC,EAAAA,EAAE0V,GAAGkmB,SAAW,WACd74B,KAAKgB,KAAK,SAAS5G,EAAGyJ,GACpB5G,GAAAA,CAAE4G,GAAIqR,KAAK,4CAA6C,SAASgT,GAG/DqiB,EAAYriB,OAIhB,IAAIqiB,EAAc,SAASriB,GACzB,IAQIsiB,EAPA3lC,EADUqjB,EAAMuiB,eACA,GAMhBjoC,EALa,CACXkoC,WAAY,YACZC,UAAW,YACXC,SAAU,WAEM1iB,EAAM1lB,MAIzB,eAAgBlI,QAAuC,mBAAtBA,OAAOuwC,WACzCL,EAAiB,IAAIlwC,OAAOuwC,WAAWroC,EAAM,CAC3CsoC,SAAW,EACXC,YAAc,EACdC,QAAWnmC,EAAMmmC,QACjBC,QAAWpmC,EAAMomC,QACjBC,QAAWrmC,EAAMqmC,QACjBlT,QAAWnzB,EAAMmzB,WAGnBwS,EAAiBh0B,SAAS20B,YAAY,eACvBC,eAAe5oC,GAAM,GAAM,EAAMlI,OAAQ,EAAGuK,EAAMmmC,QAASnmC,EAAMomC,QAASpmC,EAAMqmC,QAASrmC,EAAMmzB,SAAS,GAAO,GAAO,GAAO,EAAO,EAAW,MAEhKnzB,EAAM/C,OAAOupC,cAAcb,MAKjCxsC,EAAMC,KAAO,gBACgB,IAAjBhB,EAAAA,EAAEssC,YACVvrC,EAAMqsC,eAAeptC,EAAAA,GACrBe,EAAMssC,kBAAkBrtC,EAAAA,M,ybCjJX,SAAXquC,EAAYznC,EAAIrB,GACpBqB,EAAGzD,KAAKoC,GAAM4D,MAAM,KAAK/C,QAAQ,SAAAP,GAC/B7F,GAAAA,CAAC,IAAAmG,OAAKN,IAAgB,UAATN,EAAmB,UAAY,kBAA5C,GAAAY,OAAiEZ,EAAjE,eAAoF,CAACqB,MAZzF,IAAM0nC,EAAoB,WAExB,IADA,IAAIC,EAAW,CAAC,SAAU,MAAO,IAAK,KAAM,IACnCpxC,EAAE,EAAGA,EAAIoxC,EAAS1rC,OAAQ1F,IACjC,GAAI,GAAAgJ,OAAGooC,EAASpxC,GAAZ,sBAAoCE,OACtC,OAAOA,OAAM,GAAA8I,OAAIooC,EAASpxC,GAAb,qBAGjB,OAAO,EAPiB,GAgBtB8D,EAAW,CACbutC,UAAW,CACTC,MAAO,GACPC,OAAQ,IAEVC,aAAc,IAmIhB,SAASC,EAAuBC,EAAUjlC,EAASklC,GACjD,IAAI/3B,EAAOjB,EAAOC,MAAMC,UAAUC,MAAMC,KAAKtT,UAAW,GACxD5C,GAAAA,CAAE3C,QAAQkH,GAAGqF,EAAS,WAChBmN,GAASe,aAAaf,GAC1BA,EAAQE,WAAW,WACjB63B,EAASz4B,MAAM,KAAMP,IACpB+4B,GAAY,MAtInB5tC,EAASutC,UAAUC,MAAS,CAC1BM,aAAc,WACZV,EAASruC,GAAAA,CAAE+C,MAAO,SAEpBisC,cAAe,WACJhvC,GAAAA,CAAE+C,MAAMI,KAAK,SAEpBkrC,EAASruC,GAAAA,CAAE+C,MAAO,SAGlB/C,GAAAA,CAAE+C,MAAM6G,QAAQ,qBAGpBqlC,eAAgB,WACLjvC,GAAAA,CAAE+C,MAAMI,KAAK,UAEpBkrC,EAASruC,GAAAA,CAAE+C,MAAO,UAElB/C,GAAAA,CAAE+C,MAAM6G,QAAQ,sBAGpBslC,kBAAmB,SAASxqC,GAC1B,IAAI2lC,EAAYrqC,GAAAA,CAAE+C,MAAMI,KAAK,YAG7BuB,EAAE6mB,kBAEe,KAAd8e,EACD1pC,EAAAA,OAAOouB,WAAW/uB,GAAAA,CAAE+C,MAAOsnC,EAAW,WACpCrqC,GAAAA,CAAE+C,MAAM6G,QAAQ,eAGlB5J,GAAAA,CAAE+C,MAAMigC,UAAUp5B,QAAQ,cAG9BulC,oBAAqB,WACnB,IAAItpC,EAAK7F,GAAAA,CAAE+C,MAAMI,KAAK,gBACtBnD,GAAAA,CAAC,IAAAmG,OAAKN,IAAM6T,eAAe,oBAAqB,CAAC1Z,GAAAA,CAAE+C,UAKvD9B,EAAS0tC,aAAaS,gBAAkB,SAAChlC,GACvCA,EAAM9F,IAAI,mBAAoBrD,EAASutC,UAAUC,MAAMM,cACvD3kC,EAAM7F,GAAG,mBAAoB,cAAetD,EAASutC,UAAUC,MAAMM,eAKvE9tC,EAAS0tC,aAAaU,iBAAmB,SAACjlC,GACxCA,EAAM9F,IAAI,mBAAoBrD,EAASutC,UAAUC,MAAMO,eACvD5kC,EAAM7F,GAAG,mBAAoB,eAAgBtD,EAASutC,UAAUC,MAAMO,gBAIxE/tC,EAAS0tC,aAAaW,kBAAoB,SAACllC,GACzCA,EAAM9F,IAAI,mBAAoBrD,EAASutC,UAAUC,MAAMQ,gBACvD7kC,EAAM7F,GAAG,mBAAoB,gBAAiBtD,EAASutC,UAAUC,MAAMQ,iBAIzEhuC,EAAS0tC,aAAaY,qBAAuB,SAACnlC,GAC5CA,EAAM9F,IAAI,mBAAoBrD,EAASutC,UAAUC,MAAMS,mBACvD9kC,EAAM7F,GAAG,mBAAoB,oCAAqCtD,EAASutC,UAAUC,MAAMS,oBAI7FjuC,EAAS0tC,aAAaa,uBAAyB,SAACplC,GAC9CA,EAAM9F,IAAI,mCAAoCrD,EAASutC,UAAUC,MAAMU,qBACvE/kC,EAAM7F,GAAG,mCAAoC,sBAAuBtD,EAASutC,UAAUC,MAAMU,sBAM/FluC,EAASutC,UAAUE,OAAU,CAC3Be,eAAgB,SAASC,GACnBpB,GACFoB,EAAO3rC,KAAK,WACV/D,GAAAA,CAAE+C,MAAM2W,eAAe,yBAI3Bg2B,EAAOrqC,KAAK,cAAe,WAE7B44B,eAAgB,SAASyR,GACnBpB,GACFoB,EAAO3rC,KAAK,WACV/D,GAAAA,CAAE+C,MAAM2W,eAAe,yBAI3Bg2B,EAAOrqC,KAAK,cAAe,WAE7BsqC,gBAAiB,SAASjrC,EAAGkrC,GACvBzuC,EAASuD,EAAEmU,UAAU1P,MAAM,KAAK,GACtBnJ,GAAAA,CAAC,SAAAmG,OAAUhF,EAAV,MAAqBwC,IAAtB,mBAAAwC,OAA6CypC,EAA7C,OAEN7rC,KAAK,WACX,IAAIuF,EAAQtJ,GAAAA,CAAE+C,MACduG,EAAMoQ,eAAe,mBAAoB,CAACpQ,QAMhDrI,EAAS0tC,aAAakB,mBAAqB,SAASj8B,GAClD,IAAIk8B,EAAY9vC,GAAAA,CAAE,mBACd+vC,EAAY,CAAC,WAAY,UAAW,UAErCn8B,IACwB,iBAAfA,EACRm8B,EAAU/mC,KAAK4K,GACc,WAAtBW,EAAOX,IAAoD,iBAAlBA,EAAW,GAC3Dm8B,EAAYA,EAAU5pC,OAAOyN,GAE7BpE,QAAQtL,MAAM,iCAGf4rC,EAAUjtC,SACPmtC,EAAYD,EAAUppC,IAAI,SAAC4M,GAC7B,MAAA,cAAApN,OAAqBoN,KACpBwS,KAAK,KAER/lB,GAAAA,CAAE3C,QAAQiH,IAAI0rC,GAAWzrC,GAAGyrC,EAAW/uC,EAASutC,UAAUE,OAAOiB,mBAcrE1uC,EAAS0tC,aAAasB,kBAAoB,SAASpB,GACjD,IAAIa,EAAS1vC,GAAAA,CAAE,iBACZ0vC,EAAO7sC,QACR+rC,EAAuBC,EAAU,oBAAqB5tC,EAASutC,UAAUE,OAAOe,eAAgBC,IAIpGzuC,EAAS0tC,aAAauB,kBAAoB,SAASrB,GACjD,IAAIa,EAAS1vC,GAAAA,CAAE,iBACZ0vC,EAAO7sC,QACR+rC,EAAuBC,EAAU,oBAAqB5tC,EAASutC,UAAUE,OAAOzQ,eAAgByR,IAIpGzuC,EAAS0tC,aAAawB,0BAA4B,SAAS/lC,GACzD,IAAIkkC,EAAmB,OAAO,EAIE,SAA5B8B,EAAsCC,GACxC,IAAI9gC,EAAUvP,GAAAA,CAAEqwC,EAAoB,GAAGxrC,QAGvC,OAAQwrC,EAAoB,GAAG9qC,MAC7B,IAAK,aACiC,WAAhCgK,EAAQlK,KAAK,gBAAwE,gBAAzCgrC,EAAoB,GAAGC,eACrE/gC,EAAQmK,eAAe,sBAAuB,CAACnK,EAASlS,OAAOupB,cAE7B,WAAhCrX,EAAQlK,KAAK,gBAAwE,gBAAzCgrC,EAAoB,GAAGC,eACrE/gC,EAAQmK,eAAe,sBAAuB,CAACnK,IAEJ,UAAzC8gC,EAAoB,GAAGC,gBACzB/gC,EAAQhJ,QAAQ,iBAAiBlB,KAAK,cAAc,UACpDkK,EAAQhJ,QAAQ,iBAAiBmT,eAAe,sBAAuB,CAACnK,EAAQhJ,QAAQ,oBAE1F,MAEF,IAAK,YACHgJ,EAAQhJ,QAAQ,iBAAiBlB,KAAK,cAAc,UACpDkK,EAAQhJ,QAAQ,iBAAiBmT,eAAe,sBAAuB,CAACnK,EAAQhJ,QAAQ,mBACxF,MAEF,QACE,OAAO,GA3Bb,IAAImpC,EAAStlC,EAAM1G,KAAK,+CAgCxB,GAAIgsC,EAAO7sC,OAET,IAAK,IAAI1F,EAAI,EAAGA,GAAKuyC,EAAO7sC,OAAS,EAAG1F,IAChB,IAAImxC,EAAiB8B,GAC3BG,QAAQb,EAAOvyC,GAAI,CAAEqzC,YAAY,EAAMC,WAAW,EAAMC,eAAe,EAAOC,SAAS,EAAMC,gBAAiB,CAAC,cAAe,YAKpJ3vC,EAAS0tC,aAAakC,mBAAqB,WACzC,IAAIC,EAAY9wC,GAAAA,CAAEuZ,UAElBtY,EAAS0tC,aAAaS,gBAAgB0B,GACtC7vC,EAAS0tC,aAAaU,iBAAiByB,GACvC7vC,EAAS0tC,aAAaW,kBAAkBwB,GACxC7vC,EAAS0tC,aAAaY,qBAAqBuB,GAC3C7vC,EAAS0tC,aAAaa,uBAAuBsB,IAI/C7vC,EAAS0tC,aAAaoC,mBAAqB,WACzC,IAAID,EAAY9wC,GAAAA,CAAEuZ,UAClBtY,EAAS0tC,aAAawB,0BAA0BW,GAChD7vC,EAAS0tC,aAAasB,kBAAkB,KACxChvC,EAAS0tC,aAAauB,oBACtBjvC,EAAS0tC,aAAakB,sBAIxB5uC,EAASD,KAAO,SAAUgwC,EAAIlxC,GAC5BQ,OAAAA,EAAAA,OAAAA,CAAON,GAAAA,CAAE3C,QAAS,YACc,IAA1B2C,EAAAA,EAAEixC,sBACJhwC,EAAS0tC,aAAakC,qBACtB5vC,EAAS0tC,aAAaoC,qBACtB/wC,EAAAA,EAAEixC,qBAAsB,KAIzBnxC,IACDA,EAAWmB,SAAWA,EAEtBnB,EAAWoxC,SAAWjwC,EAAS0tC,aAAaoC,sB,kFC/PhDh0C,EAAAD,QAAAQ,ICCA6zC,EAAA,GA4BA5zC,EAAA6zC,EAAAC,EAGA9zC,EAAA+zC,EAAAH,EAGA5zC,EAAAO,EAAA,SAAAhB,EAAAyW,EAAAg+B,GACAh0C,EAAAi0C,EAAA10C,EAAAyW,IACAsB,OAAA48B,eAAA30C,EAAAyW,EAAA,CAA0Cm+B,YAAA,EAAA7sB,IAAA0sB,KAK1Ch0C,EAAAC,EAAA,SAAAV,GACA,oBAAA60C,QAAAA,OAAAC,aACA/8B,OAAA48B,eAAA30C,EAAA60C,OAAAC,YAAA,CAAwD/rB,MAAA,WAExDhR,OAAA48B,eAAA30C,EAAA,aAAA,CAAiD+oB,OAAA,KAQjDtoB,EAAAs0C,EAAA,SAAAhsB,EAAAisB,GAEA,GADA,EAAAA,IAAAjsB,EAAAtoB,EAAAsoB,IACA,EAAAisB,EAAA,OAAAjsB,EACA,GAAA,EAAAisB,GAAA,iBAAAjsB,GAAAA,GAAAA,EAAAksB,WAAA,OAAAlsB,EACA,IAAAmsB,EAAAn9B,OAAAo9B,OAAA,MAGA,GAFA10C,EAAAC,EAAAw0C,GACAn9B,OAAA48B,eAAAO,EAAA,UAAA,CAAyCN,YAAA,EAAA7rB,MAAAA,IACzC,EAAAisB,GAAA,iBAAAjsB,EAAA,IAAA,IAAAlhB,KAAAkhB,EAAAtoB,EAAAO,EAAAk0C,EAAArtC,EAAA,SAAAA,GAAgH,OAAAkhB,EAAAlhB,IAAqBsT,KAAA,KAAAtT,IACrI,OAAAqtC,GAIAz0C,EAAAK,EAAA,SAAAb,GACA,IAAAw0C,EAAAx0C,GAAAA,EAAAg1C,WACA,WAA2B,OAAAh1C,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAQ,EAAAO,EAAAyzC,EAAA,IAAAA,GACAA,GAIAh0C,EAAAi0C,EAAA,SAAAh9B,EAAA09B,GAAsD,OAAAr9B,OAAAmB,UAAAtL,eAAAwL,KAAA1B,EAAA09B,IAGtD30C,EAAAmX,EAAA,GAIAnX,EAAAA,EAAA40C,EAAA,GA9EA,SAAA50C,EAAA60C,GAGA,GAAAjB,EAAAiB,GACA,OAAAjB,EAAAiB,GAAAt1C,QAGA,IAAAC,EAAAo0C,EAAAiB,GAAA,CACAj1C,EAAAi1C,EACAC,GAAA,EACAv1C,QAAA,IAUA,OANAu0C,EAAAe,GAAAl8B,KAAAnZ,EAAAD,QAAAC,EAAAA,EAAAD,QAAAS,GAGAR,EAAAs1C,GAAA,EAGAt1C,EAAAD,Q,MAvBAq0C","file":"foundation.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.4';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n"]}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///js/entries/foundation.js","webpack:///js/foundation.abide.js","webpack:///js/foundation.accordion.js","webpack:///js/foundation.accordionMenu.js","webpack:///js/foundation.core.js","webpack:///js/foundation.core.plugin.js","webpack:///js/foundation.core.utils.js","webpack:///js/foundation.drilldown.js","webpack:///js/foundation.dropdown.js","webpack:///js/foundation.dropdownMenu.js","webpack:///js/foundation.equalizer.js","webpack:///js/foundation.interchange.js","webpack:///js/foundation.magellan.js","webpack:///js/foundation.offcanvas.js","webpack:///js/foundation.orbit.js","webpack:///js/foundation.positionable.js","webpack:///js/foundation.responsiveAccordionTabs.js","webpack:///js/foundation.responsiveMenu.js","webpack:///js/foundation.responsiveToggle.js","webpack:///js/foundation.reveal.js","webpack:///js/foundation.slider.js","webpack:///js/foundation.smoothScroll.js","webpack:///js/foundation.sticky.js","webpack:///js/foundation.tabs.js","webpack:///js/foundation.toggler.js","webpack:///js/foundation.tooltip.js","webpack:///js/foundation.util.box.js","webpack:///js/foundation.util.imageLoader.js","webpack:///js/foundation.util.keyboard.js","webpack:///js/foundation.util.mediaQuery.js","webpack:///js/foundation.util.motion.js","webpack:///js/foundation.util.nest.js","webpack:///js/foundation.util.timer.js","webpack:///js/foundation.util.touch.js","webpack:///js/foundation.util.triggers.js","webpack:/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack:///webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","i","a","window","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_5__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_6__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_7__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_8__","_foundation_util_timer__WEBPACK_IMPORTED_MODULE_9__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_10__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_11__","_foundation_abide__WEBPACK_IMPORTED_MODULE_12__","_foundation_accordion__WEBPACK_IMPORTED_MODULE_13__","_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_14__","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_15__","_foundation_dropdown__WEBPACK_IMPORTED_MODULE_16__","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_17__","_foundation_equalizer__WEBPACK_IMPORTED_MODULE_18__","_foundation_interchange__WEBPACK_IMPORTED_MODULE_19__","_foundation_magellan__WEBPACK_IMPORTED_MODULE_20__","_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_21__","_foundation_orbit__WEBPACK_IMPORTED_MODULE_22__","_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_23__","_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_24__","_foundation_reveal__WEBPACK_IMPORTED_MODULE_25__","_foundation_slider__WEBPACK_IMPORTED_MODULE_26__","_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_27__","_foundation_sticky__WEBPACK_IMPORTED_MODULE_28__","_foundation_tabs__WEBPACK_IMPORTED_MODULE_29__","_foundation_toggler__WEBPACK_IMPORTED_MODULE_30__","_foundation_tooltip__WEBPACK_IMPORTED_MODULE_31__","_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_32__","Foundation","addToJquery","$","rtl","CoreUtils","GetYoDigits","transitionend","RegExpEscape","onLoad","Box","onImagesLoaded","Keyboard","MediaQuery","Motion","Move","Nest","Timer","Touch","init","Triggers","_init","plugin","Abide","Accordion","AccordionMenu","Drilldown","Dropdown","DropdownMenu","Equalizer","Interchange","Magellan","OffCanvas","Orbit","ResponsiveMenu","ResponsiveToggle","Reveal","Slider","SmoothScroll","Sticky","Tabs","Toggler","Tooltip","ResponsiveAccordionTabs","Plugin","element","options","arguments","length","undefined","this","$element","extend","defaults","data","isEnabled","formnovalidate","className","_this2","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","_this3","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","$el","attr","isGood","type","checked","opt","val","failedValidators","_this4","id","$error","siblings","formErrorSelector","parent","add","concat","forEach","v","$label","closest","$els","_this5","labels","map","el","_this6","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","data-invalid","aria-invalid","filter","addA11yErrorDescribe","elemId","$errors","$labels","first","label","end","errorId","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","removeAttr","removeData","required","_this7","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","split","validators","equalTo","_this","goodToGo","message","dependentElements","removeErrorClasses","addErrorClasses","trigger","checkboxGroupName","_this8","acc","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","_this9","minRequired","parseInt","_this10","$form","opts","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text","register","ENTER","SPACE","ARROW_DOWN","ARROW_UP","HOME","END","_isInitializing","$tabs","children","idx","$content","linkId","aria-controls","aria-expanded","role","aria-labelledby","aria-hidden","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","location","hash","$anchor","$link","hasClass","_closeAllTabs","deepLinkSmudge","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","$tabContent","toggle","handleKey","next","$a","focus","multiExpand","previous","last","handled","$target","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$othersItems","$targetItem","allowAllClosed","_closeTab","$activeContents","targetContentId","finish","slideDown","slideSpeed","slideUp","$activeTabs","stop","ARROW_RIGHT","ARROW_LEFT","ESCAPE","Feather","aria-multiselectable","multiOpen","$menuLinks","$sub","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$prevElement","$nextElement","$elements","eq","Math","max","min","parents","open","close","closeAll","hideAll","$othersActiveSubmenus","$targetBranch","parentsUntil","$submenus","$allmenus","detach","remove","Burn","version","_plugins","_uuids","name","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","unregisterPlugin","splice","reInit","plugins","isJQ","_typeof","object","plgs","p","foundation","string","Object","keys","err","reflow","addBack","option","trim","str","isNaN","parseFloat","parseValue","er","getFnName","fn","method","$noJS","TypeError","args","Array","prototype","slice","call","plugClass","ReferenceError","apply","Function","results","exec","toString","replace","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","lastTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","navigator","userAgent","callback","nextTime","clearTimeout","performance","start","bind","oThis","fBound","fToBind","fNOP","aArgs","_classCallCheck","_setup","getPluginName","_destroy","obj","ignoreMousedisappear","namespace","chars","charsLength","floor","random","transition","transitions","WebkitTransition","MozTransition","OTransition","document","createElement","style","triggerHandler","handler","cb","eventType","didLoad","readyState","one","_ref","_ref$ignoreLeaveWindo","ignoreLeaveWindow","_ref$ignoreReappear","ignoreReappear","eLeave","_len","rest","_key","relatedTarget","hasFocus","eReenter","currentTarget","has","autoApplyClass","$submenuAnchors","$menuItems","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","tabindex","$menu","backButtonPosition","append","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","max-width","min-height","$body","_show","closeOnClick","ev","contains","_hideAll","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","_hide","calcHeight","height","parentSubMenu","autoFocus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","GetDimensions","getBoundingClientRect","width","unwrap","Positionable","$id","$anchors","data-is-focus","data-yeti-box","aria-haspopup","_setCurrentAnchor","parentClass","$parent","$currentAnchor","data-resize","_get","_getPrototypeOf","position","match","horizontalPosition","alignment","hasTouch","ontouchstart","open.zf.trigger","close.zf.trigger","toggle.zf.trigger","resizeme.zf.trigger","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","body","$focusable","findFocusable","_addBodyHandler","trapFocus","releaseFocus","hide","vOffset","hOffset","allowOverlap","allowBottomOverlap","subs","verticalClass","rightClass","Rtl","changed","parClass","clickOpen","hasSub","hasClicked","stopImmediatePropagation","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","nextSibling","prevSibling","openSub","closeSub","functions","_isVertical","_isRtl","_removeBodyHandler","$sibs","ImNotTouchingYou","oldClass","$parentLi","$activeItem","$toClose","data-is-click","eqId","$watched","hasNested","isNested","isOn","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","_reflow",".zf.equalizer","mutateme.zf.trigger","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","offsetHeight","lastElTopOffset","groups","group","elOffsetTop","j","ln","get","groupsILength","lenJ","rules","currentPath","_parseOptions","_addBreakpoints","_generateRules","rule","matchMedia","query","matches","path","warn","queries","SPECIAL_QUERIES","value","rulesList","join","nodeName","background-image","response","html","landscape","portrait","retina","calcPoints","$targets","$links","data-scroll","$active","pageYOffset","documentElement","points","winHeight","round","innerHeight","clientHeight","docHeight","scrollHeight","$tar","pt","threshold","targetPoint","deepLinking","scrollToLoc","_updateActive","onLoadListener","scrollme.zf.trigger","arrival","_deepLinkScroll","loc","_inTransition","newScrollPos","isScrollingUp","$oldActive","activeHash","isNewActive","activeIdx","visibleLinks","isNewHash","activeClass","pathname","search","contentClasses","base","reveal","$lastTrigger","$triggers","nested","$sticky","isInCanvas","contentId","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","revealOnClass","revealClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","keydown.zf.offCanvas","_handleKeyboard","click.zf.offCanvas","atLeast","hasReveal","_","topVal","absoluteTopVal","stickyData","_addContentClasses","event","lastY","touches","pageY","delta","_canScroll","stopPropagation","allowUp","allowDown","forceTo","scrollTo","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","canvasFocus","_fixStickyElements","_unfixStickyElements","ltr","_reset","containerClass","$slides","slideClass","$images","initActive","useMUI","_prepareForOrbit","bullets","_loadBullets","autoPlay","geoSync","accessible","$bullets","boxOfBullets","duration","timerDelay","infinite","changeSlide","_setWrapperHeight","temp","counter","display","swipe","pauseOnHover","pause","navButtons","nextClass","prevClass","$slide","restart","show","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","dirIn","dirOut","$newSlide","infiniteWrap","animateIn","animateOut","isPaused","$oldBullet","$othersBullets","$newBullet","spans","activeStateDescriptor","toArray","b","every","count","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","bottom","nextItem","item","array","currentIdx","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","MenuPlugins","tabs","cssClass","selectTab","accordion","_possibleConstructorReturn","_super","storezfData","_assertThisInitialized","currentMq","currentRule","currentPlugin","rulesTree","ruleSize","rulePlugin","_getAllOptions","isEmptyObject","_checkMediaQueries","allOptions","keyKey","objObj","dummyPlugin","tmpPlugin","destroy","_changedZfMediaQueryHandler","matchedMq","_handleMarkup","toSet","tabsTitle","tabsPanel","$liHeads","$liHeadsA","$tabsContent","fromString","$panels","linkClass","panelClass","visibility","appendTo","$placeholder","tempValue","_this$currentRule","_this$currentRule2","_this$currentRule3","dropdown","drilldown","targetID","$targetMenu","$toggler","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","cached","mq","current","fullScreen","_makeOverlay","additionalOverlayClasses","outerWidth","outerHeight","margin","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","focusableElements","_addGlobalClasses","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","urlWithoutHash","finishUp","_removeGlobalClasses","_enableScroll","hideDelay","resetOnClose","title","SHIFT_ARROW_RIGHT","SHIFT_ARROW_UP","SHIFT_ARROW_DOWN","SHIFT_ARROW_LEFT","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","positionValueFunction","_logTransform","_powTransform","toFixed","nonLinearBase","log","pow","$hndl","hOrW","lOrT","handleDim","movement","isLeftHndl","handlePct","moveTime","isDbl","h2Val","step","h1Val","vert","elemDim","_pctOfBar","decimal","_setValues","dim","handlePos","initialStart","changedDelay","initVal","initialEnd","aria-valuemax","aria-valuemin","aria-valuenow","aria-orientation","param","direction","eventOffset","barDim","barXY","_adjustValue","pageX","windowScroll","scrollLeft","elemOffset","clientY","_value","eventFromBar","absPosition","div","previousVal","_eventsForHandle","handleChangeEvent","_handleEvent","curHandle","keyCode","clickSelect","draggable","addTouch","newValue","_$handle","oldValue","decrease","increase","decreaseFast","increaseFast","dir","clickPos","abs","invertVertical","$loc","_linkClickListener","_handleLinkClick","$container","wasWrapped","container","stickyClass","data-mutate","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","place","pts","topAnchor","btmAnchor","breaks","scrollListener","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","anchorPt","anchorHeight","topOrBottom","stickyOn","newElemWidth","comp","getComputedStyle","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","em","fontSize","$tabTitles","linkActiveClass","aria-selected","matchHeight","_setHeight","anchorNoHash","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","which","wrapOnKeys","historyHandled","$oldTab","$targetContent","activeCollapse","$tabLink","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","hashIdStr","idStr","panel","toggler","Error","$trigger","controls","_updateARIA","isClick","tipText","template","_buildTemplate","allowHtml","aria-describedby","data-toggle","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","data-is-active","showOn","fadeIn","fadeInDuration","fadeOut","fadeOutDuration","isFocus","disableForTouch","touchCloseText","lrOnly","tbOnly","ignoreBottom","isOverflow","leftVal","$eleDims","$anchorDims","bottomOver","topOver","leftOver","eleDims","rightOver","parDims","windowDims","sqrt","rect","parRect","parentNode","winRect","winY","winX","pageXOffset","parentDims","images","unloaded","singleImageLoaded","image","events","complete","naturalWidth","Image","me","src","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","keyCodes","9","13","27","32","35","36","37","38","39","40","commands","sort","aTabIndex","bTabIndex","parseKey","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","kcs","kc","k","getKeyCodes","component","commandList","zfIsKeyHandled","returnValue","unhandled","componentName","cmds","$firstFocusable","$lastFocusable","styleMedia","media","script","getElementsByTagName","insertBefore","head","appendChild","currentStyle","matchMedium","styleSheet","cssText","textContent","isInitialized","namedQueries","styleObject","extractedStyles","reduce","ret","parts","decodeURIComponent","isArray","_getCurrentSize","_watcher","_reInit","size","only","upTo","nextSize","_parts","_slicedToArray","bpSize","_parts$","bpModifier","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","newSize","currentSize","initClasses","activeClasses","animation","anim","prog","move","ts","isIn","initClass","reset","transitionDuration","offsetWidth","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","firstItem","$item","aria-label","data-submenu","nameSpace","remain","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","removeEventListener","onTouchMove","tapEvent","Event","dx","spotSwipe","x","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","passive","SpotSwipe","enabled","special","setup","tap","noop","setupSpotSwipe","setupTouchHandler","handleTouch","simulatedEvent","changedTouches","touchstart","touchmove","touchend","MouseEvent","bubbles","cancelable","screenX","screenY","clientX","createEvent","initMouseEvent","dispatchEvent","triggers","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","openListener","closeListener","toggleListener","closeableListener","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","closeMeListener","pluginId","addClosemeListener","yetiBoxes","plugNames","listeners","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","installedModules","m","modules","c","getter","o","defineProperty","enumerable","Symbol","toStringTag","t","mode","__esModule","ns","create","property","s","moduleId","l"],"mappings":"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","file":"foundation.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"jquery\")) : factory(root[\"jQuery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","import $ from 'jquery';\n\nimport { Foundation } from '../foundation.core';\nimport * as CoreUtils from '../foundation.core.utils';\nimport { Box } from '../foundation.util.box'\nimport { onImagesLoaded } from '../foundation.util.imageLoader';\nimport { Keyboard } from '../foundation.util.keyboard';\nimport { MediaQuery } from '../foundation.util.mediaQuery';\nimport { Motion, Move } from '../foundation.util.motion';\nimport { Nest } from '../foundation.util.nest';\nimport { Timer } from '../foundation.util.timer';\nimport { Touch } from '../foundation.util.touch';\nimport { Triggers } from '../foundation.util.triggers';\nimport { Abide } from '../foundation.abide';\nimport { Accordion } from '../foundation.accordion';\nimport { AccordionMenu } from '../foundation.accordionMenu';\nimport { Drilldown } from '../foundation.drilldown';\nimport { Dropdown } from '../foundation.dropdown';\nimport { DropdownMenu } from '../foundation.dropdownMenu';\nimport { Equalizer } from '../foundation.equalizer';\nimport { Interchange } from '../foundation.interchange';\nimport { Magellan } from '../foundation.magellan';\nimport { OffCanvas } from '../foundation.offcanvas';\nimport { Orbit } from '../foundation.orbit';\nimport { ResponsiveMenu } from '../foundation.responsiveMenu';\nimport { ResponsiveToggle } from '../foundation.responsiveToggle';\nimport { Reveal } from '../foundation.reveal';\nimport { Slider } from '../foundation.slider';\nimport { SmoothScroll } from '../foundation.smoothScroll';\nimport { Sticky } from '../foundation.sticky';\nimport { Tabs } from '../foundation.tabs';\nimport { Toggler } from '../foundation.toggler';\nimport { Tooltip } from '../foundation.tooltip';\nimport { ResponsiveAccordionTabs } from '../foundation.responsiveAccordionTabs';\n\nFoundation.addToJquery($);\n\n// Add Foundation Utils to Foundation global namespace for backwards\n// compatibility.\nFoundation.rtl = CoreUtils.rtl;\nFoundation.GetYoDigits = CoreUtils.GetYoDigits;\nFoundation.transitionend = CoreUtils.transitionend;\nFoundation.RegExpEscape = CoreUtils.RegExpEscape;\nFoundation.onLoad = CoreUtils.onLoad;\n\nFoundation.Box = Box;\nFoundation.onImagesLoaded = onImagesLoaded;\nFoundation.Keyboard = Keyboard;\nFoundation.MediaQuery = MediaQuery;\nFoundation.Motion = Motion;\nFoundation.Move = Move;\nFoundation.Nest = Nest;\nFoundation.Timer = Timer;\n\n// Touch and Triggers previously were almost purely sede effect driven,\n// so no need to add it to Foundation, just init them.\nTouch.init($);\nTriggers.init($, Foundation);\nMediaQuery._init();\n\nFoundation.plugin(Abide, 'Abide');\nFoundation.plugin(Accordion, 'Accordion');\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\nFoundation.plugin(Drilldown, 'Drilldown');\nFoundation.plugin(Dropdown, 'Dropdown');\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\nFoundation.plugin(Equalizer, 'Equalizer');\nFoundation.plugin(Interchange, 'Interchange');\nFoundation.plugin(Magellan, 'Magellan');\nFoundation.plugin(OffCanvas, 'OffCanvas');\nFoundation.plugin(Orbit, 'Orbit');\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\nFoundation.plugin(Reveal, 'Reveal');\nFoundation.plugin(Slider, 'Slider');\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\nFoundation.plugin(Sticky, 'Sticky');\nFoundation.plugin(Tabs, 'Tabs');\nFoundation.plugin(Toggler, 'Toggler');\nFoundation.plugin(Tooltip, 'Tooltip');\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport {\n  Foundation,\n  CoreUtils,\n  Box,\n  onImagesLoaded,\n  Keyboard,\n  MediaQuery,\n  Motion,\n  Nest,\n  Timer,\n  Touch,\n  Triggers,\n  Abide,\n  Accordion,\n  AccordionMenu,\n  Drilldown,\n  Dropdown,\n  DropdownMenu,\n  Equalizer,\n  Interchange,\n  Magellan,\n  OffCanvas,\n  Orbit,\n  ResponsiveMenu,\n  ResponsiveToggle,\n  Reveal,\n  Slider,\n  SmoothScroll,\n  Sticky,\n  Tabs,\n  Toggler,\n  Tooltip,\n  ResponsiveAccordionTabs\n}\n\nexport default Foundation;\n\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n\n    if ($formError.filter(':visible').length) {\n      this.addA11yErrorDescribe($el, $formError);\n    }\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    if (!$errors.length) return;\n\n    let $error = $errors.filter(':visible').first();\n    if ($error.length) {\n      this.addA11yErrorDescribe($el, $error);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  addA11yErrorDescribe($el, $error) {\n    if (typeof $el.attr('aria-describedby') !== 'undefined') return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    // Get the first error ID or create one\n    let errorId = $error.attr('id');\n    if (typeof errorId === 'undefined') {\n      errorId = GetYoDigits(6, 'abide-error');\n      $error.attr('id', errorId);\n    }\n\n    $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n    if ($el.data('abide-describedby')) {\n      $el.removeAttr('aria-describedby').removeData('abide-describedby');\n    }\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length) {\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n    $elem.parent().closest('ul').removeClass('invisible');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function() {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe() {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop !== lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.warn(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules() {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function() {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling() {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close() {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), () => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides === 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n          console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open() {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close() {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle() {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState() {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat($handle.attr('aria-valuenow')),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function() {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function() {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css.bottom = 'auto';\n    if(isTop) {\n      css.top = 0;\n    } else {\n      css.top = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var newElemWidth = this.$container[0].getBoundingClientRect().width,\n      comp = window.getComputedStyle(this.$container[0]),\n      pdngl = parseInt(comp['padding-left'], 10),\n      pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $targetAnchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$targetAnchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('min-height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('min-height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function() {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function() {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function() {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function() {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n      bTabIndex = parseInt($(b).attr('tabindex'), 10);\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n  return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          const firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","function Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n  constructor() {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this._init();\n  }\n\n  _init() {\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n  $.fn.addTouch = function(){\n    this.each(function(i, el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n"]}
\ No newline at end of file
index 22a5f4dda1419cc53de971f936735cfd191a1c7b..7b2d08ec7ae5aee4b38036b57a443a76ee866775 100644 (file)
@@ -493,6 +493,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': '',
         'aria-invalid': true
       });
+
+      if ($formError.filter(':visible').length) {
+        this.addA11yErrorDescribe($el, $formError);
+      }
     }
     /**
      * Adds [for] and [role=alert] attributes to all form error targetting $el,
@@ -505,19 +509,11 @@ var Abide = /*#__PURE__*/function (_Plugin) {
     value: function addA11yAttributes($el) {
       var $errors = this.findFormError($el);
       var $labels = $errors.filter('label');
-      var $error = $errors.first();
-      if (!$errors.length) return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      if (!$errors.length) return;
+      var $error = $errors.filter(':visible').first();
 
-      if (typeof $el.attr('aria-describedby') === 'undefined') {
-        // Get the first error ID or create one
-        var errorId = $error.attr('id');
-
-        if (typeof errorId === 'undefined') {
-          errorId = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["GetYoDigits"])(6, 'abide-error');
-          $error.attr('id', errorId);
-        }
-
-        $el.attr('aria-describedby', errorId);
+      if ($error.length) {
+        this.addA11yErrorDescribe($el, $error);
       }
 
       if ($labels.filter('[for]').length < $labels.length) {
@@ -542,6 +538,21 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         if (typeof $label.attr('role') === 'undefined') $label.attr('role', 'alert');
       }).end();
     }
+  }, {
+    key: "addA11yErrorDescribe",
+    value: function addA11yErrorDescribe($el, $error) {
+      if (typeof $el.attr('aria-describedby') !== 'undefined') return; // Set [aria-describedby] on the input toward the first form error if it is not set
+      // Get the first error ID or create one
+
+      var errorId = $error.attr('id');
+
+      if (typeof errorId === 'undefined') {
+        errorId = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["GetYoDigits"])(6, 'abide-error');
+        $error.attr('id', errorId);
+      }
+
+      $el.attr('aria-describedby', errorId).data('abide-describedby', true);
+    }
     /**
      * Adds [aria-live] attribute to the given global form error $el.
      * @param {Object} $el - jQuery object to add the attribute to
@@ -635,6 +646,10 @@ var Abide = /*#__PURE__*/function (_Plugin) {
         'data-invalid': null,
         'aria-invalid': null
       });
+
+      if ($el.data('abide-describedby')) {
+        $el.removeAttr('aria-describedby').removeData('abide-describedby');
+      }
     }
     /**
      * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.
index 553385b091491be929b4e8a23d35e0b1bde11d7f..e9b7c08b60ffa1aac93de9ab663c7b55bdff9d03 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.abide.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.abide.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Abide","element","options","$element","$","extend","defaults","data","isEnabled","formnovalidate","className","_init","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","i","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","length","$el","attr","isGood","type","checked","opt","val","failedValidators","id","$error","siblings","formErrorSelector","parent","add","forEach","v","$label","closest","$els","labels","map","el","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","$errors","$labels","filter","first","errorId","GetYoDigits","elemId","label","end","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","required","split","validators","equalTo","goodToGo","message","dependentElements","_this","addErrorClasses","removeErrorClasses","trigger","acc","checkboxGroupName","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","minRequired","parseInt","clear","$form","opts","Plugin","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text"],"mappings":"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","file":"foundation.abide.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.abide\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.abide\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Abide } from '../../foundation.abide';\nFoundation.plugin(Abide, 'Abide');\n\nexport { Foundation, Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.abide.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.abide.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Abide","element","options","$element","$","extend","defaults","data","isEnabled","formnovalidate","className","_init","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","i","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","length","$el","attr","isGood","type","checked","opt","val","failedValidators","id","$error","siblings","formErrorSelector","parent","add","forEach","v","$label","closest","$els","labels","map","el","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","filter","addA11yErrorDescribe","$errors","$labels","first","elemId","GetYoDigits","label","end","errorId","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","removeAttr","removeData","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","required","split","validators","equalTo","goodToGo","message","dependentElements","_this","addErrorClasses","removeErrorClasses","trigger","acc","checkboxGroupName","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","minRequired","parseInt","clear","$form","opts","Plugin","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text"],"mappings":"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","file":"foundation.abide.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.abide\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.abide\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Abide } from '../../foundation.abide';\nFoundation.plugin(Abide, 'Abide');\n\nexport { Foundation, Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n\n    if ($formError.filter(':visible').length) {\n      this.addA11yErrorDescribe($el, $formError);\n    }\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    if (!$errors.length) return;\n\n    let $error = $errors.filter(':visible').first();\n    if ($error.length) {\n      this.addA11yErrorDescribe($el, $error);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  addA11yErrorDescribe($el, $error) {\n    if (typeof $el.attr('aria-describedby') !== 'undefined') return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    // Get the first error ID or create one\n    let errorId = $error.attr('id');\n    if (typeof errorId === 'undefined') {\n      errorId = GetYoDigits(6, 'abide-error');\n      $error.attr('id', errorId);\n    }\n\n    $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type === 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type === 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n    if ($el.data('abide-describedby')) {\n      $el.removeAttr('aria-describedby').removeData('abide-describedby');\n    }\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'), 10);\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function (el) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
index 2eb6d1bb694fbd95f02b33f75e86fff9444fdabf..3696ea0468f8257f36883fe95106f6042b352a2b 100644 (file)
@@ -1,2 +1,2 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery"],e):"object"==typeof exports?exports["foundation.abide"]=e(require("./foundation.core"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.abide"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.jQuery))}(window,function(r,i){return a={"./foundation.core":function(t,e){t.exports=r},"./js/entries/plugins/foundation.abide.js":function(t,e,r){"use strict";r.r(e);var i=r("./foundation.core");r.d(e,"Foundation",function(){return i.Foundation});var n=r("./js/foundation.abide.js");r.d(e,"Abide",function(){return n.Abide}),i.Foundation.plugin(n.Abide,"Abide")},"./js/foundation.abide.js":function(t,e,r){"use strict";r.r(e),r.d(e,"Abide",function(){return i});var e=r("jquery"),d=r.n(e),o=r("./foundation.core");function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(r){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=u(r);return function(t,e){{if(e&&("object"===n(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(n,o["Plugin"]);var t,e,r,i=l(n);function n(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,n),i.apply(this,arguments)}return t=n,(e=[{key:"_setup",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.$element=t,this.options=d.a.extend(!0,{},n.defaults,this.$element.data(),e),this.isEnabled=!0,this.formnovalidate=null,this.className="Abide",this._init()}},{key:"_init",value:function(){var r=this;this.$inputs=d.a.merge(this.$element.find("input").not('[type="submit"]'),this.$element.find("textarea, select")),this.$submits=this.$element.find('[type="submit"]');var t=this.$element.find("[data-abide-error]");this.options.a11yAttributes&&(this.$inputs.each(function(t,e){return r.addA11yAttributes(d()(e))}),t.each(function(t,e){return r.addGlobalErrorA11yAttributes(d()(e))})),this._events()}},{key:"_events",value:function(){var e=this;this.$element.off(".abide").on("reset.zf.abide",function(){e.resetForm()}).on("submit.zf.abide",function(){return e.validateForm()}),this.$submits.off("click.zf.abide keydown.zf.abide").on("click.zf.abide keydown.zf.abide",function(t){t.key&&" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),e.formnovalidate=null!==t.target.getAttribute("formnovalidate"),e.$element.submit())}),"fieldChange"===this.options.validateOn&&this.$inputs.off("change.zf.abide").on("change.zf.abide",function(t){e.validateInput(d()(t.target))}),this.options.liveValidate&&this.$inputs.off("input.zf.abide").on("input.zf.abide",function(t){e.validateInput(d()(t.target))}),this.options.validateOnBlur&&this.$inputs.off("blur.zf.abide").on("blur.zf.abide",function(t){e.validateInput(d()(t.target))})}},{key:"_reflow",value:function(){this._init()}},{key:"_validationIsDisabled",value:function(){return!1===this.isEnabled||("boolean"==typeof this.formnovalidate?this.formnovalidate:!!this.$submits.length&&null!==this.$submits[0].getAttribute("formnovalidate"))}},{key:"enableValidation",value:function(){this.isEnabled=!0}},{key:"disableValidation",value:function(){this.isEnabled=!1}},{key:"requiredCheck",value:function(t){if(!t.attr("required"))return!0;var e=!0;switch(t[0].type){case"checkbox":e=t[0].checked;break;case"select":case"select-one":case"select-multiple":var r=t.find("option:selected");r.length&&r.val()||(e=!1);break;default:t.val()&&t.val().length||(e=!1)}return e}},{key:"findFormError",value:function(e,t){var r=this,i=e.length?e[0].id:"",n=e.siblings(this.options.formErrorSelector);return n.length||(n=e.parent().find(this.options.formErrorSelector)),i&&(n=n.add(this.$element.find('[data-form-error-for="'.concat(i,'"]')))),t&&(n=n.not("[data-form-error-on]"),t.forEach(function(t){n=(n=n.add(e.siblings('[data-form-error-on="'.concat(t,'"]')))).add(r.$element.find('[data-form-error-for="'.concat(i,'"][data-form-error-on="').concat(t,'"]')))})),n}},{key:"findLabel",value:function(t){var e=t[0].id,e=this.$element.find('label[for="'.concat(e,'"]'));return e.length?e:t.closest("label")}},{key:"findRadioLabels",value:function(t){var i=this,t=t.map(function(t,e){var r=e.id,r=i.$element.find('label[for="'.concat(r,'"]'));return(r=!r.length?d()(e).closest("label"):r)[0]});return d()(t)}},{key:"findCheckboxLabels",value:function(t){var i=this,t=t.map(function(t,e){var r=e.id,r=i.$element.find('label[for="'.concat(r,'"]'));return(r=!r.length?d()(e).closest("label"):r)[0]});return d()(t)}},{key:"addErrorClasses",value:function(t,e){var r=this.findLabel(t),e=this.findFormError(t,e);r.length&&r.addClass(this.options.labelErrorClass),e.length&&e.addClass(this.options.formErrorClass),t.addClass(this.options.inputErrorClass).attr({"data-invalid":"","aria-invalid":!0})}},{key:"addA11yAttributes",value:function(t){var e,r,i=this.findFormError(t),n=i.filter("label"),a=i.first();i.length&&(void 0===t.attr("aria-describedby")&&(void 0===(e=a.attr("id"))&&(e=Object(o.GetYoDigits)(6,"abide-error"),a.attr("id",e)),t.attr("aria-describedby",e)),n.filter("[for]").length<n.length&&(void 0===(r=t.attr("id"))&&(r=Object(o.GetYoDigits)(6,"abide-input"),t.attr("id",r)),n.each(function(t,e){e=d()(e);void 0===e.attr("for")&&e.attr("for",r)})),i.each(function(t,e){e=d()(e);void 0===e.attr("role")&&e.attr("role","alert")}).end())}},{key:"addGlobalErrorA11yAttributes",value:function(t){void 0===t.attr("aria-live")&&t.attr("aria-live",this.options.a11yErrorLevel)}},{key:"removeRadioErrorClasses",value:function(t){var e=this.$element.find(':radio[name="'.concat(t,'"]')),r=this.findRadioLabels(e),t=this.findFormError(e);r.length&&r.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeCheckboxErrorClasses",value:function(t){var e=this.$element.find(':checkbox[name="'.concat(t,'"]')),r=this.findCheckboxLabels(e),t=this.findFormError(e);r.length&&r.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeErrorClasses",value:function(t){if("radio"===t[0].type)return this.removeRadioErrorClasses(t.attr("name"));if("checkbox"===t[0].type)return this.removeCheckboxErrorClasses(t.attr("name"));var e=this.findLabel(t),r=this.findFormError(t);e.length&&e.removeClass(this.options.labelErrorClass),r.length&&r.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"validateInput",value:function(e){var r,i=this,t=this.requiredCheck(e),n=e.attr("data-validator"),a=[],o=!0;if(this._validationIsDisabled())return!0;if(e.is("[data-abide-ignore]")||e.is('[type="hidden"]')||e.is("[disabled]"))return!0;switch(e[0].type){case"radio":this.validateRadio(e.attr("name"))||a.push("required");break;case"checkbox":this.validateCheckbox(e.attr("name"))||a.push("required"),o=!1;break;case"select":case"select-one":case"select-multiple":t||a.push("required");break;default:t||a.push("required"),this.validateText(e)||a.push("pattern")}n&&(r=!!e.attr("required"),n.split(" ").forEach(function(t){i.options.validators[t](e,r,e.parent())||a.push(t)})),e.attr("data-equalto")&&(this.options.validators.equalTo(e)||a.push("equalTo"));var s,l=0===a.length,u=(l?"valid":"invalid")+".zf.abide";return!l||(n=this.$element.find('[data-equalto="'.concat(e.attr("id"),'"]'))).length&&(s=this,n.each(function(){d()(this).val()&&s.validateInput(d()(this))})),o&&(l?this.removeErrorClasses(e):this.addErrorClasses(e,a)),e.trigger(u,[e]),l}},{key:"validateForm",value:function(){var t,r=this,e=[],i=this;if(this.initialized||(this.initialized=!0),this._validationIsDisabled())return!(this.formnovalidate=null);this.$inputs.each(function(){if("checkbox"===d()(this)[0].type){if(d()(this).attr("name")===t)return!0;t=d()(this).attr("name")}e.push(i.validateInput(d()(this)))});var n=-1===e.indexOf(!1);return this.$element.find("[data-abide-error]").each(function(t,e){e=d()(e);r.options.a11yAttributes&&r.addGlobalErrorA11yAttributes(e),e.css("display",n?"none":"block")}),this.$element.trigger((n?"formvalid":"forminvalid")+".zf.abide",[this.$element]),n}},{key:"validateText",value:function(t,e){e=e||t.attr("data-pattern")||t.attr("pattern")||t.attr("type");var r=t.val(),i=!0;return r.length&&(this.options.patterns.hasOwnProperty(e)?i=this.options.patterns[e].test(r):e!==t.attr("type")&&(i=new RegExp(e).test(r))),i}},{key:"validateRadio",value:function(t){var t=this.$element.find(':radio[name="'.concat(t,'"]')),r=!1,i=!1;return t.each(function(t,e){d()(e).attr("required")&&(i=!0)}),(r=!i?!0:r)||t.each(function(t,e){d()(e).prop("checked")&&(r=!0)}),r}},{key:"validateCheckbox",value:function(t){var r=this,t=this.$element.find(':checkbox[name="'.concat(t,'"]')),i=!1,n=!1,a=1,o=0;return t.each(function(t,e){d()(e).attr("required")&&(n=!0)}),(i=!n?!0:i)||(t.each(function(t,e){d()(e).prop("checked")&&o++,void 0!==d()(e).attr("data-min-required")&&(a=parseInt(d()(e).attr("data-min-required"),10))}),a<=o&&(i=!0)),!0!==this.initialized&&1<a||(t.each(function(t,e){i?r.removeErrorClasses(d()(e)):r.addErrorClasses(d()(e),["required"])}),i)}},{key:"matchValidation",value:function(e,t,r){var i=this;return r=!!r,-1===t.split(" ").map(function(t){return i.options.validators[t](e,r,e.parent())}).indexOf(!1)}},{key:"resetForm",value:function(){var t=this.$element,e=this.options;d()(".".concat(e.labelErrorClass),t).not("small").removeClass(e.labelErrorClass),d()(".".concat(e.inputErrorClass),t).not("small").removeClass(e.inputErrorClass),d()("".concat(e.formErrorSelector,".").concat(e.formErrorClass)).removeClass(e.formErrorClass),t.find("[data-abide-error]").css("display","none"),d()(":input",t).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").attr({"data-invalid":null,"aria-invalid":null}),d()(":input:radio",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),d()(":input:checkbox",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),t.trigger("formreset.zf.abide",[t])}},{key:"_destroy",value:function(){var t=this;this.$element.off(".abide").find("[data-abide-error]").css("display","none"),this.$inputs.off(".abide").each(function(){t.removeErrorClasses(d()(this))}),this.$submits.off(".abide")}}])&&a(t.prototype,e),r&&a(t,r),n}();i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",a11yAttributes:!0,a11yErrorLevel:"assertive",liveValidate:!1,validateOnBlur:!1,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,website:{test:function(t){return i.defaults.patterns.domain.test(t)||i.defaults.patterns.url.test(t)}}},validators:{equalTo:function(t){return d()("#".concat(t.attr("data-equalto"))).val()===t.val()}}}},0:function(t,e,r){t.exports=r("./js/entries/plugins/foundation.abide.js")},jquery:function(t,e){t.exports=i}},o={},n.m=a,n.c=o,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0);function n(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return a[t].call(e.exports,e,e.exports,n),e.l=!0,e.exports}var a,o});
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery"],e):"object"==typeof exports?exports["foundation.abide"]=e(require("./foundation.core"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.abide"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.jQuery))}(window,function(r,i){return n={"./foundation.core":function(t,e){t.exports=r},"./js/entries/plugins/foundation.abide.js":function(t,e,r){"use strict";r.r(e);var i=r("./foundation.core");r.d(e,"Foundation",function(){return i.Foundation});var a=r("./js/foundation.abide.js");r.d(e,"Abide",function(){return a.Abide}),i.Foundation.plugin(a.Abide,"Abide")},"./js/foundation.abide.js":function(t,e,r){"use strict";r.r(e),r.d(e,"Abide",function(){return i});var e=r("jquery"),d=r.n(e),n=r("./foundation.core");function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(r){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=u(r);return function(t,e){{if(e&&("object"===a(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,i?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var i=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&s(t,e)}(a,n["Plugin"]);var t,e,r,i=l(a);function a(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a),i.apply(this,arguments)}return t=a,(e=[{key:"_setup",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};this.$element=t,this.options=d.a.extend(!0,{},a.defaults,this.$element.data(),e),this.isEnabled=!0,this.formnovalidate=null,this.className="Abide",this._init()}},{key:"_init",value:function(){var r=this;this.$inputs=d.a.merge(this.$element.find("input").not('[type="submit"]'),this.$element.find("textarea, select")),this.$submits=this.$element.find('[type="submit"]');var t=this.$element.find("[data-abide-error]");this.options.a11yAttributes&&(this.$inputs.each(function(t,e){return r.addA11yAttributes(d()(e))}),t.each(function(t,e){return r.addGlobalErrorA11yAttributes(d()(e))})),this._events()}},{key:"_events",value:function(){var e=this;this.$element.off(".abide").on("reset.zf.abide",function(){e.resetForm()}).on("submit.zf.abide",function(){return e.validateForm()}),this.$submits.off("click.zf.abide keydown.zf.abide").on("click.zf.abide keydown.zf.abide",function(t){t.key&&" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),e.formnovalidate=null!==t.target.getAttribute("formnovalidate"),e.$element.submit())}),"fieldChange"===this.options.validateOn&&this.$inputs.off("change.zf.abide").on("change.zf.abide",function(t){e.validateInput(d()(t.target))}),this.options.liveValidate&&this.$inputs.off("input.zf.abide").on("input.zf.abide",function(t){e.validateInput(d()(t.target))}),this.options.validateOnBlur&&this.$inputs.off("blur.zf.abide").on("blur.zf.abide",function(t){e.validateInput(d()(t.target))})}},{key:"_reflow",value:function(){this._init()}},{key:"_validationIsDisabled",value:function(){return!1===this.isEnabled||("boolean"==typeof this.formnovalidate?this.formnovalidate:!!this.$submits.length&&null!==this.$submits[0].getAttribute("formnovalidate"))}},{key:"enableValidation",value:function(){this.isEnabled=!0}},{key:"disableValidation",value:function(){this.isEnabled=!1}},{key:"requiredCheck",value:function(t){if(!t.attr("required"))return!0;var e=!0;switch(t[0].type){case"checkbox":e=t[0].checked;break;case"select":case"select-one":case"select-multiple":var r=t.find("option:selected");r.length&&r.val()||(e=!1);break;default:t.val()&&t.val().length||(e=!1)}return e}},{key:"findFormError",value:function(e,t){var r=this,i=e.length?e[0].id:"",a=e.siblings(this.options.formErrorSelector);return a.length||(a=e.parent().find(this.options.formErrorSelector)),i&&(a=a.add(this.$element.find('[data-form-error-for="'.concat(i,'"]')))),t&&(a=a.not("[data-form-error-on]"),t.forEach(function(t){a=(a=a.add(e.siblings('[data-form-error-on="'.concat(t,'"]')))).add(r.$element.find('[data-form-error-for="'.concat(i,'"][data-form-error-on="').concat(t,'"]')))})),a}},{key:"findLabel",value:function(t){var e=t[0].id,e=this.$element.find('label[for="'.concat(e,'"]'));return e.length?e:t.closest("label")}},{key:"findRadioLabels",value:function(t){var i=this,t=t.map(function(t,e){var r=e.id,r=i.$element.find('label[for="'.concat(r,'"]'));return(r=!r.length?d()(e).closest("label"):r)[0]});return d()(t)}},{key:"findCheckboxLabels",value:function(t){var i=this,t=t.map(function(t,e){var r=e.id,r=i.$element.find('label[for="'.concat(r,'"]'));return(r=!r.length?d()(e).closest("label"):r)[0]});return d()(t)}},{key:"addErrorClasses",value:function(t,e){var r=this.findLabel(t),e=this.findFormError(t,e);r.length&&r.addClass(this.options.labelErrorClass),e.length&&e.addClass(this.options.formErrorClass),t.addClass(this.options.inputErrorClass).attr({"data-invalid":"","aria-invalid":!0}),e.filter(":visible").length&&this.addA11yErrorDescribe(t,e)}},{key:"addA11yAttributes",value:function(t){var e,r,i=this.findFormError(t),a=i.filter("label");i.length&&((e=i.filter(":visible").first()).length&&this.addA11yErrorDescribe(t,e),a.filter("[for]").length<a.length&&(void 0===(r=t.attr("id"))&&(r=Object(n.GetYoDigits)(6,"abide-input"),t.attr("id",r)),a.each(function(t,e){e=d()(e);void 0===e.attr("for")&&e.attr("for",r)})),i.each(function(t,e){e=d()(e);void 0===e.attr("role")&&e.attr("role","alert")}).end())}},{key:"addA11yErrorDescribe",value:function(t,e){var r;void 0===t.attr("aria-describedby")&&(void 0===(r=e.attr("id"))&&(r=Object(n.GetYoDigits)(6,"abide-error"),e.attr("id",r)),t.attr("aria-describedby",r).data("abide-describedby",!0))}},{key:"addGlobalErrorA11yAttributes",value:function(t){void 0===t.attr("aria-live")&&t.attr("aria-live",this.options.a11yErrorLevel)}},{key:"removeRadioErrorClasses",value:function(t){var e=this.$element.find(':radio[name="'.concat(t,'"]')),r=this.findRadioLabels(e),t=this.findFormError(e);r.length&&r.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeCheckboxErrorClasses",value:function(t){var e=this.$element.find(':checkbox[name="'.concat(t,'"]')),r=this.findCheckboxLabels(e),t=this.findFormError(e);r.length&&r.removeClass(this.options.labelErrorClass),t.length&&t.removeClass(this.options.formErrorClass),e.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null})}},{key:"removeErrorClasses",value:function(t){if("radio"===t[0].type)return this.removeRadioErrorClasses(t.attr("name"));if("checkbox"===t[0].type)return this.removeCheckboxErrorClasses(t.attr("name"));var e=this.findLabel(t),r=this.findFormError(t);e.length&&e.removeClass(this.options.labelErrorClass),r.length&&r.removeClass(this.options.formErrorClass),t.removeClass(this.options.inputErrorClass).attr({"data-invalid":null,"aria-invalid":null}),t.data("abide-describedby")&&t.removeAttr("aria-describedby").removeData("abide-describedby")}},{key:"validateInput",value:function(e){var r,i=this,t=this.requiredCheck(e),a=e.attr("data-validator"),n=[],o=!0;if(this._validationIsDisabled())return!0;if(e.is("[data-abide-ignore]")||e.is('[type="hidden"]')||e.is("[disabled]"))return!0;switch(e[0].type){case"radio":this.validateRadio(e.attr("name"))||n.push("required");break;case"checkbox":this.validateCheckbox(e.attr("name"))||n.push("required"),o=!1;break;case"select":case"select-one":case"select-multiple":t||n.push("required");break;default:t||n.push("required"),this.validateText(e)||n.push("pattern")}a&&(r=!!e.attr("required"),a.split(" ").forEach(function(t){i.options.validators[t](e,r,e.parent())||n.push(t)})),e.attr("data-equalto")&&(this.options.validators.equalTo(e)||n.push("equalTo"));var s,l=0===n.length,u=(l?"valid":"invalid")+".zf.abide";return!l||(a=this.$element.find('[data-equalto="'.concat(e.attr("id"),'"]'))).length&&(s=this,a.each(function(){d()(this).val()&&s.validateInput(d()(this))})),o&&(l?this.removeErrorClasses(e):this.addErrorClasses(e,n)),e.trigger(u,[e]),l}},{key:"validateForm",value:function(){var t,r=this,e=[],i=this;if(this.initialized||(this.initialized=!0),this._validationIsDisabled())return!(this.formnovalidate=null);this.$inputs.each(function(){if("checkbox"===d()(this)[0].type){if(d()(this).attr("name")===t)return!0;t=d()(this).attr("name")}e.push(i.validateInput(d()(this)))});var a=-1===e.indexOf(!1);return this.$element.find("[data-abide-error]").each(function(t,e){e=d()(e);r.options.a11yAttributes&&r.addGlobalErrorA11yAttributes(e),e.css("display",a?"none":"block")}),this.$element.trigger((a?"formvalid":"forminvalid")+".zf.abide",[this.$element]),a}},{key:"validateText",value:function(t,e){e=e||t.attr("data-pattern")||t.attr("pattern")||t.attr("type");var r=t.val(),i=!0;return r.length&&(this.options.patterns.hasOwnProperty(e)?i=this.options.patterns[e].test(r):e!==t.attr("type")&&(i=new RegExp(e).test(r))),i}},{key:"validateRadio",value:function(t){var t=this.$element.find(':radio[name="'.concat(t,'"]')),r=!1,i=!1;return t.each(function(t,e){d()(e).attr("required")&&(i=!0)}),(r=!i?!0:r)||t.each(function(t,e){d()(e).prop("checked")&&(r=!0)}),r}},{key:"validateCheckbox",value:function(t){var r=this,t=this.$element.find(':checkbox[name="'.concat(t,'"]')),i=!1,a=!1,n=1,o=0;return t.each(function(t,e){d()(e).attr("required")&&(a=!0)}),(i=!a?!0:i)||(t.each(function(t,e){d()(e).prop("checked")&&o++,void 0!==d()(e).attr("data-min-required")&&(n=parseInt(d()(e).attr("data-min-required"),10))}),n<=o&&(i=!0)),!0!==this.initialized&&1<n||(t.each(function(t,e){i?r.removeErrorClasses(d()(e)):r.addErrorClasses(d()(e),["required"])}),i)}},{key:"matchValidation",value:function(e,t,r){var i=this;return r=!!r,-1===t.split(" ").map(function(t){return i.options.validators[t](e,r,e.parent())}).indexOf(!1)}},{key:"resetForm",value:function(){var t=this.$element,e=this.options;d()(".".concat(e.labelErrorClass),t).not("small").removeClass(e.labelErrorClass),d()(".".concat(e.inputErrorClass),t).not("small").removeClass(e.inputErrorClass),d()("".concat(e.formErrorSelector,".").concat(e.formErrorClass)).removeClass(e.formErrorClass),t.find("[data-abide-error]").css("display","none"),d()(":input",t).not(":button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]").val("").attr({"data-invalid":null,"aria-invalid":null}),d()(":input:radio",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),d()(":input:checkbox",t).not("[data-abide-ignore]").prop("checked",!1).attr({"data-invalid":null,"aria-invalid":null}),t.trigger("formreset.zf.abide",[t])}},{key:"_destroy",value:function(){var t=this;this.$element.off(".abide").find("[data-abide-error]").css("display","none"),this.$inputs.off(".abide").each(function(){t.removeErrorClasses(d()(this))}),this.$submits.off(".abide")}}])&&o(t.prototype,e),r&&o(t,r),a}();i.defaults={validateOn:"fieldChange",labelErrorClass:"is-invalid-label",inputErrorClass:"is-invalid-input",formErrorSelector:".form-error",formErrorClass:"is-visible",a11yAttributes:!0,a11yErrorLevel:"assertive",liveValidate:!1,validateOnBlur:!1,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^((?:(https?|ftps?|file|ssh|sftp):\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\))+(?:\((?:[^\s()<>]+|(?:\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))$/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,website:{test:function(t){return i.defaults.patterns.domain.test(t)||i.defaults.patterns.url.test(t)}}},validators:{equalTo:function(t){return d()("#".concat(t.attr("data-equalto"))).val()===t.val()}}}},0:function(t,e,r){t.exports=r("./js/entries/plugins/foundation.abide.js")},jquery:function(t,e){t.exports=i}},o={},a.m=n,a.c=o,a.d=function(t,e,r){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)a.d(r,i,function(t){return e[t]}.bind(null,i));return r},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=0);function a(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}var n,o});
 //# sourceMappingURL=foundation.abide.min.js.map
index 1946bb978e159236c6ac20bbd1f0a650e2bfeb3c..d69bd09b810d63ab106e6a09b42a6e0cc778d1b0 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.abide.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.abide.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_abide__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Abide","Plugin","element","options","arguments","length","undefined","this","$element","$","extend","defaults","data","isEnabled","formnovalidate","className","_init","_this2","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","i","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","_this3","off","on","resetForm","validateForm","e","key","preventDefault","target","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","$el","attr","isGood","type","checked","opt","val","failedValidators","_this4","id","$error","siblings","formErrorSelector","parent","add","concat","forEach","v","$label","closest","$els","_this5","labels","map","el","_this6","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","data-invalid","aria-invalid","errorId","elemId","$errors","$labels","filter","first","GetYoDigits","label","end","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","required","_this7","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","split","validators","equalTo","_this","goodToGo","message","dependentElements","removeErrorClasses","addErrorClasses","trigger","checkboxGroupName","_this8","acc","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","_this9","minRequired","parseInt","_this10","$form","opts","alpha","integer","number","cvv","email","url","datetime","date","dateISO","day_month_year","website","text","domain","jquery__WEBPACK_IMPORTED_MODULE_0___default","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","bind","n","object","property","prototype","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.abide.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.abide\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.abide\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Abide } from '../../foundation.abide';\nFoundation.plugin(Abide, 'Abide');\n\nexport { Foundation, Abide };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nclass Abide extends Plugin {\n  /**\n   * Creates a new instance of Abide.\n   * @class\n   * @name Abide\n   * @fires Abide#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options = {}) {\n    this.$element = element;\n    this.options  = $.extend(true, {}, Abide.defaults, this.$element.data(), options);\n    this.isEnabled = true;\n    this.formnovalidate = null;\n\n    this.className = 'Abide'; // ie9 back compat\n    this._init();\n  }\n\n  /**\n   * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n   * @private\n   */\n  _init() {\n    this.$inputs = $.merge(                               // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select')              // * all textareas and select fields\n    );\n    this.$submits = this.$element.find('[type=\"submit\"]');\n    const $globalErrors = this.$element.find('[data-abide-error]');\n\n    // Add a11y attributes to all fields\n    if (this.options.a11yAttributes) {\n      this.$inputs.each((i, input) => this.addA11yAttributes($(input)));\n      $globalErrors.each((i, error) => this.addGlobalErrorA11yAttributes($(error)));\n    }\n\n    this._events();\n  }\n\n  /**\n   * Initializes events for Abide.\n   * @private\n   */\n  _events() {\n    this.$element.off('.abide')\n      .on('reset.zf.abide', () => {\n        this.resetForm();\n      })\n      .on('submit.zf.abide', () => {\n        return this.validateForm();\n      });\n\n    this.$submits\n      .off('click.zf.abide keydown.zf.abide')\n      .on('click.zf.abide keydown.zf.abide', (e) => {\n        if (!e.key || (e.key === ' ' || e.key === 'Enter')) {\n          e.preventDefault();\n          this.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n          this.$element.submit();\n        }\n      });\n\n    if (this.options.validateOn === 'fieldChange') {\n      this.$inputs\n        .off('change.zf.abide')\n        .on('change.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.liveValidate) {\n      this.$inputs\n        .off('input.zf.abide')\n        .on('input.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n\n    if (this.options.validateOnBlur) {\n      this.$inputs\n        .off('blur.zf.abide')\n        .on('blur.zf.abide', (e) => {\n          this.validateInput($(e.target));\n        });\n    }\n  }\n\n  /**\n   * Calls necessary functions to update Abide upon DOM change\n   * @private\n   */\n  _reflow() {\n    this._init();\n  }\n\n  /**\n   * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n   * @returns {Boolean}\n   * @private\n   */\n  _validationIsDisabled() {\n    if (this.isEnabled === false) { // whole validation disabled\n      return true;\n    } else if (typeof this.formnovalidate === 'boolean') { // triggered by $submit\n      return this.formnovalidate;\n    }\n    // triggered by Enter in non-submit input\n    return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n  }\n\n  /**\n   * Enables the whole validation\n   */\n  enableValidation() {\n    this.isEnabled = true;\n  }\n\n  /**\n   * Disables the whole validation\n   */\n  disableValidation() {\n    this.isEnabled = false;\n  }\n\n  /**\n   * Checks whether or not a form element has the required attribute and if it's checked or not\n   * @param {Object} element - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  requiredCheck($el) {\n    if (!$el.attr('required')) return true;\n\n    var isGood = true;\n\n    switch ($el[0].type) {\n      case 'checkbox':\n        isGood = $el[0].checked;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        var opt = $el.find('option:selected');\n        if (!opt.length || !opt.val()) isGood = false;\n        break;\n\n      default:\n        if (!$el.val() || !$el.val().length) isGood = false;\n    }\n\n    return isGood;\n  }\n\n  /**\n   * Get:\n   * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n   *   1. The element's direct sibling('s).\n   *   2. The element's parent's children.\n   * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n   *\n   * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n   *\n   * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n   * @param {String[]} [failedValidators] - List of failed validators.\n   * @returns {Object} jQuery object with the selector.\n   */\n  findFormError($el, failedValidators) {\n    var id = $el.length ? $el[0].id : '';\n    var $error = $el.siblings(this.options.formErrorSelector);\n\n    if (!$error.length) {\n      $error = $el.parent().find(this.options.formErrorSelector);\n    }\n\n    if (id) {\n      $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"]`));\n    }\n\n    if (!!failedValidators) {\n      $error = $error.not('[data-form-error-on]')\n\n      failedValidators.forEach((v) => {\n        $error = $error.add($el.siblings(`[data-form-error-on=\"${v}\"]`));\n        $error = $error.add(this.$element.find(`[data-form-error-for=\"${id}\"][data-form-error-on=\"${v}\"]`));\n      });\n    }\n\n    return $error;\n  }\n\n  /**\n   * Get the first element in this order:\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findLabel($el) {\n    var id = $el[0].id;\n    var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n    if (!$label.length) {\n      return $el.closest('label');\n    }\n\n    return $label;\n  }\n\n  /**\n   * Get the set of labels associated with a set of radio els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findRadioLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Get the set of labels associated with a set of checkbox els in this order\n   * 2. The <label> with the attribute `[for=\"someInputId\"]`\n   * 3. The `.closest()` <label>\n   *\n   * @param {Object} $el - jQuery object to check for required attribute\n   * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n   */\n  findCheckboxLabels($els) {\n    var labels = $els.map((i, el) => {\n      var id = el.id;\n      var $label = this.$element.find(`label[for=\"${id}\"]`);\n\n      if (!$label.length) {\n        $label = $(el).closest('label');\n      }\n      return $label[0];\n    });\n\n    return $(labels);\n  }\n\n  /**\n   * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n   * @param {Object} $el - jQuery object to add the class to\n   * @param {String[]} [failedValidators] - List of failed validators.\n   */\n  addErrorClasses($el, failedValidators) {\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el, failedValidators);\n\n    if ($label.length) {\n      $label.addClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.addClass(this.options.formErrorClass);\n    }\n\n    $el.addClass(this.options.inputErrorClass).attr({\n      'data-invalid': '',\n      'aria-invalid': true\n    });\n  }\n\n  /**\n   * Adds [for] and [role=alert] attributes to all form error targetting $el,\n   * and [aria-describedby] attribute to $el toward the first form error.\n   * @param {Object} $el - jQuery object\n   */\n  addA11yAttributes($el) {\n    let $errors = this.findFormError($el);\n    let $labels = $errors.filter('label');\n    let $error = $errors.first();\n    if (!$errors.length) return;\n\n    // Set [aria-describedby] on the input toward the first form error if it is not set\n    if (typeof $el.attr('aria-describedby') === 'undefined') {\n      // Get the first error ID or create one\n      let errorId = $error.attr('id');\n      if (typeof errorId === 'undefined') {\n        errorId = GetYoDigits(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId);\n    }\n\n    if ($labels.filter('[for]').length < $labels.length) {\n      // Get the input ID or create one\n      let elemId = $el.attr('id');\n      if (typeof elemId === 'undefined') {\n        elemId = GetYoDigits(6, 'abide-input');\n        $el.attr('id', elemId);\n      }\n\n      // For each label targeting $el, set [for] if it is not set.\n      $labels.each((i, label) => {\n        const $label = $(label);\n        if (typeof $label.attr('for') === 'undefined')\n          $label.attr('for', elemId);\n      });\n    }\n\n    // For each error targeting $el, set [role=alert] if it is not set.\n    $errors.each((i, label) => {\n      const $label = $(label);\n      if (typeof $label.attr('role') === 'undefined')\n        $label.attr('role', 'alert');\n    }).end();\n  }\n\n  /**\n   * Adds [aria-live] attribute to the given global form error $el.\n   * @param {Object} $el - jQuery object to add the attribute to\n   */\n  addGlobalErrorA11yAttributes($el) {\n    if (typeof $el.attr('aria-live') === 'undefined')\n      $el.attr('aria-live', this.options.a11yErrorLevel);\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire radio button group\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   *\n   */\n  removeRadioErrorClasses(groupName) {\n    var $els = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var $labels = this.findRadioLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Remove CSS error classes etc from an entire checkbox group\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   *\n   */\n  removeCheckboxErrorClasses(groupName) {\n    var $els = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var $labels = this.findCheckboxLabels($els);\n    var $formErrors = this.findFormError($els);\n\n    if ($labels.length) {\n      $labels.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formErrors.length) {\n      $formErrors.removeClass(this.options.formErrorClass);\n    }\n\n    $els.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n\n  }\n\n  /**\n   * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n   * @param {Object} $el - jQuery object to remove the class from\n   */\n  removeErrorClasses($el) {\n    // radios need to clear all of the els\n    if ($el[0].type == 'radio') {\n      return this.removeRadioErrorClasses($el.attr('name'));\n    }\n    // checkboxes need to clear all of the els\n    else if ($el[0].type == 'checkbox') {\n      return this.removeCheckboxErrorClasses($el.attr('name'));\n    }\n\n    var $label = this.findLabel($el);\n    var $formError = this.findFormError($el);\n\n    if ($label.length) {\n      $label.removeClass(this.options.labelErrorClass);\n    }\n\n    if ($formError.length) {\n      $formError.removeClass(this.options.formErrorClass);\n    }\n\n    $el.removeClass(this.options.inputErrorClass).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n  }\n\n  /**\n   * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n   * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n   * @fires Abide#invalid\n   * @fires Abide#valid\n   * @param {Object} element - jQuery object to validate, should be an HTML input\n   * @returns {Boolean} goodToGo - If the input is valid or not.\n   */\n  validateInput($el) {\n    var clearRequire = this.requiredCheck($el),\n        validator = $el.attr('data-validator'),\n        failedValidators = [],\n        manageErrorClasses = true;\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      return true;\n    }\n\n    // don't validate ignored inputs or hidden inputs or disabled inputs\n    if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n      return true;\n    }\n\n    switch ($el[0].type) {\n      case 'radio':\n        this.validateRadio($el.attr('name')) || failedValidators.push('required');\n        break;\n\n      case 'checkbox':\n        this.validateCheckbox($el.attr('name')) || failedValidators.push('required');\n        // validateCheckbox() adds/removes error classes\n        manageErrorClasses = false;\n        break;\n\n      case 'select':\n      case 'select-one':\n      case 'select-multiple':\n        clearRequire || failedValidators.push('required');\n        break;\n\n      default:\n        clearRequire || failedValidators.push('required');\n        this.validateText($el) || failedValidators.push('pattern');\n    }\n\n    if (validator) {\n      const required = $el.attr('required') ? true : false;\n\n      validator.split(' ').forEach((v) => {\n        this.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n      });\n    }\n\n    if ($el.attr('data-equalto')) {\n      this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n    }\n\n    var goodToGo = failedValidators.length === 0;\n    var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n    if (goodToGo) {\n      // Re-validate inputs that depend on this one with equalto\n      const dependentElements = this.$element.find(`[data-equalto=\"${$el.attr('id')}\"]`);\n      if (dependentElements.length) {\n        let _this = this;\n        dependentElements.each(function() {\n          if ($(this).val()) {\n            _this.validateInput($(this));\n          }\n        });\n      }\n    }\n\n    if (manageErrorClasses) {\n      if (!goodToGo) {\n        this.addErrorClasses($el, failedValidators);\n      } else {\n        this.removeErrorClasses($el);\n      }\n    }\n\n    /**\n     * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n     * Trigger includes the DOM element of the input.\n     * @event Abide#valid\n     * @event Abide#invalid\n     */\n    $el.trigger(message, [$el]);\n\n    return goodToGo;\n  }\n\n  /**\n   * Goes through a form and if there are any invalid inputs, it will display the form error element\n   * @returns {Boolean} noError - true if no errors were detected...\n   * @fires Abide#formvalid\n   * @fires Abide#forminvalid\n   */\n  validateForm() {\n    var acc = [];\n    var _this = this;\n    var checkboxGroupName;\n\n    // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n    if (!this.initialized) {\n      this.initialized = true;\n    }\n\n    // skip validation if disabled\n    if (this._validationIsDisabled()) {\n      this.formnovalidate = null;\n      return true;\n    }\n\n    this.$inputs.each(function() {\n\n      // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n      if ($(this)[0].type === 'checkbox') {\n        if ($(this).attr('name') === checkboxGroupName) return true;\n        checkboxGroupName = $(this).attr('name');\n      }\n\n      acc.push(_this.validateInput($(this)));\n    });\n\n    var noError = acc.indexOf(false) === -1;\n\n    this.$element.find('[data-abide-error]').each((i, elem) => {\n      const $elem = $(elem);\n      // Ensure a11y attributes are set\n      if (this.options.a11yAttributes) this.addGlobalErrorA11yAttributes($elem);\n      // Show or hide the error\n      $elem.css('display', (noError ? 'none' : 'block'));\n    });\n\n    /**\n     * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n     * Trigger includes the element of the form.\n     * @event Abide#formvalid\n     * @event Abide#forminvalid\n     */\n    this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n\n    return noError;\n  }\n\n  /**\n   * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n   * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n   * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n   * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n   */\n  validateText($el, pattern) {\n    // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n    pattern = (pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type'));\n    var inputText = $el.val();\n    var valid = true;\n\n    if (inputText.length) {\n      // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n      if (this.options.patterns.hasOwnProperty(pattern)) {\n        valid = this.options.patterns[pattern].test(inputText);\n      }\n      // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n      else if (pattern !== $el.attr('type')) {\n        valid = new RegExp(pattern).test(inputText);\n      }\n    }\n\n    return valid;\n   }\n\n  /**\n   * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n   * @param {String} groupName - A string that specifies the name of a radio button group\n   * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n   */\n  validateRadio(groupName) {\n    // If at least one radio in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:radio[name=\"${groupName}\"]`);\n    var valid = false, required = false;\n\n    // For the group to be required, at least one radio needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // For the group to be valid, at least one radio needs to be checked\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          valid = true;\n        }\n      });\n    }\n\n    return valid;\n  }\n\n  /**\n   * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n   * @param {String} groupName - A string that specifies the name of a checkbox group\n   * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n   */\n  validateCheckbox(groupName) {\n    // If at least one checkbox in the group has the `required` attribute, the group is considered required\n    // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n    var $group = this.$element.find(`:checkbox[name=\"${groupName}\"]`);\n    var valid = false, required = false, minRequired = 1, checked = 0;\n\n    // For the group to be required, at least one checkbox needs to be required\n    $group.each((i, e) => {\n      if ($(e).attr('required')) {\n        required = true;\n      }\n    });\n    if (!required) valid=true;\n\n    if (!valid) {\n      // Count checked checkboxes within the group\n      // Use data-min-required if available (default: 1)\n      $group.each((i, e) => {\n        if ($(e).prop('checked')) {\n          checked++;\n        }\n        if (typeof $(e).attr('data-min-required') !== 'undefined') {\n          minRequired = parseInt($(e).attr('data-min-required'));\n        }\n      });\n\n      // For the group to be valid, the minRequired amount of checkboxes have to be checked\n      if (checked >= minRequired) {\n        valid = true;\n      }\n    }\n\n    // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n    if (this.initialized !== true && minRequired > 1) {\n      return true;\n    }\n\n    // Refresh error class for all input\n    $group.each((i, e) => {\n      if (!valid) {\n        this.addErrorClasses($(e), ['required']);\n      } else {\n        this.removeErrorClasses($(e));\n      }\n    });\n\n    return valid;\n  }\n\n  /**\n   * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n   * @param {Object} $el - jQuery input element.\n   * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n   * @param {Boolean} required - self explanatory?\n   * @returns {Boolean} - true if validations passed.\n   */\n  matchValidation($el, validators, required) {\n    required = required ? true : false;\n\n    var clear = validators.split(' ').map((v) => {\n      return this.options.validators[v]($el, required, $el.parent());\n    });\n    return clear.indexOf(false) === -1;\n  }\n\n  /**\n   * Resets form inputs and styles\n   * @fires Abide#formreset\n   */\n  resetForm() {\n    var $form = this.$element,\n        opts = this.options;\n\n    $(`.${opts.labelErrorClass}`, $form).not('small').removeClass(opts.labelErrorClass);\n    $(`.${opts.inputErrorClass}`, $form).not('small').removeClass(opts.inputErrorClass);\n    $(`${opts.formErrorSelector}.${opts.formErrorClass}`).removeClass(opts.formErrorClass);\n    $form.find('[data-abide-error]').css('display', 'none');\n    $(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:radio', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    $(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked',false).attr({\n      'data-invalid': null,\n      'aria-invalid': null\n    });\n    /**\n     * Fires when the form has been reset.\n     * @event Abide#formreset\n     */\n    $form.trigger('formreset.zf.abide', [$form]);\n  }\n\n  /**\n   * Destroys an instance of Abide.\n   * Removes error styles and classes from elements, without resetting their values.\n   */\n  _destroy() {\n    var _this = this;\n    this.$element\n      .off('.abide')\n      .find('[data-abide-error]')\n        .css('display', 'none');\n\n    this.$inputs\n      .off('.abide')\n      .each(function() {\n        _this.removeErrorClasses($(this));\n      });\n\n    this.$submits\n      .off('.abide');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n\n  patterns: {\n    alpha : /^[a-zA-Z]+$/,\n    alpha_numeric : /^[a-zA-Z0-9]+$/,\n    integer : /^[-+]?\\d+$/,\n    number : /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n\n    // amex, visa, diners\n    card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv : /^([0-9]){3,4}$/,\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email : /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n\n    // abc.de\n    domain : /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n\n    datetime : /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO : /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    month_day_year : /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n\n    // #FFF or #FFFFFF\n    color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n\n    // Domain || URL\n    website: {\n      test: (text) => {\n        return Abide.defaults.patterns['domain'].test(text) || Abide.defaults.patterns['url'].test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * required : Boolean value of the required attribute be present or not.\n   * parent : The direct parent of the input.\n   * @option\n   */\n  validators: {\n    equalTo: function (el, required, parent) {\n      return $(`#${el.attr('data-equalto')}`).val() === el.val();\n    }\n  }\n}\n\nexport { Abide };\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.abide.min.js","sources":["foundation.abide.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.abide\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.abide\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.abide.js\":\n/*!************************************************!*\\\n  !*** ./js/entries/plugins/foundation.abide.js ***!\n  \\************************************************/\n/*! exports provided: Foundation, Abide */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_abide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.abide */ \"./js/foundation.abide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Abide\", function() { return _foundation_abide__WEBPACK_IMPORTED_MODULE_1__[\"Abide\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_abide__WEBPACK_IMPORTED_MODULE_1__[\"Abide\"], 'Abide');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.abide.js\":\n/*!********************************!*\\\n  !*** ./js/foundation.abide.js ***!\n  \\********************************/\n/*! exports provided: Abide */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Abide\", function() { return Abide; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n/**\n * Abide module.\n * @module foundation.abide\n */\n\nvar Abide = /*#__PURE__*/function (_Plugin) {\n  _inherits(Abide, _Plugin);\n\n  var _super = _createSuper(Abide);\n\n  function Abide() {\n    _classCallCheck(this, Abide);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Abide, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Abide.\n     * @class\n     * @name Abide\n     * @fires Abide#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(true, {}, Abide.defaults, this.$element.data(), options);\n      this.isEnabled = true;\n      this.formnovalidate = null;\n      this.className = 'Abide'; // ie9 back compat\n\n      this._init();\n    }\n    /**\n     * Initializes the Abide plugin and calls functions to get Abide functioning on load.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      this.$inputs = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.merge( // Consider as input to validate:\n      this.$element.find('input').not('[type=\"submit\"]'), // * all input fields expect submit\n      this.$element.find('textarea, select') // * all textareas and select fields\n      );\n      this.$submits = this.$element.find('[type=\"submit\"]');\n      var $globalErrors = this.$element.find('[data-abide-error]'); // Add a11y attributes to all fields\n\n      if (this.options.a11yAttributes) {\n        this.$inputs.each(function (i, input) {\n          return _this2.addA11yAttributes(jquery__WEBPACK_IMPORTED_MODULE_0___default()(input));\n        });\n        $globalErrors.each(function (i, error) {\n          return _this2.addGlobalErrorA11yAttributes(jquery__WEBPACK_IMPORTED_MODULE_0___default()(error));\n        });\n      }\n\n      this._events();\n    }\n    /**\n     * Initializes events for Abide.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this3 = this;\n\n      this.$element.off('.abide').on('reset.zf.abide', function () {\n        _this3.resetForm();\n      }).on('submit.zf.abide', function () {\n        return _this3.validateForm();\n      });\n      this.$submits.off('click.zf.abide keydown.zf.abide').on('click.zf.abide keydown.zf.abide', function (e) {\n        if (!e.key || e.key === ' ' || e.key === 'Enter') {\n          e.preventDefault();\n          _this3.formnovalidate = e.target.getAttribute('formnovalidate') !== null;\n\n          _this3.$element.submit();\n        }\n      });\n\n      if (this.options.validateOn === 'fieldChange') {\n        this.$inputs.off('change.zf.abide').on('change.zf.abide', function (e) {\n          _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n        });\n      }\n\n      if (this.options.liveValidate) {\n        this.$inputs.off('input.zf.abide').on('input.zf.abide', function (e) {\n          _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n        });\n      }\n\n      if (this.options.validateOnBlur) {\n        this.$inputs.off('blur.zf.abide').on('blur.zf.abide', function (e) {\n          _this3.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target));\n        });\n      }\n    }\n    /**\n     * Calls necessary functions to update Abide upon DOM change\n     * @private\n     */\n\n  }, {\n    key: \"_reflow\",\n    value: function _reflow() {\n      this._init();\n    }\n    /**\n     * Checks whether the submitted form should be validated or not, consodering formnovalidate and isEnabled\n     * @returns {Boolean}\n     * @private\n     */\n\n  }, {\n    key: \"_validationIsDisabled\",\n    value: function _validationIsDisabled() {\n      if (this.isEnabled === false) {\n        // whole validation disabled\n        return true;\n      } else if (typeof this.formnovalidate === 'boolean') {\n        // triggered by $submit\n        return this.formnovalidate;\n      } // triggered by Enter in non-submit input\n\n\n      return this.$submits.length ? this.$submits[0].getAttribute('formnovalidate') !== null : false;\n    }\n    /**\n     * Enables the whole validation\n     */\n\n  }, {\n    key: \"enableValidation\",\n    value: function enableValidation() {\n      this.isEnabled = true;\n    }\n    /**\n     * Disables the whole validation\n     */\n\n  }, {\n    key: \"disableValidation\",\n    value: function disableValidation() {\n      this.isEnabled = false;\n    }\n    /**\n     * Checks whether or not a form element has the required attribute and if it's checked or not\n     * @param {Object} element - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"requiredCheck\",\n    value: function requiredCheck($el) {\n      if (!$el.attr('required')) return true;\n      var isGood = true;\n\n      switch ($el[0].type) {\n        case 'checkbox':\n          isGood = $el[0].checked;\n          break;\n\n        case 'select':\n        case 'select-one':\n        case 'select-multiple':\n          var opt = $el.find('option:selected');\n          if (!opt.length || !opt.val()) isGood = false;\n          break;\n\n        default:\n          if (!$el.val() || !$el.val().length) isGood = false;\n      }\n\n      return isGood;\n    }\n    /**\n     * Get:\n     * - Based on $el, the first element(s) corresponding to `formErrorSelector` in this order:\n     *   1. The element's direct sibling('s).\n     *   2. The element's parent's children.\n     * - Element(s) with the attribute `[data-form-error-for]` set with the element's id.\n     *\n     * This allows for multiple form errors per input, though if none are found, no form errors will be shown.\n     *\n     * @param {Object} $el - jQuery object to use as reference to find the form error selector.\n     * @param {String[]} [failedValidators] - List of failed validators.\n     * @returns {Object} jQuery object with the selector.\n     */\n\n  }, {\n    key: \"findFormError\",\n    value: function findFormError($el, failedValidators) {\n      var _this4 = this;\n\n      var id = $el.length ? $el[0].id : '';\n      var $error = $el.siblings(this.options.formErrorSelector);\n\n      if (!$error.length) {\n        $error = $el.parent().find(this.options.formErrorSelector);\n      }\n\n      if (id) {\n        $error = $error.add(this.$element.find(\"[data-form-error-for=\\\"\".concat(id, \"\\\"]\")));\n      }\n\n      if (!!failedValidators) {\n        $error = $error.not('[data-form-error-on]');\n        failedValidators.forEach(function (v) {\n          $error = $error.add($el.siblings(\"[data-form-error-on=\\\"\".concat(v, \"\\\"]\")));\n          $error = $error.add(_this4.$element.find(\"[data-form-error-for=\\\"\".concat(id, \"\\\"][data-form-error-on=\\\"\").concat(v, \"\\\"]\")));\n        });\n      }\n\n      return $error;\n    }\n    /**\n     * Get the first element in this order:\n     * 2. The <label> with the attribute `[for=\"someInputId\"]`\n     * 3. The `.closest()` <label>\n     *\n     * @param {Object} $el - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"findLabel\",\n    value: function findLabel($el) {\n      var id = $el[0].id;\n      var $label = this.$element.find(\"label[for=\\\"\".concat(id, \"\\\"]\"));\n\n      if (!$label.length) {\n        return $el.closest('label');\n      }\n\n      return $label;\n    }\n    /**\n     * Get the set of labels associated with a set of radio els in this order\n     * 2. The <label> with the attribute `[for=\"someInputId\"]`\n     * 3. The `.closest()` <label>\n     *\n     * @param {Object} $el - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"findRadioLabels\",\n    value: function findRadioLabels($els) {\n      var _this5 = this;\n\n      var labels = $els.map(function (i, el) {\n        var id = el.id;\n\n        var $label = _this5.$element.find(\"label[for=\\\"\".concat(id, \"\\\"]\"));\n\n        if (!$label.length) {\n          $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).closest('label');\n        }\n\n        return $label[0];\n      });\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()(labels);\n    }\n    /**\n     * Get the set of labels associated with a set of checkbox els in this order\n     * 2. The <label> with the attribute `[for=\"someInputId\"]`\n     * 3. The `.closest()` <label>\n     *\n     * @param {Object} $el - jQuery object to check for required attribute\n     * @returns {Boolean} Boolean value depends on whether or not attribute is checked or empty\n     */\n\n  }, {\n    key: \"findCheckboxLabels\",\n    value: function findCheckboxLabels($els) {\n      var _this6 = this;\n\n      var labels = $els.map(function (i, el) {\n        var id = el.id;\n\n        var $label = _this6.$element.find(\"label[for=\\\"\".concat(id, \"\\\"]\"));\n\n        if (!$label.length) {\n          $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).closest('label');\n        }\n\n        return $label[0];\n      });\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()(labels);\n    }\n    /**\n     * Adds the CSS error class as specified by the Abide settings to the label, input, and the form\n     * @param {Object} $el - jQuery object to add the class to\n     * @param {String[]} [failedValidators] - List of failed validators.\n     */\n\n  }, {\n    key: \"addErrorClasses\",\n    value: function addErrorClasses($el, failedValidators) {\n      var $label = this.findLabel($el);\n      var $formError = this.findFormError($el, failedValidators);\n\n      if ($label.length) {\n        $label.addClass(this.options.labelErrorClass);\n      }\n\n      if ($formError.length) {\n        $formError.addClass(this.options.formErrorClass);\n      }\n\n      $el.addClass(this.options.inputErrorClass).attr({\n        'data-invalid': '',\n        'aria-invalid': true\n      });\n\n      if ($formError.filter(':visible').length) {\n        this.addA11yErrorDescribe($el, $formError);\n      }\n    }\n    /**\n     * Adds [for] and [role=alert] attributes to all form error targetting $el,\n     * and [aria-describedby] attribute to $el toward the first form error.\n     * @param {Object} $el - jQuery object\n     */\n\n  }, {\n    key: \"addA11yAttributes\",\n    value: function addA11yAttributes($el) {\n      var $errors = this.findFormError($el);\n      var $labels = $errors.filter('label');\n      if (!$errors.length) return;\n      var $error = $errors.filter(':visible').first();\n\n      if ($error.length) {\n        this.addA11yErrorDescribe($el, $error);\n      }\n\n      if ($labels.filter('[for]').length < $labels.length) {\n        // Get the input ID or create one\n        var elemId = $el.attr('id');\n\n        if (typeof elemId === 'undefined') {\n          elemId = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'abide-input');\n          $el.attr('id', elemId);\n        } // For each label targeting $el, set [for] if it is not set.\n\n\n        $labels.each(function (i, label) {\n          var $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(label);\n          if (typeof $label.attr('for') === 'undefined') $label.attr('for', elemId);\n        });\n      } // For each error targeting $el, set [role=alert] if it is not set.\n\n\n      $errors.each(function (i, label) {\n        var $label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(label);\n        if (typeof $label.attr('role') === 'undefined') $label.attr('role', 'alert');\n      }).end();\n    }\n  }, {\n    key: \"addA11yErrorDescribe\",\n    value: function addA11yErrorDescribe($el, $error) {\n      if (typeof $el.attr('aria-describedby') !== 'undefined') return; // Set [aria-describedby] on the input toward the first form error if it is not set\n      // Get the first error ID or create one\n\n      var errorId = $error.attr('id');\n\n      if (typeof errorId === 'undefined') {\n        errorId = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'abide-error');\n        $error.attr('id', errorId);\n      }\n\n      $el.attr('aria-describedby', errorId).data('abide-describedby', true);\n    }\n    /**\n     * Adds [aria-live] attribute to the given global form error $el.\n     * @param {Object} $el - jQuery object to add the attribute to\n     */\n\n  }, {\n    key: \"addGlobalErrorA11yAttributes\",\n    value: function addGlobalErrorA11yAttributes($el) {\n      if (typeof $el.attr('aria-live') === 'undefined') $el.attr('aria-live', this.options.a11yErrorLevel);\n    }\n    /**\n     * Remove CSS error classes etc from an entire radio button group\n     * @param {String} groupName - A string that specifies the name of a radio button group\n     *\n     */\n\n  }, {\n    key: \"removeRadioErrorClasses\",\n    value: function removeRadioErrorClasses(groupName) {\n      var $els = this.$element.find(\":radio[name=\\\"\".concat(groupName, \"\\\"]\"));\n      var $labels = this.findRadioLabels($els);\n      var $formErrors = this.findFormError($els);\n\n      if ($labels.length) {\n        $labels.removeClass(this.options.labelErrorClass);\n      }\n\n      if ($formErrors.length) {\n        $formErrors.removeClass(this.options.formErrorClass);\n      }\n\n      $els.removeClass(this.options.inputErrorClass).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n    }\n    /**\n     * Remove CSS error classes etc from an entire checkbox group\n     * @param {String} groupName - A string that specifies the name of a checkbox group\n     *\n     */\n\n  }, {\n    key: \"removeCheckboxErrorClasses\",\n    value: function removeCheckboxErrorClasses(groupName) {\n      var $els = this.$element.find(\":checkbox[name=\\\"\".concat(groupName, \"\\\"]\"));\n      var $labels = this.findCheckboxLabels($els);\n      var $formErrors = this.findFormError($els);\n\n      if ($labels.length) {\n        $labels.removeClass(this.options.labelErrorClass);\n      }\n\n      if ($formErrors.length) {\n        $formErrors.removeClass(this.options.formErrorClass);\n      }\n\n      $els.removeClass(this.options.inputErrorClass).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n    }\n    /**\n     * Removes CSS error class as specified by the Abide settings from the label, input, and the form\n     * @param {Object} $el - jQuery object to remove the class from\n     */\n\n  }, {\n    key: \"removeErrorClasses\",\n    value: function removeErrorClasses($el) {\n      // radios need to clear all of the els\n      if ($el[0].type === 'radio') {\n        return this.removeRadioErrorClasses($el.attr('name'));\n      } // checkboxes need to clear all of the els\n      else if ($el[0].type === 'checkbox') {\n        return this.removeCheckboxErrorClasses($el.attr('name'));\n      }\n\n      var $label = this.findLabel($el);\n      var $formError = this.findFormError($el);\n\n      if ($label.length) {\n        $label.removeClass(this.options.labelErrorClass);\n      }\n\n      if ($formError.length) {\n        $formError.removeClass(this.options.formErrorClass);\n      }\n\n      $el.removeClass(this.options.inputErrorClass).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n\n      if ($el.data('abide-describedby')) {\n        $el.removeAttr('aria-describedby').removeData('abide-describedby');\n      }\n    }\n    /**\n     * Goes through a form to find inputs and proceeds to validate them in ways specific to their type.\n     * Ignores inputs with data-abide-ignore, type=\"hidden\" or disabled attributes set\n     * @fires Abide#invalid\n     * @fires Abide#valid\n     * @param {Object} element - jQuery object to validate, should be an HTML input\n     * @returns {Boolean} goodToGo - If the input is valid or not.\n     */\n\n  }, {\n    key: \"validateInput\",\n    value: function validateInput($el) {\n      var _this7 = this;\n\n      var clearRequire = this.requiredCheck($el),\n          validator = $el.attr('data-validator'),\n          failedValidators = [],\n          manageErrorClasses = true; // skip validation if disabled\n\n      if (this._validationIsDisabled()) {\n        return true;\n      } // don't validate ignored inputs or hidden inputs or disabled inputs\n\n\n      if ($el.is('[data-abide-ignore]') || $el.is('[type=\"hidden\"]') || $el.is('[disabled]')) {\n        return true;\n      }\n\n      switch ($el[0].type) {\n        case 'radio':\n          this.validateRadio($el.attr('name')) || failedValidators.push('required');\n          break;\n\n        case 'checkbox':\n          this.validateCheckbox($el.attr('name')) || failedValidators.push('required'); // validateCheckbox() adds/removes error classes\n\n          manageErrorClasses = false;\n          break;\n\n        case 'select':\n        case 'select-one':\n        case 'select-multiple':\n          clearRequire || failedValidators.push('required');\n          break;\n\n        default:\n          clearRequire || failedValidators.push('required');\n          this.validateText($el) || failedValidators.push('pattern');\n      }\n\n      if (validator) {\n        var required = $el.attr('required') ? true : false;\n        validator.split(' ').forEach(function (v) {\n          _this7.options.validators[v]($el, required, $el.parent()) || failedValidators.push(v);\n        });\n      }\n\n      if ($el.attr('data-equalto')) {\n        this.options.validators.equalTo($el) || failedValidators.push('equalTo');\n      }\n\n      var goodToGo = failedValidators.length === 0;\n      var message = (goodToGo ? 'valid' : 'invalid') + '.zf.abide';\n\n      if (goodToGo) {\n        // Re-validate inputs that depend on this one with equalto\n        var dependentElements = this.$element.find(\"[data-equalto=\\\"\".concat($el.attr('id'), \"\\\"]\"));\n\n        if (dependentElements.length) {\n          var _this = this;\n\n          dependentElements.each(function () {\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val()) {\n              _this.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n            }\n          });\n        }\n      }\n\n      if (manageErrorClasses) {\n        if (!goodToGo) {\n          this.addErrorClasses($el, failedValidators);\n        } else {\n          this.removeErrorClasses($el);\n        }\n      }\n      /**\n       * Fires when the input is done checking for validation. Event trigger is either `valid.zf.abide` or `invalid.zf.abide`\n       * Trigger includes the DOM element of the input.\n       * @event Abide#valid\n       * @event Abide#invalid\n       */\n\n\n      $el.trigger(message, [$el]);\n      return goodToGo;\n    }\n    /**\n     * Goes through a form and if there are any invalid inputs, it will display the form error element\n     * @returns {Boolean} noError - true if no errors were detected...\n     * @fires Abide#formvalid\n     * @fires Abide#forminvalid\n     */\n\n  }, {\n    key: \"validateForm\",\n    value: function validateForm() {\n      var _this8 = this;\n\n      var acc = [];\n\n      var _this = this;\n\n      var checkboxGroupName; // Remember first form submission to prevent specific checkbox validation (more than one required) until form got initially submitted\n\n      if (!this.initialized) {\n        this.initialized = true;\n      } // skip validation if disabled\n\n\n      if (this._validationIsDisabled()) {\n        this.formnovalidate = null;\n        return true;\n      }\n\n      this.$inputs.each(function () {\n        // Only use one checkbox per group since validateCheckbox() iterates over all associated checkboxes\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)[0].type === 'checkbox') {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('name') === checkboxGroupName) return true;\n          checkboxGroupName = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('name');\n        }\n\n        acc.push(_this.validateInput(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)));\n      });\n      var noError = acc.indexOf(false) === -1;\n      this.$element.find('[data-abide-error]').each(function (i, elem) {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem); // Ensure a11y attributes are set\n\n        if (_this8.options.a11yAttributes) _this8.addGlobalErrorA11yAttributes($elem); // Show or hide the error\n\n        $elem.css('display', noError ? 'none' : 'block');\n      });\n      /**\n       * Fires when the form is finished validating. Event trigger is either `formvalid.zf.abide` or `forminvalid.zf.abide`.\n       * Trigger includes the element of the form.\n       * @event Abide#formvalid\n       * @event Abide#forminvalid\n       */\n\n      this.$element.trigger((noError ? 'formvalid' : 'forminvalid') + '.zf.abide', [this.$element]);\n      return noError;\n    }\n    /**\n     * Determines whether or a not a text input is valid based on the pattern specified in the attribute. If no matching pattern is found, returns true.\n     * @param {Object} $el - jQuery object to validate, should be a text input HTML element\n     * @param {String} pattern - string value of one of the RegEx patterns in Abide.options.patterns\n     * @returns {Boolean} Boolean value depends on whether or not the input value matches the pattern specified\n     */\n\n  }, {\n    key: \"validateText\",\n    value: function validateText($el, pattern) {\n      // A pattern can be passed to this function, or it will be infered from the input's \"pattern\" attribute, or it's \"type\" attribute\n      pattern = pattern || $el.attr('data-pattern') || $el.attr('pattern') || $el.attr('type');\n      var inputText = $el.val();\n      var valid = true;\n\n      if (inputText.length) {\n        // If the pattern attribute on the element is in Abide's list of patterns, then test that regexp\n        if (this.options.patterns.hasOwnProperty(pattern)) {\n          valid = this.options.patterns[pattern].test(inputText);\n        } // If the pattern name isn't also the type attribute of the field, then test it as a regexp\n        else if (pattern !== $el.attr('type')) {\n          valid = new RegExp(pattern).test(inputText);\n        }\n      }\n\n      return valid;\n    }\n    /**\n     * Determines whether or a not a radio input is valid based on whether or not it is required and selected. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all radio buttons in its group.\n     * @param {String} groupName - A string that specifies the name of a radio button group\n     * @returns {Boolean} Boolean value depends on whether or not at least one radio input has been selected (if it's required)\n     */\n\n  }, {\n    key: \"validateRadio\",\n    value: function validateRadio(groupName) {\n      // If at least one radio in the group has the `required` attribute, the group is considered required\n      // Per W3C spec, all radio buttons in a group should have `required`, but we're being nice\n      var $group = this.$element.find(\":radio[name=\\\"\".concat(groupName, \"\\\"]\"));\n      var valid = false,\n          required = false; // For the group to be required, at least one radio needs to be required\n\n      $group.each(function (i, e) {\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).attr('required')) {\n          required = true;\n        }\n      });\n      if (!required) valid = true;\n\n      if (!valid) {\n        // For the group to be valid, at least one radio needs to be checked\n        $group.each(function (i, e) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).prop('checked')) {\n            valid = true;\n          }\n        });\n      }\n\n      return valid;\n    }\n    /**\n     * Determines whether or a not a checkbox input is valid based on whether or not it is required and checked. Although the function targets a single `<input>`, it validates by checking the `required` and `checked` properties of all checkboxes in its group.\n     * @param {String} groupName - A string that specifies the name of a checkbox group\n     * @returns {Boolean} Boolean value depends on whether or not at least one checkbox input has been checked (if it's required)\n     */\n\n  }, {\n    key: \"validateCheckbox\",\n    value: function validateCheckbox(groupName) {\n      var _this9 = this;\n\n      // If at least one checkbox in the group has the `required` attribute, the group is considered required\n      // Per W3C spec, all checkboxes in a group should have `required`, but we're being nice\n      var $group = this.$element.find(\":checkbox[name=\\\"\".concat(groupName, \"\\\"]\"));\n      var valid = false,\n          required = false,\n          minRequired = 1,\n          checked = 0; // For the group to be required, at least one checkbox needs to be required\n\n      $group.each(function (i, e) {\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).attr('required')) {\n          required = true;\n        }\n      });\n      if (!required) valid = true;\n\n      if (!valid) {\n        // Count checked checkboxes within the group\n        // Use data-min-required if available (default: 1)\n        $group.each(function (i, e) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).prop('checked')) {\n            checked++;\n          }\n\n          if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).attr('data-min-required') !== 'undefined') {\n            minRequired = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e).attr('data-min-required'), 10);\n          }\n        }); // For the group to be valid, the minRequired amount of checkboxes have to be checked\n\n        if (checked >= minRequired) {\n          valid = true;\n        }\n      } // Skip validation if more than 1 checkbox have to be checked AND if the form hasn't got submitted yet (otherwise it will already show an error during the first fill in)\n\n\n      if (this.initialized !== true && minRequired > 1) {\n        return true;\n      } // Refresh error class for all input\n\n\n      $group.each(function (i, e) {\n        if (!valid) {\n          _this9.addErrorClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e), ['required']);\n        } else {\n          _this9.removeErrorClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(e));\n        }\n      });\n      return valid;\n    }\n    /**\n     * Determines if a selected input passes a custom validation function. Multiple validations can be used, if passed to the element with `data-validator=\"foo bar baz\"` in a space separated listed.\n     * @param {Object} $el - jQuery input element.\n     * @param {String} validators - a string of function names matching functions in the Abide.options.validators object.\n     * @param {Boolean} required - self explanatory?\n     * @returns {Boolean} - true if validations passed.\n     */\n\n  }, {\n    key: \"matchValidation\",\n    value: function matchValidation($el, validators, required) {\n      var _this10 = this;\n\n      required = required ? true : false;\n      var clear = validators.split(' ').map(function (v) {\n        return _this10.options.validators[v]($el, required, $el.parent());\n      });\n      return clear.indexOf(false) === -1;\n    }\n    /**\n     * Resets form inputs and styles\n     * @fires Abide#formreset\n     */\n\n  }, {\n    key: \"resetForm\",\n    value: function resetForm() {\n      var $form = this.$element,\n          opts = this.options;\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".\".concat(opts.labelErrorClass), $form).not('small').removeClass(opts.labelErrorClass);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".\".concat(opts.inputErrorClass), $form).not('small').removeClass(opts.inputErrorClass);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(opts.formErrorSelector, \".\").concat(opts.formErrorClass)).removeClass(opts.formErrorClass);\n      $form.find('[data-abide-error]').css('display', 'none');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(':input', $form).not(':button, :submit, :reset, :hidden, :radio, :checkbox, [data-abide-ignore]').val('').attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(':input:radio', $form).not('[data-abide-ignore]').prop('checked', false).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(':input:checkbox', $form).not('[data-abide-ignore]').prop('checked', false).attr({\n        'data-invalid': null,\n        'aria-invalid': null\n      });\n      /**\n       * Fires when the form has been reset.\n       * @event Abide#formreset\n       */\n\n      $form.trigger('formreset.zf.abide', [$form]);\n    }\n    /**\n     * Destroys an instance of Abide.\n     * Removes error styles and classes from elements, without resetting their values.\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      var _this = this;\n\n      this.$element.off('.abide').find('[data-abide-error]').css('display', 'none');\n      this.$inputs.off('.abide').each(function () {\n        _this.removeErrorClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n      });\n      this.$submits.off('.abide');\n    }\n  }]);\n\n  return Abide;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nAbide.defaults = {\n  /**\n   * The default event to validate inputs. Checkboxes and radios validate immediately.\n   * Remove or change this value for manual validation.\n   * @option\n   * @type {?string}\n   * @default 'fieldChange'\n   */\n  validateOn: 'fieldChange',\n\n  /**\n   * Class to be applied to input labels on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-label'\n   */\n  labelErrorClass: 'is-invalid-label',\n\n  /**\n   * Class to be applied to inputs on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-invalid-input'\n   */\n  inputErrorClass: 'is-invalid-input',\n\n  /**\n   * Class selector to use to target Form Errors for show/hide.\n   * @option\n   * @type {string}\n   * @default '.form-error'\n   */\n  formErrorSelector: '.form-error',\n\n  /**\n   * Class added to Form Errors on failed validation.\n   * @option\n   * @type {string}\n   * @default 'is-visible'\n   */\n  formErrorClass: 'is-visible',\n\n  /**\n   * If true, automatically insert when possible:\n   * - `[aria-describedby]` on fields\n   * - `[role=alert]` on form errors and `[for]` on form error labels\n   * - `[aria-live]` on global errors `[data-abide-error]` (see option `a11yErrorLevel`).\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  a11yAttributes: true,\n\n  /**\n   * [aria-live] attribute value to be applied on global errors `[data-abide-error]`.\n   * Options are: 'assertive', 'polite' and 'off'/null\n   * @option\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions\n   * @type {string}\n   * @default 'assertive'\n   */\n  a11yErrorLevel: 'assertive',\n\n  /**\n   * Set to true to validate text inputs on any value change.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  liveValidate: false,\n\n  /**\n   * Set to true to validate inputs on blur.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  validateOnBlur: false,\n  patterns: {\n    alpha: /^[a-zA-Z]+$/,\n    // eslint-disable-next-line camelcase\n    alpha_numeric: /^[a-zA-Z0-9]+$/,\n    integer: /^[-+]?\\d+$/,\n    number: /^[-+]?\\d*(?:[\\.\\,]\\d+)?$/,\n    // amex, visa, diners\n    card: /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(?:222[1-9]|2[3-6][0-9]{2}|27[0-1][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/,\n    cvv: /^([0-9]){3,4}$/,\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address\n    email: /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,\n    // From CommonRegexJS (@talyssonoc)\n    // https://github.com/talyssonoc/CommonRegexJS/blob/e2901b9f57222bc14069dc8f0598d5f412555411/lib/commonregex.js#L76\n    // For more restrictive URL Regexs, see https://mathiasbynens.be/demo/url-regex.\n    url: /^((?:(https?|ftps?|file|ssh|sftp):\\/\\/|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]+|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\\'\".,<>?\\xab\\xbb\\u201c\\u201d\\u2018\\u2019]))$/,\n    // abc.de\n    domain: /^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,8}$/,\n    datetime: /^([0-2][0-9]{3})\\-([0-1][0-9])\\-([0-3][0-9])T([0-5][0-9])\\:([0-5][0-9])\\:([0-5][0-9])(Z|([\\-\\+]([0-1][0-9])\\:00))$/,\n    // YYYY-MM-DD\n    date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,\n    // HH:MM:SS\n    time: /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,\n    dateISO: /^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/,\n    // MM/DD/YYYY\n    // eslint-disable-next-line camelcase\n    month_day_year: /^(0[1-9]|1[012])[- \\/.](0[1-9]|[12][0-9]|3[01])[- \\/.]\\d{4}$/,\n    // DD/MM/YYYY\n    // eslint-disable-next-line camelcase\n    day_month_year: /^(0[1-9]|[12][0-9]|3[01])[- \\/.](0[1-9]|1[012])[- \\/.]\\d{4}$/,\n    // #FFF or #FFFFFF\n    color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,\n    // Domain || URL\n    website: {\n      test: function test(text) {\n        return Abide.defaults.patterns.domain.test(text) || Abide.defaults.patterns.url.test(text);\n      }\n    }\n  },\n\n  /**\n   * Optional validation functions to be used. `equalTo` being the only default included function.\n   * Functions should return only a boolean if the input is valid or not. Functions are given the following arguments:\n   * el : The jQuery element to validate.\n   * @option\n   */\n  validators: {\n    equalTo: function equalTo(el) {\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(el.attr('data-equalto'))).val() === el.val();\n    }\n  }\n};\n\n\n/***/ }),\n\n/***/ 0:\n/*!******************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.abide.js ***!\n  \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.abide.js */\"./js/entries/plugins/foundation.abide.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.abide.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.abide.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_abide__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.abide.js","Abide","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","undefined","$element","a","extend","defaults","data","isEnabled","formnovalidate","className","_init","_this2","$inputs","merge","find","not","$submits","$globalErrors","a11yAttributes","each","input","addA11yAttributes","error","addGlobalErrorA11yAttributes","_events","_this3","off","on","resetForm","validateForm","preventDefault","getAttribute","submit","validateOn","validateInput","liveValidate","validateOnBlur","$el","attr","isGood","type","checked","opt","val","failedValidators","_this4","id","$error","siblings","formErrorSelector","parent","add","concat","forEach","v","$label","closest","$els","_this5","labels","map","el","_this6","findLabel","$formError","findFormError","addClass","labelErrorClass","formErrorClass","inputErrorClass","data-invalid","aria-invalid","filter","addA11yErrorDescribe","elemId","$errors","$labels","first","label","end","errorId","a11yErrorLevel","groupName","findRadioLabels","$formErrors","removeClass","findCheckboxLabels","removeRadioErrorClasses","removeCheckboxErrorClasses","removeAttr","removeData","required","_this7","clearRequire","requiredCheck","validator","manageErrorClasses","_validationIsDisabled","is","validateRadio","push","validateCheckbox","validateText","split","validators","equalTo","_this","goodToGo","message","dependentElements","removeErrorClasses","addErrorClasses","trigger","checkboxGroupName","_this8","acc","initialized","noError","indexOf","elem","$elem","css","pattern","inputText","valid","patterns","hasOwnProperty","test","RegExp","$group","prop","_this9","minRequired","parseInt","_this10","$form","opts","alpha","alpha_numeric","integer","number","card","cvv","email","url","domain","datetime","date","time","dateISO","month_day_year","day_month_year","color","website","text","0","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index bf08add49bebe6c97b6df7440eae7f9a75a922c0..352c8978e972c831f8540267cc645d86a78f5957 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.accordion.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.accordion.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_accordion__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Accordion","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_DOWN","ARROW_UP","HOME","END","_this2","_isInitializing","$tabs","children","each","idx","el","$el","$content","id","GetYoDigits","linkId","concat","find","attr","aria-controls","aria-expanded","role","aria-labelledby","aria-hidden","$initActive","length","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","location","hash","$anchor","$link","parent","hasClass","_closeAllTabs","deepLinkSmudge","onLoad","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","trigger","deepLink","_events","_this","$elem","$tabContent","off","on","e","preventDefault","toggle","handleKey","next","$a","focus","multiExpand","previous","first","last","handled","$target","closest","is","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$othersItems","$targetItem","siblings","allowAllClosed","_closeTab","$activeContents","not","_this3","targetContentId","addClass","finish","slideDown","slideSpeed","_this4","removeClass","slideUp","$activeTabs","stop","css","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.accordion.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.accordion\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordion\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","import { Foundation } from './foundation.core';\n\nimport { Accordion } from '../../foundation.accordion';\nFoundation.plugin(Accordion, 'Accordion');\n\nexport { Foundation, Accordion };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n  /**\n   * Creates a new instance of an accordion.\n   * @class\n   * @name Accordion\n   * @fires Accordion#init\n   * @param {jQuery} element - jQuery object to make into an accordion.\n   * @param {Object} options - a plain object with settings to override the default options.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n    this.className = 'Accordion'; // ie9 back compat\n    this._init();\n\n    Keyboard.register('Accordion', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_DOWN': 'next',\n      'ARROW_UP': 'previous',\n      'HOME': 'first',\n      'END': 'last',\n    });\n  }\n\n  /**\n   * Initializes the accordion by animating the preset active pane(s).\n   * @private\n   */\n  _init() {\n    this._isInitializing = true;\n\n    this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n    this.$tabs.each(function(idx, el) {\n      var $el = $(el),\n          $content = $el.children('[data-tab-content]'),\n          id = $content[0].id || GetYoDigits(6, 'accordion'),\n          linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n      $el.find('a:first').attr({\n        'aria-controls': id,\n        'id': linkId,\n        'aria-expanded': false\n      });\n\n      $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n    });\n\n    var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n    if ($initActive.length) {\n      // Save up the initial hash to return to it later when going back in history\n      this._initialAnchor = $initActive.prev('a').attr('href');\n      this._openSingleTab($initActive);\n    }\n\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var $anchor = anchor && $(anchor);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, open it (if not already active)\n        if ($anchor && $link && $link.length) {\n          if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n            this._openSingleTab($anchor);\n          }\n        }\n        // Otherwise, close everything\n        else {\n          this._closeAllTabs();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          onLoad($(window), () => {\n            var offset = this.$element.offset();\n            $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n          });\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Accordion#deeplink\n         */\n        this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the accordion.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$tabs.each(function() {\n      var $elem = $(this);\n      var $tabContent = $elem.children('[data-tab-content]');\n      if ($tabContent.length) {\n        $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n               .on('click.zf.accordion', function(e) {\n          e.preventDefault();\n          _this.toggle($tabContent);\n        }).on('keydown.zf.accordion', function(e) {\n          Keyboard.handleKey(e, 'Accordion', {\n            toggle: function() {\n              _this.toggle($tabContent);\n            },\n            next: function() {\n              var $a = $elem.next().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            previous: function() {\n              var $a = $elem.prev().find('a').focus();\n              if (!_this.options.multiExpand) {\n                $a.trigger('click.zf.accordion')\n              }\n            },\n            first: function() {\n              var $a = _this.$tabs.first().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            last: function() {\n              var $a = _this.$tabs.last().find('.accordion-title').focus();\n              if (!_this.options.multiExpand) {\n                 $a.trigger('click.zf.accordion');\n              }\n            },\n            handled: function() {\n              e.preventDefault();\n            }\n          });\n        });\n      }\n    });\n    if (this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Toggles the selected content pane's open/close state.\n   * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n   * @function\n   */\n  toggle($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]')) {\n      console.info('Cannot toggle an accordion that is disabled.');\n      return;\n    }\n    if ($target.parent().hasClass('is-active')) {\n      this.up($target);\n    } else {\n      this.down($target);\n    }\n    //either replace or update browser history\n    if (this.options.deepLink) {\n      var anchor = $target.prev('a').attr('href');\n\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n  }\n\n  /**\n   * Opens the accordion tab defined by `$target`.\n   * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   */\n  down($target) {\n    if ($target.closest('[data-accordion]').is('[disabled]'))  {\n      console.info('Cannot call down on an accordion that is disabled.');\n      return;\n    }\n\n    if (this.options.multiExpand)\n      this._openTab($target);\n    else\n      this._openSingleTab($target);\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * It may be ignored if the Accordion options don't allow it.\n   *\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   */\n  up($target) {\n    if (this.$element.is('[disabled]')) {\n      console.info('Cannot call up on an accordion that is disabled.');\n      return;\n    }\n\n    // Don't close the item if it is already closed\n    const $targetItem = $target.parent();\n    if (!$targetItem.hasClass('is-active')) return;\n\n    // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n    const $othersItems = $targetItem.siblings();\n    if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n    this._closeTab($target);\n  }\n\n  /**\n   * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @function\n   * @private\n   */\n  _openSingleTab($target) {\n    // Close all the others active tabs.\n    const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeContents.length) {\n      this._closeTab($activeContents.not($target));\n    }\n\n    // Then open the target.\n    this._openTab($target);\n  }\n\n  /**\n   * Opens the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n   * @fires Accordion#down\n   * @function\n   * @private\n   */\n  _openTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', false);\n    $targetItem.addClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n      'aria-expanded': true\n    });\n\n    $target.finish().slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done opening.\n       * @event Accordion#down\n       */\n      this.$element.trigger('down.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes the tab defined by `$target`.\n   * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeTab($target) {\n    const $targetItem = $target.parent();\n    const targetContentId = $target.attr('aria-labelledby');\n\n    $target.attr('aria-hidden', true)\n    $targetItem.removeClass('is-active');\n\n    $(`#${targetContentId}`).attr({\n     'aria-expanded': false\n    });\n\n    $target.finish().slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the tab is done collapsing up.\n       * @event Accordion#up\n       */\n      this.$element.trigger('up.zf.accordion', [$target]);\n    });\n  }\n\n  /**\n   * Closes all active tabs\n   * @fires Accordion#up\n   * @function\n   * @private\n   */\n  _closeAllTabs() {\n    var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n    if ($activeTabs.length) {\n      this._closeTab($activeTabs);\n    }\n  }\n\n  /**\n   * Destroys an instance of an accordion.\n   * @fires Accordion#destroyed\n   * @function\n   */\n  _destroy() {\n    this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n    this.$element.find('a').off('.zf.accordion');\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n  }\n}\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\nexport { Accordion };\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.accordion.min.js","sources":["foundation.accordion.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.accordion\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordion\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.accordion.js\":\n/*!****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.accordion.js ***!\n  \\****************************************************/\n/*! exports provided: Foundation, Accordion */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_accordion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.accordion */ \"./js/foundation.accordion.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Accordion\", function() { return _foundation_accordion__WEBPACK_IMPORTED_MODULE_1__[\"Accordion\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_accordion__WEBPACK_IMPORTED_MODULE_1__[\"Accordion\"], 'Accordion');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.accordion.js\":\n/*!************************************!*\\\n  !*** ./js/foundation.accordion.js ***!\n  \\************************************/\n/*! exports provided: Accordion */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Accordion\", function() { return Accordion; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nvar Accordion = /*#__PURE__*/function (_Plugin) {\n  _inherits(Accordion, _Plugin);\n\n  var _super = _createSuper(Accordion);\n\n  function Accordion() {\n    _classCallCheck(this, Accordion);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Accordion, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of an accordion.\n     * @class\n     * @name Accordion\n     * @fires Accordion#init\n     * @param {jQuery} element - jQuery object to make into an accordion.\n     * @param {Object} options - a plain object with settings to override the default options.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Accordion.defaults, this.$element.data(), options);\n      this.className = 'Accordion'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Accordion', {\n        'ENTER': 'toggle',\n        'SPACE': 'toggle',\n        'ARROW_DOWN': 'next',\n        'ARROW_UP': 'previous',\n        'HOME': 'first',\n        'END': 'last'\n      });\n    }\n    /**\n     * Initializes the accordion by animating the preset active pane(s).\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      this._isInitializing = true;\n      this.$tabs = this.$element.children('[data-accordion-item]');\n      this.$tabs.each(function (idx, el) {\n        var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el),\n            $content = $el.children('[data-tab-content]'),\n            id = $content[0].id || Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'accordion'),\n            linkId = el.id ? \"\".concat(el.id, \"-label\") : \"\".concat(id, \"-label\");\n        $el.find('a:first').attr({\n          'aria-controls': id,\n          'id': linkId,\n          'aria-expanded': false\n        });\n        $content.attr({\n          'role': 'region',\n          'aria-labelledby': linkId,\n          'aria-hidden': true,\n          'id': id\n        });\n      });\n      var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n\n      if ($initActive.length) {\n        // Save up the initial hash to return to it later when going back in history\n        this._initialAnchor = $initActive.prev('a').attr('href');\n\n        this._openSingleTab($initActive);\n      }\n\n      this._checkDeepLink = function () {\n        var anchor = window.location.hash;\n\n        if (!anchor.length) {\n          // If we are still initializing and there is no anchor, then there is nothing to do\n          if (_this2._isInitializing) return; // Otherwise, move to the initial anchor\n\n          if (_this2._initialAnchor) anchor = _this2._initialAnchor;\n        }\n\n        var $anchor = anchor && jquery__WEBPACK_IMPORTED_MODULE_0___default()(anchor);\n\n        var $link = anchor && _this2.$element.find(\"[href$=\\\"\".concat(anchor, \"\\\"]\")); // Whether the anchor element that has been found is part of this element\n\n\n        var isOwnAnchor = !!($anchor.length && $link.length);\n\n        if (isOwnAnchor) {\n          // If there is an anchor for the hash, open it (if not already active)\n          if ($anchor && $link && $link.length) {\n            if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n              _this2._openSingleTab($anchor);\n            }\n          } // Otherwise, close everything\n          else {\n            _this2._closeAllTabs();\n          } // Roll up a little to show the titles\n\n\n          if (_this2.options.deepLinkSmudge) {\n            Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n              var offset = _this2.$element.offset();\n\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n                scrollTop: offset.top - _this2.options.deepLinkSmudgeOffset\n              }, _this2.options.deepLinkSmudgeDelay);\n            });\n          }\n          /**\n           * Fires when the plugin has deeplinked at pageload\n           * @event Accordion#deeplink\n           */\n\n\n          _this2.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n        }\n      }; //use browser to open a tab, if it exists in this tabset\n\n\n      if (this.options.deepLink) {\n        this._checkDeepLink();\n      }\n\n      this._events();\n\n      this._isInitializing = false;\n    }\n    /**\n     * Adds event handlers for items within the accordion.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this.$tabs.each(function () {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        var $tabContent = $elem.children('[data-tab-content]');\n\n        if ($tabContent.length) {\n          $elem.children('a').off('click.zf.accordion keydown.zf.accordion').on('click.zf.accordion', function (e) {\n            e.preventDefault();\n\n            _this.toggle($tabContent);\n          }).on('keydown.zf.accordion', function (e) {\n            _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Accordion', {\n              toggle: function toggle() {\n                _this.toggle($tabContent);\n              },\n              next: function next() {\n                var $a = $elem.next().find('a').focus();\n\n                if (!_this.options.multiExpand) {\n                  $a.trigger('click.zf.accordion');\n                }\n              },\n              previous: function previous() {\n                var $a = $elem.prev().find('a').focus();\n\n                if (!_this.options.multiExpand) {\n                  $a.trigger('click.zf.accordion');\n                }\n              },\n              first: function first() {\n                var $a = _this.$tabs.first().find('.accordion-title').focus();\n\n                if (!_this.options.multiExpand) {\n                  $a.trigger('click.zf.accordion');\n                }\n              },\n              last: function last() {\n                var $a = _this.$tabs.last().find('.accordion-title').focus();\n\n                if (!_this.options.multiExpand) {\n                  $a.trigger('click.zf.accordion');\n                }\n              },\n              handled: function handled() {\n                e.preventDefault();\n              }\n            });\n          });\n        }\n      });\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._checkDeepLink);\n      }\n    }\n    /**\n     * Toggles the selected content pane's open/close state.\n     * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle($target) {\n      if ($target.closest('[data-accordion]').is('[disabled]')) {\n        console.info('Cannot toggle an accordion that is disabled.');\n        return;\n      }\n\n      if ($target.parent().hasClass('is-active')) {\n        this.up($target);\n      } else {\n        this.down($target);\n      } //either replace or update browser history\n\n\n      if (this.options.deepLink) {\n        var anchor = $target.prev('a').attr('href');\n\n        if (this.options.updateHistory) {\n          history.pushState({}, '', anchor);\n        } else {\n          history.replaceState({}, '', anchor);\n        }\n      }\n    }\n    /**\n     * Opens the accordion tab defined by `$target`.\n     * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n     * @fires Accordion#down\n     * @function\n     */\n\n  }, {\n    key: \"down\",\n    value: function down($target) {\n      if ($target.closest('[data-accordion]').is('[disabled]')) {\n        console.info('Cannot call down on an accordion that is disabled.');\n        return;\n      }\n\n      if (this.options.multiExpand) this._openTab($target);else this._openSingleTab($target);\n    }\n    /**\n     * Closes the tab defined by `$target`.\n     * It may be ignored if the Accordion options don't allow it.\n     *\n     * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n     * @fires Accordion#up\n     * @function\n     */\n\n  }, {\n    key: \"up\",\n    value: function up($target) {\n      if (this.$element.is('[disabled]')) {\n        console.info('Cannot call up on an accordion that is disabled.');\n        return;\n      } // Don't close the item if it is already closed\n\n\n      var $targetItem = $target.parent();\n      if (!$targetItem.hasClass('is-active')) return; // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n\n      var $othersItems = $targetItem.siblings();\n      if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n      this._closeTab($target);\n    }\n    /**\n     * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n     * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_openSingleTab\",\n    value: function _openSingleTab($target) {\n      // Close all the others active tabs.\n      var $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n\n      if ($activeContents.length) {\n        this._closeTab($activeContents.not($target));\n      } // Then open the target.\n\n\n      this._openTab($target);\n    }\n    /**\n     * Opens the tab defined by `$target`.\n     * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n     * @fires Accordion#down\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_openTab\",\n    value: function _openTab($target) {\n      var _this3 = this;\n\n      var $targetItem = $target.parent();\n      var targetContentId = $target.attr('aria-labelledby');\n      $target.attr('aria-hidden', false);\n      $targetItem.addClass('is-active');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(targetContentId)).attr({\n        'aria-expanded': true\n      });\n      $target.finish().slideDown(this.options.slideSpeed, function () {\n        /**\n         * Fires when the tab is done opening.\n         * @event Accordion#down\n         */\n        _this3.$element.trigger('down.zf.accordion', [$target]);\n      });\n    }\n    /**\n     * Closes the tab defined by `$target`.\n     * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n     * @fires Accordion#up\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_closeTab\",\n    value: function _closeTab($target) {\n      var _this4 = this;\n\n      var $targetItem = $target.parent();\n      var targetContentId = $target.attr('aria-labelledby');\n      $target.attr('aria-hidden', true);\n      $targetItem.removeClass('is-active');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(targetContentId)).attr({\n        'aria-expanded': false\n      });\n      $target.finish().slideUp(this.options.slideSpeed, function () {\n        /**\n         * Fires when the tab is done collapsing up.\n         * @event Accordion#up\n         */\n        _this4.$element.trigger('up.zf.accordion', [$target]);\n      });\n    }\n    /**\n     * Closes all active tabs\n     * @fires Accordion#up\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_closeAllTabs\",\n    value: function _closeAllTabs() {\n      var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n\n      if ($activeTabs.length) {\n        this._closeTab($activeTabs);\n      }\n    }\n    /**\n     * Destroys an instance of an accordion.\n     * @fires Accordion#destroyed\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n      this.$element.find('a').off('.zf.accordion');\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._checkDeepLink);\n      }\n    }\n  }]);\n\n  return Accordion;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nAccordion.defaults = {\n  /**\n   * Amount of time to animate the opening of an accordion pane.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n\n  /**\n   * Allow the accordion to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multiExpand: false,\n\n  /**\n   * Allow the accordion to close all panes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowAllClosed: false,\n\n  /**\n   * Link the location hash to the open pane.\n   * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open accordion\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false\n};\n\n\n/***/ }),\n\n/***/ 1:\n/*!**********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.accordion.js ***!\n  \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.accordion.js */\"./js/entries/plugins/foundation.accordion.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.accordion.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.keyboard","./js/entries/plugins/foundation.accordion.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_accordion__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.accordion.js","Accordion","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","register","ENTER","SPACE","ARROW_DOWN","ARROW_UP","HOME","END","_this2","_isInitializing","$tabs","children","each","idx","el","$el","$content","id","linkId","concat","find","attr","aria-controls","aria-expanded","role","aria-labelledby","aria-hidden","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","location","hash","$anchor","$link","parent","hasClass","_closeAllTabs","deepLinkSmudge","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","trigger","deepLink","_events","_this","$elem","$tabContent","off","on","preventDefault","toggle","handleKey","next","$a","focus","multiExpand","previous","first","last","handled","$target","closest","is","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$othersItems","$targetItem","siblings","allowAllClosed","_closeTab","$activeContents","not","_this3","targetContentId","addClass","finish","slideDown","slideSpeed","_this4","removeClass","slideUp","$activeTabs","stop","css","1","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index ce8caf031a4ecbd00f8e8fa2f3e7187edf5fbacd..6fde35b8675aa581c25a3881b70afa3c26f80de5 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.accordionMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.accordionMenu.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","AccordionMenu","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Nest","Feather","_this","find","not","slideUp","attr","aria-multiselectable","multiOpen","$menuLinks","each","linkId","id","GetYoDigits","$elem","$sub","children","subId","isActive","hasClass","parentLink","clone","prependTo","wrap","submenuToggle","addClass","after","submenuToggleText","aria-controls","aria-expanded","aria-labelledby","aria-hidden","role","initPanes","length","down","_events","$submenu","off","on","toggle","e","preventDefault","$prevElement","$nextElement","$elements","parent","$target","i","is","eq","Math","max","first","min","parents","next","handleKey","open","focus","close","up","closeAll","hideAll","handled","$othersActiveSubmenus","_this2","$targetBranch","parentsUntil","add","prev","slideDown","slideSpeed","trigger","_this3","$submenus","$allmenus","removeClass","css","detach","remove","Burn","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.accordionMenu.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.accordionMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordionMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { AccordionMenu } from '../../foundation.accordionMenu';\nFoundation.plugin(AccordionMenu, 'AccordionMenu');\n\nexport { Foundation, AccordionMenu };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n  /**\n   * Creates a new instance of an accordion menu.\n   * @class\n   * @name AccordionMenu\n   * @fires AccordionMenu#init\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n    this.className = 'AccordionMenu'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('AccordionMenu', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ARROW_RIGHT': 'open',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'close',\n      'ESCAPE': 'closeAll'\n    });\n  }\n\n\n\n  /**\n   * Initializes the accordion menu by hiding all nested menus.\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'accordion');\n\n    var _this = this;\n\n    this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n    this.$element.attr({\n      'aria-multiselectable': this.options.multiOpen\n    });\n\n    this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n    this.$menuLinks.each(function() {\n      var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n          $elem = $(this),\n          $sub = $elem.children('[data-submenu]'),\n          subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n          isActive = $sub.hasClass('is-active');\n\n      if (_this.options.parentLink) {\n        let $anchor = $elem.children('a');\n        $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n      }\n\n      if (_this.options.submenuToggle) {\n        $elem.addClass('has-submenu-toggle');\n        $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n      } else {\n        $elem.attr({\n          'aria-controls': subId,\n          'aria-expanded': isActive,\n          'id': linkId\n        });\n      }\n      $sub.attr({\n        'aria-labelledby': linkId,\n        'aria-hidden': !isActive,\n        'role': 'group',\n        'id': subId\n      });\n    });\n    var initPanes = this.$element.find('.is-active');\n    if (initPanes.length) {\n      initPanes.each(function() {\n        _this.down($(this));\n      });\n    }\n    this._events();\n  }\n\n  /**\n   * Adds event handlers for items within the menu.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.find('li').each(function() {\n      var $submenu = $(this).children('[data-submenu]');\n\n      if ($submenu.length) {\n        if (_this.options.submenuToggle) {\n          $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n            _this.toggle($submenu);\n          });\n        } else {\n            $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n              e.preventDefault();\n              _this.toggle($submenu);\n            });\n        }\n      }\n    }).on('keydown.zf.accordionMenu', function(e) {\n      var $element = $(this),\n          $elements = $element.parent('ul').children('li'),\n          $prevElement,\n          $nextElement,\n          $target = $element.children('[data-submenu]');\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n          if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n            $nextElement = $element.find('li:first-child').find('a').first();\n          }\n          if ($(this).is(':first-child')) { // is first element of sub menu\n            $prevElement = $element.parents('li').first().find('a').first();\n          } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n            $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n          }\n          if ($(this).is(':last-child')) { // is last element of sub menu\n            $nextElement = $element.parents('li').first().next('li').find('a').first();\n          }\n\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'AccordionMenu', {\n        open: function() {\n          if ($target.is(':hidden')) {\n            _this.down($target);\n            $target.find('li').first().find('a').first().focus();\n          }\n        },\n        close: function() {\n          if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n            _this.up($target);\n          } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n            _this.up($element.parent('[data-submenu]'));\n            $element.parents('li').first().find('a').first().focus();\n          }\n        },\n        up: function() {\n          $prevElement.focus();\n          return true;\n        },\n        down: function() {\n          $nextElement.focus();\n          return true;\n        },\n        toggle: function() {\n          if (_this.options.submenuToggle) {\n            return false;\n          }\n          if ($element.children('[data-submenu]').length) {\n            _this.toggle($element.children('[data-submenu]'));\n            return true;\n          }\n        },\n        closeAll: function() {\n          _this.hideAll();\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    });//.attr('tabindex', 0);\n  }\n\n  /**\n   * Closes all panes of the menu.\n   * @function\n   */\n  hideAll() {\n    this.up(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Opens all panes of the menu.\n   * @function\n   */\n  showAll() {\n    this.down(this.$element.find('[data-submenu]'));\n  }\n\n  /**\n   * Toggles the open/close state of a submenu.\n   * @function\n   * @param {jQuery} $target - the submenu to toggle\n   */\n  toggle($target) {\n    if (!$target.is(':animated')) {\n      if (!$target.is(':hidden')) {\n        this.up($target);\n      }\n      else {\n        this.down($target);\n      }\n    }\n  }\n\n  /**\n   * Opens the sub-menu defined by `$target`.\n   * @param {jQuery} $target - Sub-menu to open.\n   * @fires AccordionMenu#down\n   */\n  down($target) {\n    // If having multiple submenus active is disabled, close all the submenus\n    // that are not parents or children of the targeted submenu.\n    if (!this.options.multiOpen) {\n      // The \"branch\" of the targetted submenu, from the component root to\n      // the active submenus nested in it.\n      const $targetBranch = $target.parentsUntil(this.$element)\n        .add($target)\n        .add($target.find('.is-active'));\n      // All the active submenus that are not in the branch.\n      const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n      this.up($othersActiveSubmenus);\n    }\n\n    $target\n      .addClass('is-active')\n      .attr({ 'aria-hidden': false });\n\n    if (this.options.submenuToggle) {\n      $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n    }\n    else {\n      $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n    }\n\n    $target.slideDown(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done opening.\n       * @event AccordionMenu#down\n       */\n      this.$element.trigger('down.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n   * @param {jQuery} $target - Sub-menu to close.\n   * @fires AccordionMenu#up\n   */\n  up($target) {\n    const $submenus = $target.find('[data-submenu]');\n    const $allmenus = $target.add($submenus);\n\n    $submenus.slideUp(0);\n    $allmenus\n      .removeClass('is-active')\n      .attr('aria-hidden', true);\n\n    if (this.options.submenuToggle) {\n      $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n    }\n    else {\n      $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n    }\n\n    $target.slideUp(this.options.slideSpeed, () => {\n      /**\n       * Fires when the menu is done collapsing up.\n       * @event AccordionMenu#up\n       */\n      this.$element.trigger('up.zf.accordionMenu', [$target]);\n    });\n  }\n\n  /**\n   * Destroys an instance of accordion menu.\n   * @fires AccordionMenu#destroyed\n   */\n  _destroy() {\n    this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n    this.$element.find('a').off('click.zf.accordionMenu');\n    this.$element.find('[data-is-parent-link]').detach();\n\n    if (this.options.submenuToggle) {\n      this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n      this.$element.find('.submenu-toggle').remove();\n    }\n\n    Nest.Burn(this.$element, 'accordion');\n  }\n}\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\nexport { AccordionMenu };\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.accordionMenu.min.js","sources":["foundation.accordionMenu.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.accordionMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordionMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.nest\":\n/*!************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"} ***!\n  \\************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.accordionMenu.js\":\n/*!********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.accordionMenu.js ***!\n  \\********************************************************/\n/*! exports provided: Foundation, AccordionMenu */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.accordionMenu */ \"./js/foundation.accordionMenu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AccordionMenu\", function() { return _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_1__[\"AccordionMenu\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_1__[\"AccordionMenu\"], 'AccordionMenu');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.accordionMenu.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.accordionMenu.js ***!\n  \\****************************************/\n/*! exports provided: AccordionMenu */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AccordionMenu\", function() { return AccordionMenu; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.nest */ \"./foundation.util.nest\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nvar AccordionMenu = /*#__PURE__*/function (_Plugin) {\n  _inherits(AccordionMenu, _Plugin);\n\n  var _super = _createSuper(AccordionMenu);\n\n  function AccordionMenu() {\n    _classCallCheck(this, AccordionMenu);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(AccordionMenu, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of an accordion menu.\n     * @class\n     * @name AccordionMenu\n     * @fires AccordionMenu#init\n     * @param {jQuery} element - jQuery object to make into an accordion menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n      this.className = 'AccordionMenu'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('AccordionMenu', {\n        'ENTER': 'toggle',\n        'SPACE': 'toggle',\n        'ARROW_RIGHT': 'open',\n        'ARROW_UP': 'up',\n        'ARROW_DOWN': 'down',\n        'ARROW_LEFT': 'close',\n        'ESCAPE': 'closeAll'\n      });\n    }\n    /**\n     * Initializes the accordion menu by hiding all nested menus.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Feather(this.$element, 'accordion');\n\n      var _this = this;\n\n      this.$element.find('[data-submenu]').not('.is-active').slideUp(0); //.find('a').css('padding-left', '1rem');\n\n      this.$element.attr({\n        'aria-multiselectable': this.options.multiOpen\n      });\n      this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n      this.$menuLinks.each(function () {\n        var linkId = this.id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'acc-menu-link'),\n            $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $sub = $elem.children('[data-submenu]'),\n            subId = $sub[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'acc-menu'),\n            isActive = $sub.hasClass('is-active');\n\n        if (_this.options.parentLink) {\n          var $anchor = $elem.children('a');\n          $anchor.clone().prependTo($sub).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-accordion-submenu-item\"></li>');\n        }\n\n        if (_this.options.submenuToggle) {\n          $elem.addClass('has-submenu-toggle');\n          $elem.children('a').after('<button id=\"' + linkId + '\" class=\"submenu-toggle\" aria-controls=\"' + subId + '\" aria-expanded=\"' + isActive + '\" title=\"' + _this.options.submenuToggleText + '\"><span class=\"submenu-toggle-text\">' + _this.options.submenuToggleText + '</span></button>');\n        } else {\n          $elem.attr({\n            'aria-controls': subId,\n            'aria-expanded': isActive,\n            'id': linkId\n          });\n        }\n\n        $sub.attr({\n          'aria-labelledby': linkId,\n          'aria-hidden': !isActive,\n          'role': 'group',\n          'id': subId\n        });\n      });\n      var initPanes = this.$element.find('.is-active');\n\n      if (initPanes.length) {\n        initPanes.each(function () {\n          _this.down(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n        });\n      }\n\n      this._events();\n    }\n    /**\n     * Adds event handlers for items within the menu.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this.$element.find('li').each(function () {\n        var $submenu = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('[data-submenu]');\n\n        if ($submenu.length) {\n          if (_this.options.submenuToggle) {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function () {\n              _this.toggle($submenu);\n            });\n          } else {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function (e) {\n              e.preventDefault();\n\n              _this.toggle($submenu);\n            });\n          }\n        }\n      }).on('keydown.zf.accordionMenu', function (e) {\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $elements = $element.parent('ul').children('li'),\n            $prevElement,\n            $nextElement,\n            $target = $element.children('[data-submenu]');\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            $prevElement = $elements.eq(Math.max(0, i - 1)).find('a').first();\n            $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1)).find('a').first();\n\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('[data-submenu]:visible').length) {\n              // has open sub menu\n              $nextElement = $element.find('li:first-child').find('a').first();\n            }\n\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':first-child')) {\n              // is first element of sub menu\n              $prevElement = $element.parents('li').first().find('a').first();\n            } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) {\n              // if previous element has open sub menu\n              $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n            }\n\n            if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':last-child')) {\n              // is last element of sub menu\n              $nextElement = $element.parents('li').first().next('li').find('a').first();\n            }\n\n            return;\n          }\n        });\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'AccordionMenu', {\n          open: function open() {\n            if ($target.is(':hidden')) {\n              _this.down($target);\n\n              $target.find('li').first().find('a').first().focus();\n            }\n          },\n          close: function close() {\n            if ($target.length && !$target.is(':hidden')) {\n              // close active sub of this item\n              _this.up($target);\n            } else if ($element.parent('[data-submenu]').length) {\n              // close currently open sub\n              _this.up($element.parent('[data-submenu]'));\n\n              $element.parents('li').first().find('a').first().focus();\n            }\n          },\n          up: function up() {\n            $prevElement.focus();\n            return true;\n          },\n          down: function down() {\n            $nextElement.focus();\n            return true;\n          },\n          toggle: function toggle() {\n            if (_this.options.submenuToggle) {\n              return false;\n            }\n\n            if ($element.children('[data-submenu]').length) {\n              _this.toggle($element.children('[data-submenu]'));\n\n              return true;\n            }\n          },\n          closeAll: function closeAll() {\n            _this.hideAll();\n          },\n          handled: function handled(preventDefault) {\n            if (preventDefault) {\n              e.preventDefault();\n            }\n          }\n        });\n      }); //.attr('tabindex', 0);\n    }\n    /**\n     * Closes all panes of the menu.\n     * @function\n     */\n\n  }, {\n    key: \"hideAll\",\n    value: function hideAll() {\n      this.up(this.$element.find('[data-submenu]'));\n    }\n    /**\n     * Opens all panes of the menu.\n     * @function\n     */\n\n  }, {\n    key: \"showAll\",\n    value: function showAll() {\n      this.down(this.$element.find('[data-submenu]'));\n    }\n    /**\n     * Toggles the open/close state of a submenu.\n     * @function\n     * @param {jQuery} $target - the submenu to toggle\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle($target) {\n      if (!$target.is(':animated')) {\n        if (!$target.is(':hidden')) {\n          this.up($target);\n        } else {\n          this.down($target);\n        }\n      }\n    }\n    /**\n     * Opens the sub-menu defined by `$target`.\n     * @param {jQuery} $target - Sub-menu to open.\n     * @fires AccordionMenu#down\n     */\n\n  }, {\n    key: \"down\",\n    value: function down($target) {\n      var _this2 = this;\n\n      // If having multiple submenus active is disabled, close all the submenus\n      // that are not parents or children of the targeted submenu.\n      if (!this.options.multiOpen) {\n        // The \"branch\" of the targetted submenu, from the component root to\n        // the active submenus nested in it.\n        var $targetBranch = $target.parentsUntil(this.$element).add($target).add($target.find('.is-active')); // All the active submenus that are not in the branch.\n\n        var $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n        this.up($othersActiveSubmenus);\n      }\n\n      $target.addClass('is-active').attr({\n        'aria-hidden': false\n      });\n\n      if (this.options.submenuToggle) {\n        $target.prev('.submenu-toggle').attr({\n          'aria-expanded': true\n        });\n      } else {\n        $target.parent('.is-accordion-submenu-parent').attr({\n          'aria-expanded': true\n        });\n      }\n\n      $target.slideDown(this.options.slideSpeed, function () {\n        /**\n         * Fires when the menu is done opening.\n         * @event AccordionMenu#down\n         */\n        _this2.$element.trigger('down.zf.accordionMenu', [$target]);\n      });\n    }\n    /**\n     * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n     * @param {jQuery} $target - Sub-menu to close.\n     * @fires AccordionMenu#up\n     */\n\n  }, {\n    key: \"up\",\n    value: function up($target) {\n      var _this3 = this;\n\n      var $submenus = $target.find('[data-submenu]');\n      var $allmenus = $target.add($submenus);\n      $submenus.slideUp(0);\n      $allmenus.removeClass('is-active').attr('aria-hidden', true);\n\n      if (this.options.submenuToggle) {\n        $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n      } else {\n        $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n      }\n\n      $target.slideUp(this.options.slideSpeed, function () {\n        /**\n         * Fires when the menu is done collapsing up.\n         * @event AccordionMenu#up\n         */\n        _this3.$element.trigger('up.zf.accordionMenu', [$target]);\n      });\n    }\n    /**\n     * Destroys an instance of accordion menu.\n     * @fires AccordionMenu#destroyed\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n      this.$element.find('a').off('click.zf.accordionMenu');\n      this.$element.find('[data-is-parent-link]').detach();\n\n      if (this.options.submenuToggle) {\n        this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n        this.$element.find('.submenu-toggle').remove();\n      }\n\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Burn(this.$element, 'accordion');\n    }\n  }]);\n\n  return AccordionMenu;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n\nAccordionMenu.defaults = {\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n\n  /**\n   * Amount of time to animate the opening of a submenu in ms.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  slideSpeed: 250,\n\n  /**\n   * Adds a separate submenu toggle button. This allows the parent item to have a link.\n   * @option\n   * @example true\n   */\n  submenuToggle: false,\n\n  /**\n   * The text used for the submenu toggle if enabled. This is used for screen readers only.\n   * @option\n   * @example true\n   */\n  submenuToggleText: 'Toggle menu',\n\n  /**\n   * Allow the menu to have multiple open panes.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  multiOpen: true\n};\n\n\n/***/ }),\n\n/***/ 2:\n/*!**************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.accordionMenu.js ***!\n  \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.accordionMenu.js */\"./js/entries/plugins/foundation.accordionMenu.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.accordionMenu.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.keyboard","./foundation.util.nest","./js/entries/plugins/foundation.accordionMenu.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.accordionMenu.js","AccordionMenu","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Feather","_this","find","not","slideUp","attr","aria-multiselectable","multiOpen","$menuLinks","each","linkId","id","$elem","$sub","children","subId","isActive","hasClass","parentLink","clone","prependTo","wrap","submenuToggle","addClass","after","submenuToggleText","aria-controls","aria-expanded","aria-labelledby","aria-hidden","role","initPanes","down","_events","$submenu","off","on","toggle","preventDefault","$prevElement","$nextElement","$elements","parent","$target","is","eq","Math","max","first","min","parents","next","handleKey","open","focus","close","up","closeAll","hideAll","handled","$othersActiveSubmenus","_this2","$targetBranch","parentsUntil","add","prev","slideDown","slideSpeed","trigger","_this3","$submenus","$allmenus","removeClass","css","detach","remove","Burn","2","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 9a9b5d9c5cc36c9b3c18a84e8285921584eee25b..055525acb338e33de254097820ae6be3af33d403 100644 (file)
@@ -174,7 +174,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
 
 
 
-var FOUNDATION_VERSION = '6.7.4'; // Global Foundation object
+var FOUNDATION_VERSION = '6.7.5'; // Global Foundation object
 // This is attached to the window, or used as a module for AMD/Browserify
 
 var Foundation = {
index d426b7c54bcf9faa35dccf449ff30eef43b95d9f..3630ecfcc9edcd0ff77297b7f76c7e848bba589f 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","window","FOUNDATION_VERSION","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","data","trigger","push","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_init","type","_this","fns","plgs","forEach","p","foundation","object","Object","keys","err","console","error","reflow","elem","i","$elem","find","addBack","filter","$el","opts","split","option","opt","map","el","trim","parseValue","er","getFnName","method","$noJS","length","removeClass","MediaQuery","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","element","options","_setup","getPluginName","_destroy","hasOwnProperty","obj","namespace","chars","charsLength","floor","random","transitions","document","createElement","end","transition","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","script","getElementsByTagName","info","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","on","newSize","currentSize","styleObject","reduce","ret","param","val","decodeURIComponent","isArray"],"mappings":"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","file":"foundation.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.4';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","window","FOUNDATION_VERSION","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","data","trigger","push","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","each","_init","type","_this","fns","plgs","forEach","p","foundation","object","Object","keys","err","console","error","reflow","elem","i","$elem","find","addBack","filter","$el","opts","split","option","opt","map","el","trim","parseValue","er","getFnName","method","$noJS","length","removeClass","MediaQuery","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","element","options","_setup","getPluginName","_destroy","hasOwnProperty","obj","namespace","chars","charsLength","floor","random","transitions","document","createElement","end","transition","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","script","getElementsByTagName","info","id","head","appendChild","parentNode","insertBefore","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","self","$meta","appendTo","extractedStyles","css","namedQueries","parseStyleToObject","key","value","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","next","is","parts","bpSize","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","on","newSize","currentSize","styleObject","reduce","ret","param","val","decodeURIComponent","isArray"],"mappings":"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","file":"foundation.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      if(typeof plugin[prop] === 'function'){\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this.object(Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      if (this.hasOwnProperty(prop)) {\n        this[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).on('resize.zf.trigger', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
index af28c0bf8f4fe0c30793bb4a0dd08acebf51ba36..0a0d5b761b69d88d66b9dc7b83d88fc5b7099e55 100644 (file)
@@ -1,2 +1,2 @@
-!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof exports?exports["foundation.core"]=n(require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.core"]=n(t.jQuery))}(window,function(e){return r={"./js/entries/plugins/foundation.core.js":function(t,n,e){"use strict";e.r(n);var r=e("jquery"),r=e.n(r),i=e("./js/foundation.core.js");e.d(n,"Foundation",function(){return i.Foundation});var o=e("./js/foundation.core.plugin.js"),a=e("./js/foundation.core.utils.js");e.d(n,"Plugin",function(){return o.Plugin}),e.d(n,"rtl",function(){return a.rtl}),e.d(n,"GetYoDigits",function(){return a.GetYoDigits}),e.d(n,"RegExpEscape",function(){return a.RegExpEscape}),e.d(n,"transitionend",function(){return a.transitionend}),e.d(n,"onLoad",function(){return a.onLoad}),e.d(n,"ignoreMousedisappear",function(){return a.ignoreMousedisappear}),i.Foundation.addToJquery(r.a),i.Foundation.Plugin=o.Plugin,i.Foundation.rtl=a.rtl,i.Foundation.GetYoDigits=a.GetYoDigits,i.Foundation.transitionend=a.transitionend,i.Foundation.RegExpEscape=a.RegExpEscape,i.Foundation.onLoad=a.onLoad,window.Foundation=i.Foundation},"./js/foundation.core.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Foundation",function(){return s});var n=e("jquery"),o=e.n(n),r=e("./js/foundation.core.utils.js"),a=e("./js/foundation.util.mediaQuery.js");function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s={version:"6.7.4",_plugins:{},_uuids:[],plugin:function(t,n){var e=n||c(t),n=i(e);this._plugins[n]=this[e]=t},registerPlugin:function(t,n){n=n?i(n):c(t.constructor).toLowerCase();t.uuid=Object(r.GetYoDigits)(6,n),t.$element.attr("data-".concat(n))||t.$element.attr("data-".concat(n),t.uuid),t.$element.data("zfPlugin")||t.$element.data("zfPlugin",t),t.$element.trigger("init.zf.".concat(n)),this._uuids.push(t.uuid)},unregisterPlugin:function(t){var n,e=i(c(t.$element.data("zfPlugin").constructor));for(n in this._uuids.splice(this._uuids.indexOf(t.uuid),1),t.$element.removeAttr("data-".concat(e)).removeData("zfPlugin").trigger("destroyed.zf.".concat(e)),t)"function"==typeof t[n]&&(t[n]=null)},reInit:function(t){var n,e,r=t instanceof o.a;try{r?t.each(function(){o()(this).data("zfPlugin")._init()}):(n=u(t),e=this,{object:function(t){t.forEach(function(t){t=i(t),o()("[data-"+t+"]").foundation("_init")})},string:function(){t=i(t),o()("[data-"+t+"]").foundation("_init")},undefined:function(){this.object(Object.keys(e._plugins))}}[n](t))}catch(t){console.error(t)}finally{return t}},reflow:function(r,t){void 0===t?t=Object.keys(this._plugins):"string"==typeof t&&(t=[t]);var i=this;o.a.each(t,function(t,n){var e=i._plugins[n];o()(r).find("[data-"+n+"]").addBack("[data-"+n+"]").filter(function(){return void 0===o()(this).data("zfPlugin")}).each(function(){var t=o()(this),n={reflow:!0};t.attr("data-options")&&t.attr("data-options").split(";").forEach(function(t){t=t.split(":").map(function(t){return t.trim()});t[0]&&(n[t[0]]=function(t){{if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(+t))return parseFloat(t)}return t}(t[1]))});try{t.data("zfPlugin",new e(o()(this),n))}catch(t){console.error(t)}finally{return}})})},getFnName:c,addToJquery:function(){return o.a.fn.foundation=function(e){var t=u(e),n=o()(".no-js");if(n.length&&n.removeClass("no-js"),"undefined"===t)a.MediaQuery._init(),s.reflow(this);else{if("string"!==t)throw new TypeError("We're sorry, ".concat(t," is not a valid parameter. You must use a string representing the method you wish to invoke."));var r=Array.prototype.slice.call(arguments,1),i=this.data("zfPlugin");if(void 0===i||void 0===i[e])throw new ReferenceError("We're sorry, '"+e+"' is not an available method for "+(i?c(i):"this element")+".");1===this.length?i[e].apply(i,r):this.each(function(t,n){i[e].apply(o()(n).data("zfPlugin"),r)})}return this},o.a}};function c(t){if(void 0!==Function.prototype.name)return(void 0===t.prototype?t:t.prototype).constructor.name;t=/function\s([^(]{1,})\(/.exec(t.toString());return t&&1<t.length?t[1].trim():""}function i(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}s.util={throttle:function(e,r){var i=null;return function(){var t=this,n=arguments;null===i&&(i=setTimeout(function(){e.apply(t,n),i=null},r))}}},window.Foundation=s,function(){Date.now&&window.Date.now||(window.Date.now=Date.now=function(){return(new Date).getTime()});for(var r,t=["webkit","moz"],n=0;n<t.length&&!window.requestAnimationFrame;++n){var e=t[n];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}!/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)&&window.requestAnimationFrame&&window.cancelAnimationFrame||(r=0,window.requestAnimationFrame=function(t){var n=Date.now(),e=Math.max(r+16,n);return setTimeout(function(){t(r=e)},e-n)},window.cancelAnimationFrame=clearTimeout),window.performance&&window.performance.now||(window.performance={start:Date.now(),now:function(){return Date.now()-this.start}})}(),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function n(){return r.apply(this instanceof i?this:t,e.concat(Array.prototype.slice.call(arguments)))}var e=Array.prototype.slice.call(arguments,1),r=this,i=function(){};return this.prototype&&(i.prototype=this.prototype),n.prototype=new i,n})},"./js/foundation.core.plugin.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Plugin",function(){return r});var i=e("./js/foundation.core.utils.js");function o(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var r=function(){function e(t,n){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this._setup(t,n);n=a(this);this.uuid=Object(i.GetYoDigits)(6,n),this.$element.attr("data-".concat(n))||this.$element.attr("data-".concat(n),this.uuid),this.$element.data("zfPlugin")||this.$element.data("zfPlugin",this),this.$element.trigger("init.zf.".concat(n))}var t,n,r;return t=e,(n=[{key:"destroy",value:function(){this._destroy();var t,n=a(this);for(t in this.$element.removeAttr("data-".concat(n)).removeData("zfPlugin").trigger("destroyed.zf.".concat(n)),this)this.hasOwnProperty(t)&&(this[t]=null)}}])&&o(t.prototype,n),r&&o(t,r),e}();function a(t){return t.className.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}},"./js/foundation.core.utils.js":function(t,n,e){"use strict";e.r(n),e.d(n,"rtl",function(){return r}),e.d(n,"GetYoDigits",function(){return i}),e.d(n,"RegExpEscape",function(){return o}),e.d(n,"transitionend",function(){return a}),e.d(n,"onLoad",function(){return u}),e.d(n,"ignoreMousedisappear",function(){return c});var n=e("jquery"),s=e.n(n);function r(){return"rtl"===s()("html").attr("dir")}function i(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,n=1<arguments.length?arguments[1]:void 0,e="",r="0123456789abcdefghijklmnopqrstuvwxyz",i=r.length,o=0;o<t;o++)e+=r[Math.floor(Math.random()*i)];return n?"".concat(e,"-").concat(n):e}function o(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function a(t){var n,e,r={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},i=document.createElement("div");for(e in r)void 0!==i.style[e]&&(n=r[e]);return n||(setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}function u(t,n){function e(){return t.triggerHandler(i)}var r="complete"===document.readyState,i=(r?"_didLoad":"load")+".zf.util.onLoad";return t&&(n&&t.one(i,n),r?setTimeout(e):s()(window).one("load",e)),i}function c(o){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.ignoreLeaveWindow,a=void 0!==n&&n,t=t.ignoreReappear,u=void 0!==t&&t;return function(n){for(var t=arguments.length,e=new Array(1<t?t-1:0),r=1;r<t;r++)e[r-1]=arguments[r];var i=o.bind.apply(o,[this,n].concat(e));if(null!==n.relatedTarget)return i();setTimeout(function(){return a||!document.hasFocus||document.hasFocus()?void(u||s()(document).one("mouseenter",function(t){s()(n.currentTarget).has(t.target).length||(n.relatedTarget=t.target,i())})):i()},0)}}},"./js/foundation.util.mediaQuery.js":function(t,n,e){"use strict";e.r(n),e.d(n,"MediaQuery",function(){return d});var r,i,o,n=e("jquery"),a=e.n(n);function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,i,o=[],a=!0,u=!1;try{for(e=e.call(t);!(a=(r=e.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(t){u=!0,i=t}finally{try{a||null==e.return||e.return()}finally{if(u)throw i}}return o}}(t,n)||function(t,n){if(t){if("string"==typeof t)return c(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(e="Object"===e&&t.constructor?t.constructor.name:e)||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?c(t,n):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}window.matchMedia||(window.matchMedia=((o=window.styleMedia||window.media)||(r=document.createElement("style"),n=document.getElementsByTagName("script")[0],i=null,r.type="text/css",r.id="matchmediajs-test",n?n.parentNode.insertBefore(r,n):document.head.appendChild(r),i="getComputedStyle"in window&&window.getComputedStyle(r,null)||r.currentStyle,o={matchMedium:function(t){t="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return r.styleSheet?r.styleSheet.cssText=t:r.textContent=t,"1px"===i.width}}),function(t){return{matches:o.matchMedium(t||"all"),media:t||"all"}}));var d={queries:[],current:"",_init:function(){if(!0===this.isInitialized)return this;this.isInitialized=!0;a()("meta.foundation-mq").length||a()('<meta class="foundation-mq" name="foundation-mq" content>').appendTo(document.head);var t,n,e,r=a()(".foundation-mq").css("font-family");for(e in n={},t="string"==typeof(r=r)&&(r=r.trim().slice(1,-1))?n=r.split("&").reduce(function(t,n){var e=n.replace(/\+/g," ").split("="),n=e[0],e=e[1],n=decodeURIComponent(n),e=void 0===e?null:decodeURIComponent(e);return t.hasOwnProperty(n)?Array.isArray(t[n])?t[n].push(e):t[n]=[t[n],e]:t[n]=e,t},{}):n,this.queries=[],t)t.hasOwnProperty(e)&&this.queries.push({name:e,value:"only screen and (min-width: ".concat(t[e],")")});this.current=this._getCurrentSize(),this._watcher()},_reInit:function(){this.isInitialized=!1,this._init()},atLeast:function(t){t=this.get(t);return!!t&&window.matchMedia(t).matches},only:function(t){return t===this._getCurrentSize()},upTo:function(t){t=this.next(t);return!t||!this.atLeast(t)},is:function(t){var n=s(t.trim().split(" ").filter(function(t){return!!t.length}),2),e=n[0],n=n[1],n=void 0===n?"":n;if("only"===n)return this.only(e);if(!n||"up"===n)return this.atLeast(e);if("down"===n)return this.upTo(e);throw new Error('\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like "<size> <modifier>", got "'.concat(t,'".\n    '))},get:function(t){for(var n in this.queries)if(this.queries.hasOwnProperty(n)){n=this.queries[n];if(t===n.name)return n.value}return null},next:function(n){var e=this,t=this.queries.findIndex(function(t){return e._getQueryName(t)===n});if(-1===t)throw new Error('\n        Unknown breakpoint "'.concat(n,'" passed to MediaQuery.next().\n        Ensure it is present in your Sass "$breakpoints" setting.\n      '));t=this.queries[t+1];return t?t.name:null},_getQueryName:function(t){if("string"==typeof t)return t;if("object"===u(t))return t.name;throw new TypeError('\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got "'.concat(t,'" (').concat(u(t),")\n    "))},_getCurrentSize:function(){for(var t,n=0;n<this.queries.length;n++){var e=this.queries[n];window.matchMedia(e.value).matches&&(t=e)}return t&&this._getQueryName(t)},_watcher:function(){var e=this;a()(window).on("resize.zf.trigger",function(){var t=e._getCurrentSize(),n=e.current;t!==n&&(e.current=t,a()(window).trigger("changed.zf.mediaquery",[t,n]))})}}},0:function(t,n,e){t.exports=e("./js/entries/plugins/foundation.core.js")},jquery:function(t,n){t.exports=e}},o={},i.m=r,i.c=o,i.d=function(t,n,e){i.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(i.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)i.d(e,r,function(t){return n[t]}.bind(null,r));return e},i.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(n,"a",n),n},i.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},i.p="",i(i.s=0);function i(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{}};return r[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}var r,o});
+!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof exports?exports["foundation.core"]=n(require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.core"]=n(t.jQuery))}(window,function(e){return r={"./js/entries/plugins/foundation.core.js":function(t,n,e){"use strict";e.r(n);var r=e("jquery"),r=e.n(r),i=e("./js/foundation.core.js");e.d(n,"Foundation",function(){return i.Foundation});var o=e("./js/foundation.core.plugin.js"),a=e("./js/foundation.core.utils.js");e.d(n,"Plugin",function(){return o.Plugin}),e.d(n,"rtl",function(){return a.rtl}),e.d(n,"GetYoDigits",function(){return a.GetYoDigits}),e.d(n,"RegExpEscape",function(){return a.RegExpEscape}),e.d(n,"transitionend",function(){return a.transitionend}),e.d(n,"onLoad",function(){return a.onLoad}),e.d(n,"ignoreMousedisappear",function(){return a.ignoreMousedisappear}),i.Foundation.addToJquery(r.a),i.Foundation.Plugin=o.Plugin,i.Foundation.rtl=a.rtl,i.Foundation.GetYoDigits=a.GetYoDigits,i.Foundation.transitionend=a.transitionend,i.Foundation.RegExpEscape=a.RegExpEscape,i.Foundation.onLoad=a.onLoad,window.Foundation=i.Foundation},"./js/foundation.core.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Foundation",function(){return s});var n=e("jquery"),o=e.n(n),r=e("./js/foundation.core.utils.js"),a=e("./js/foundation.util.mediaQuery.js");function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s={version:"6.7.5",_plugins:{},_uuids:[],plugin:function(t,n){var e=n||c(t),n=i(e);this._plugins[n]=this[e]=t},registerPlugin:function(t,n){n=n?i(n):c(t.constructor).toLowerCase();t.uuid=Object(r.GetYoDigits)(6,n),t.$element.attr("data-".concat(n))||t.$element.attr("data-".concat(n),t.uuid),t.$element.data("zfPlugin")||t.$element.data("zfPlugin",t),t.$element.trigger("init.zf.".concat(n)),this._uuids.push(t.uuid)},unregisterPlugin:function(t){var n,e=i(c(t.$element.data("zfPlugin").constructor));for(n in this._uuids.splice(this._uuids.indexOf(t.uuid),1),t.$element.removeAttr("data-".concat(e)).removeData("zfPlugin").trigger("destroyed.zf.".concat(e)),t)"function"==typeof t[n]&&(t[n]=null)},reInit:function(t){var n,e,r=t instanceof o.a;try{r?t.each(function(){o()(this).data("zfPlugin")._init()}):(n=u(t),e=this,{object:function(t){t.forEach(function(t){t=i(t),o()("[data-"+t+"]").foundation("_init")})},string:function(){t=i(t),o()("[data-"+t+"]").foundation("_init")},undefined:function(){this.object(Object.keys(e._plugins))}}[n](t))}catch(t){console.error(t)}finally{return t}},reflow:function(r,t){void 0===t?t=Object.keys(this._plugins):"string"==typeof t&&(t=[t]);var i=this;o.a.each(t,function(t,n){var e=i._plugins[n];o()(r).find("[data-"+n+"]").addBack("[data-"+n+"]").filter(function(){return void 0===o()(this).data("zfPlugin")}).each(function(){var t=o()(this),n={reflow:!0};t.attr("data-options")&&t.attr("data-options").split(";").forEach(function(t){t=t.split(":").map(function(t){return t.trim()});t[0]&&(n[t[0]]=function(t){{if("true"===t)return!0;if("false"===t)return!1;if(!isNaN(+t))return parseFloat(t)}return t}(t[1]))});try{t.data("zfPlugin",new e(o()(this),n))}catch(t){console.error(t)}finally{return}})})},getFnName:c,addToJquery:function(){return o.a.fn.foundation=function(e){var t=u(e),n=o()(".no-js");if(n.length&&n.removeClass("no-js"),"undefined"===t)a.MediaQuery._init(),s.reflow(this);else{if("string"!==t)throw new TypeError("We're sorry, ".concat(t," is not a valid parameter. You must use a string representing the method you wish to invoke."));var r=Array.prototype.slice.call(arguments,1),i=this.data("zfPlugin");if(void 0===i||void 0===i[e])throw new ReferenceError("We're sorry, '"+e+"' is not an available method for "+(i?c(i):"this element")+".");1===this.length?i[e].apply(i,r):this.each(function(t,n){i[e].apply(o()(n).data("zfPlugin"),r)})}return this},o.a}};function c(t){if(void 0!==Function.prototype.name)return(void 0===t.prototype?t:t.prototype).constructor.name;t=/function\s([^(]{1,})\(/.exec(t.toString());return t&&1<t.length?t[1].trim():""}function i(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}s.util={throttle:function(e,r){var i=null;return function(){var t=this,n=arguments;null===i&&(i=setTimeout(function(){e.apply(t,n),i=null},r))}}},window.Foundation=s,function(){Date.now&&window.Date.now||(window.Date.now=Date.now=function(){return(new Date).getTime()});for(var r,t=["webkit","moz"],n=0;n<t.length&&!window.requestAnimationFrame;++n){var e=t[n];window.requestAnimationFrame=window[e+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e+"CancelAnimationFrame"]||window[e+"CancelRequestAnimationFrame"]}!/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)&&window.requestAnimationFrame&&window.cancelAnimationFrame||(r=0,window.requestAnimationFrame=function(t){var n=Date.now(),e=Math.max(r+16,n);return setTimeout(function(){t(r=e)},e-n)},window.cancelAnimationFrame=clearTimeout),window.performance&&window.performance.now||(window.performance={start:Date.now(),now:function(){return Date.now()-this.start}})}(),Function.prototype.bind||(Function.prototype.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");function n(){return r.apply(this instanceof i?this:t,e.concat(Array.prototype.slice.call(arguments)))}var e=Array.prototype.slice.call(arguments,1),r=this,i=function(){};return this.prototype&&(i.prototype=this.prototype),n.prototype=new i,n})},"./js/foundation.core.plugin.js":function(t,n,e){"use strict";e.r(n),e.d(n,"Plugin",function(){return r});var i=e("./js/foundation.core.utils.js");function o(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var r=function(){function e(t,n){!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this._setup(t,n);n=a(this);this.uuid=Object(i.GetYoDigits)(6,n),this.$element.attr("data-".concat(n))||this.$element.attr("data-".concat(n),this.uuid),this.$element.data("zfPlugin")||this.$element.data("zfPlugin",this),this.$element.trigger("init.zf.".concat(n))}var t,n,r;return t=e,(n=[{key:"destroy",value:function(){this._destroy();var t,n=a(this);for(t in this.$element.removeAttr("data-".concat(n)).removeData("zfPlugin").trigger("destroyed.zf.".concat(n)),this)this.hasOwnProperty(t)&&(this[t]=null)}}])&&o(t.prototype,n),r&&o(t,r),e}();function a(t){return t.className.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}},"./js/foundation.core.utils.js":function(t,n,e){"use strict";e.r(n),e.d(n,"rtl",function(){return r}),e.d(n,"GetYoDigits",function(){return i}),e.d(n,"RegExpEscape",function(){return o}),e.d(n,"transitionend",function(){return a}),e.d(n,"onLoad",function(){return u}),e.d(n,"ignoreMousedisappear",function(){return c});var n=e("jquery"),s=e.n(n);function r(){return"rtl"===s()("html").attr("dir")}function i(){for(var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:6,n=1<arguments.length?arguments[1]:void 0,e="",r="0123456789abcdefghijklmnopqrstuvwxyz",i=r.length,o=0;o<t;o++)e+=r[Math.floor(Math.random()*i)];return n?"".concat(e,"-").concat(n):e}function o(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}function a(t){var n,e,r={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend"},i=document.createElement("div");for(e in r)void 0!==i.style[e]&&(n=r[e]);return n||(setTimeout(function(){t.triggerHandler("transitionend",[t])},1),"transitionend")}function u(t,n){function e(){return t.triggerHandler(i)}var r="complete"===document.readyState,i=(r?"_didLoad":"load")+".zf.util.onLoad";return t&&(n&&t.one(i,n),r?setTimeout(e):s()(window).one("load",e)),i}function c(o){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.ignoreLeaveWindow,a=void 0!==n&&n,t=t.ignoreReappear,u=void 0!==t&&t;return function(n){for(var t=arguments.length,e=new Array(1<t?t-1:0),r=1;r<t;r++)e[r-1]=arguments[r];var i=o.bind.apply(o,[this,n].concat(e));if(null!==n.relatedTarget)return i();setTimeout(function(){return a||!document.hasFocus||document.hasFocus()?void(u||s()(document).one("mouseenter",function(t){s()(n.currentTarget).has(t.target).length||(n.relatedTarget=t.target,i())})):i()},0)}}},"./js/foundation.util.mediaQuery.js":function(t,n,e){"use strict";e.r(n),e.d(n,"MediaQuery",function(){return d});var r,i,o,n=e("jquery"),a=e.n(n);function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,i,o=[],a=!0,u=!1;try{for(e=e.call(t);!(a=(r=e.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(t){u=!0,i=t}finally{try{a||null==e.return||e.return()}finally{if(u)throw i}}return o}}(t,n)||function(t,n){if(t){if("string"==typeof t)return c(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(e="Object"===e&&t.constructor?t.constructor.name:e)||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?c(t,n):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}window.matchMedia||(window.matchMedia=((o=window.styleMedia||window.media)||(r=document.createElement("style"),n=document.getElementsByTagName("script")[0],i=null,r.type="text/css",r.id="matchmediajs-test",n?n.parentNode.insertBefore(r,n):document.head.appendChild(r),i="getComputedStyle"in window&&window.getComputedStyle(r,null)||r.currentStyle,o={matchMedium:function(t){t="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return r.styleSheet?r.styleSheet.cssText=t:r.textContent=t,"1px"===i.width}}),function(t){return{matches:o.matchMedium(t||"all"),media:t||"all"}}));var d={queries:[],current:"",_init:function(){if(!0===this.isInitialized)return this;this.isInitialized=!0;a()("meta.foundation-mq").length||a()('<meta class="foundation-mq" name="foundation-mq" content>').appendTo(document.head);var t,n,e,r=a()(".foundation-mq").css("font-family");for(e in n={},t="string"==typeof(r=r)&&(r=r.trim().slice(1,-1))?n=r.split("&").reduce(function(t,n){var e=n.replace(/\+/g," ").split("="),n=e[0],e=e[1],n=decodeURIComponent(n),e=void 0===e?null:decodeURIComponent(e);return t.hasOwnProperty(n)?Array.isArray(t[n])?t[n].push(e):t[n]=[t[n],e]:t[n]=e,t},{}):n,this.queries=[],t)t.hasOwnProperty(e)&&this.queries.push({name:e,value:"only screen and (min-width: ".concat(t[e],")")});this.current=this._getCurrentSize(),this._watcher()},_reInit:function(){this.isInitialized=!1,this._init()},atLeast:function(t){t=this.get(t);return!!t&&window.matchMedia(t).matches},only:function(t){return t===this._getCurrentSize()},upTo:function(t){t=this.next(t);return!t||!this.atLeast(t)},is:function(t){var n=s(t.trim().split(" ").filter(function(t){return!!t.length}),2),e=n[0],n=n[1],n=void 0===n?"":n;if("only"===n)return this.only(e);if(!n||"up"===n)return this.atLeast(e);if("down"===n)return this.upTo(e);throw new Error('\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like "<size> <modifier>", got "'.concat(t,'".\n    '))},get:function(t){for(var n in this.queries)if(this.queries.hasOwnProperty(n)){n=this.queries[n];if(t===n.name)return n.value}return null},next:function(n){var e=this,t=this.queries.findIndex(function(t){return e._getQueryName(t)===n});if(-1===t)throw new Error('\n        Unknown breakpoint "'.concat(n,'" passed to MediaQuery.next().\n        Ensure it is present in your Sass "$breakpoints" setting.\n      '));t=this.queries[t+1];return t?t.name:null},_getQueryName:function(t){if("string"==typeof t)return t;if("object"===u(t))return t.name;throw new TypeError('\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got "'.concat(t,'" (').concat(u(t),")\n    "))},_getCurrentSize:function(){for(var t,n=0;n<this.queries.length;n++){var e=this.queries[n];window.matchMedia(e.value).matches&&(t=e)}return t&&this._getQueryName(t)},_watcher:function(){var e=this;a()(window).on("resize.zf.trigger",function(){var t=e._getCurrentSize(),n=e.current;t!==n&&(e.current=t,a()(window).trigger("changed.zf.mediaquery",[t,n]))})}}},0:function(t,n,e){t.exports=e("./js/entries/plugins/foundation.core.js")},jquery:function(t,n){t.exports=e}},o={},i.m=r,i.c=o,i.d=function(t,n,e){i.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(i.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)i.d(e,r,function(t){return n[t]}.bind(null,r));return e},i.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(n,"a",n),n},i.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},i.p="",i(i.s=0);function i(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{}};return r[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}var r,o});
 //# sourceMappingURL=foundation.core.min.js.map
index 5613cbfd81362b29f10ed91971da62eb6fc5dab4..0c250bd8dbf7df0741aecbc86acc35e434187970 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.plugin.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.core.utils.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.mediaQuery.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","Foundation","addToJquery","$","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","this","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","attr","concat","data","trigger","push","unregisterPlugin","prop","splice","indexOf","removeAttr","removeData","fns","_this","isJQ","plugins","a","each","_init","_typeof","forEach","p","plgs","foundation","undefined","object","Object","keys","type","err","console","reflow","elem","i","$elem","find","addBack","filter","opts","$el","opt","split","option","map","el","str","isNaN","parseFloat","parseValue","error","er","getFnName","fn","method","$noJS","length","MediaQuery","args","prototype","plugClass","slice","call","arguments","ReferenceError","apply","results","funcNameRegex","exec","toString","trim","util","throttle","func","delay","timer","context","setTimeout","Date","now","vendors","getTime","requestAnimationFrame","cancelAnimationFrame","vp","nextTime","lastTime","callback","max","clearTimeout","start","performance","Function","bind","oThis","TypeError","aArgs","Array","fNOP","fBound","fToBind","element","options","_classCallCheck","_setup","getPluginName","_destroy","hasOwnProperty","obj","ignoreMousedisappear","namespace","chars","charsLength","end","transition","transitions","WebkitTransition","MozTransition","OTransition","document","style","triggerHandler","eventType","didLoad","cb","handler","one","ignoreLeaveWindow","_ref$ignoreLeaveWindo","_ref","ignoreReappear","leaveEventHandler","_ref$ignoreReappear","rest","eLeave","_len","_key","relatedTarget","hasFocus","eReenter","currentTarget","has","target","script","arr","isArray","matchMedia","getElementsByTagName","styleMedia","media","head","appendChild","parentNode","text","insertBefore","info","getComputedStyle","currentStyle","textContent","matchMedium","matches","styleSheet","cssText","queries","$meta","isInitialized","namedQueries","self","key","css","value","styleObject","extractedStyles","parts","param","replace","val","reduce","decodeURIComponent","ret","current","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","is","_parts","_slicedToArray","bpModifier","bpSize","Error","next","queryIndex","nextQuery","_getQueryName","matched","newSize","_this2","currentSize","jquery","installedModules","m","modules","c","getter","o","defineProperty","enumerable","Symbol","toStringTag","t","mode","__esModule","ns","create","property","s","moduleId","l"],"mappings":"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","file":"foundation.core.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\nimport $ from 'jquery';\nimport { Foundation } from '../../foundation.core';\nimport { Plugin } from '../../foundation.core.plugin';\nimport { rtl, GetYoDigits, transitionend, RegExpEscape, onLoad } from '../../foundation.core.utils';\n\nFoundation.addToJquery($);\n\n// Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\nFoundation.Plugin = Plugin;\n\n// These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\nFoundation.rtl = rtl;\nFoundation.GetYoDigits = GetYoDigits;\nFoundation.transitionend = transitionend;\nFoundation.RegExpEscape = RegExpEscape;\nFoundation.onLoad = onLoad;\n\nwindow.Foundation = Foundation;\n\n// --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\nexport { Foundation };\nexport * from '../../foundation.core.plugin';\nexport * from '../../foundation.core.utils';\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.3';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function(plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = (name || functionName(plugin));\n    // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n    var attrName  = hyphenate(className);\n\n    // Add to the Foundation object and the plugins list (for reflowing)\n    this._plugins[attrName] = this[className] = plugin;\n  },\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function(plugin, name){\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = GetYoDigits(6, pluginName);\n\n    if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n    if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n          /**\n           * Fires when the plugin has initialized.\n           * @event Plugin#init\n           */\n    plugin.$element.trigger(`init.zf.${pluginName}`);\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function(plugin){\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n    plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n          /**\n           * Fires when the plugin has been destroyed.\n           * @event Plugin#destroyed\n           */\n          .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in plugin){\n      plugin[prop] = null;//clean up script to prep for garbage collection.\n    }\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n   reInit: function(plugins){\n     var isJQ = plugins instanceof $;\n     try{\n       if(isJQ){\n         plugins.each(function(){\n           $(this).data('zfPlugin')._init();\n         });\n       }else{\n         var type = typeof plugins,\n         _this = this,\n         fns = {\n           'object': function(plgs){\n             plgs.forEach(function(p){\n               p = hyphenate(p);\n               $('[data-'+ p +']').foundation('_init');\n             });\n           },\n           'string': function(){\n             plugins = hyphenate(plugins);\n             $('[data-'+ plugins +']').foundation('_init');\n           },\n           'undefined': function(){\n             this['object'](Object.keys(_this._plugins));\n           }\n         };\n         fns[type](plugins);\n       }\n     }catch(err){\n       console.error(err);\n     }finally{\n       return plugins;\n     }\n   },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function(elem, plugins) {\n\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    }\n    // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this;\n\n    // Iterate through each plugin\n    $.each(plugins, function(i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name];\n\n      // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n      var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n        return typeof $(this).data(\"zfPlugin\") === 'undefined';\n      });\n\n      // For each plugin found, initialize it\n      $elem.each(function() {\n        var $el = $(this),\n            opts = { reflow: true };\n\n        if($el.attr('data-options')){\n          $el.attr('data-options').split(';').forEach(function(option, _index){\n            var opt = option.split(':').map(function(el){ return el.trim(); });\n            if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n        try{\n          $el.data('zfPlugin', new plugin($(this), opts));\n        }catch(er){\n          console.error(er);\n        }finally{\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n\n  addToJquery: function($) {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function(method) {\n      var type = typeof method,\n          $noJS = $('.no-js');\n\n      if($noJS.length){\n        $noJS.removeClass('no-js');\n      }\n\n      if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n        MediaQuery._init();\n        Foundation.reflow(this);\n      }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n        var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n        if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n          if(this.length === 1){//if there's only one, call it directly.\n              plugClass[method].apply(plugClass, args);\n          }else{\n            this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply($(el).data('zfPlugin'), args);\n            });\n          }\n        }else{//error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      }else{//error for invalid argument type\n        throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n      }\n      return this;\n    };\n    $.fn.foundation = foundation;\n    return $;\n  }\n};\n\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function (func, delay) {\n    var timer = null;\n\n    return function () {\n      var context = this, args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n  if (!Date.now || !window.Date.now)\n    window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n  var vendors = ['webkit', 'moz'];\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n      var vp = vendors[i];\n      window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n      window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n                                 || window[vp+'CancelRequestAnimationFrame']);\n  }\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n    || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n    window.requestAnimationFrame = function(callback) {\n        var now = Date.now();\n        var nextTime = Math.max(lastTime + 16, now);\n        return setTimeout(function() { callback(lastTime = nextTime); },\n                          nextTime - now);\n    };\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n  if(!window.performance || !window.performance.now){\n    window.performance = {\n      start: Date.now(),\n      now: function(){ return Date.now() - this.start; }\n    };\n  }\n})();\nif (!Function.prototype.bind) {\n  Function.prototype.bind = function(oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs   = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP    = function() {},\n        fBound  = function() {\n          return fToBind.apply(this instanceof fNOP\n                 ? this\n                 : oThis,\n                 aArgs.concat(Array.prototype.slice.call(arguments)));\n        };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n    fBound.prototype = new fNOP();\n\n    return fBound;\n  };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = (funcNameRegex).exec((fn).toString());\n    return (results && results.length > 1) ? results[1].trim() : \"\";\n  }\n  else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  }\n  else {\n    return fn.prototype.constructor.name;\n  }\n}\nfunction parseValue(str){\n  if ('true' === str) return true;\n  else if ('false' === str) return false;\n  else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n  constructor(element, options) {\n    this._setup(element, options);\n    var pluginName = getPluginName(this);\n    this.uuid = GetYoDigits(6, pluginName);\n\n    if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n    if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n    this.$element.trigger(`init.zf.${pluginName}`);\n  }\n\n  destroy() {\n    this._destroy();\n    var pluginName = getPluginName(this);\n    this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n        /**\n         * Fires when the plugin has been destroyed.\n         * @event Plugin#destroyed\n         */\n        .trigger(`destroyed.zf.${pluginName}`);\n    for(var prop in this){\n      this[prop] = null;//clean up script to prep for garbage collection.\n    }\n  }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n  /**\n   * Returns a boolean for RTL support\n   */\nfunction rtl() {\n  return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n  let str = '';\n  const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  const charsLength = chars.length;\n  for (let i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n  return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (let transition in transitions){\n    if (typeof elem.style[transition] !== 'undefined'){\n      end = transitions[transition];\n    }\n  }\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function(){\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n  const didLoad = document.readyState === 'complete';\n  const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n  const cb = () => $elem.triggerHandler(eventType);\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n\n    if (didLoad)\n      setTimeout(cb);\n    else\n      $(window).one('load', cb);\n  }\n\n  return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n  return function leaveEventHandler(eLeave, ...rest) {\n    const callback = handler.bind(this, eLeave, ...rest);\n\n    // The mouse left: call the given callback if the mouse entered elsewhere\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    }\n\n    // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      }\n\n      // Otherwise, wait for the mouse to reeapear outside of the element,\n      if (!ignoreReappear) {\n        $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n\n    }, 0);\n  };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n  'default' : 'only screen',\n  landscape : 'only screen and (orientation: landscape)',\n  portrait : 'only screen and (orientation: portrait)',\n  retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n    'only screen and (min--moz-device-pixel-ratio: 2),' +\n    'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n    'only screen and (min-device-pixel-ratio: 2),' +\n    'only screen and (min-resolution: 192dpi),' +\n    'only screen and (min-resolution: 2dppx)'\n  };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.core.min.js","sources":["foundation.core.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.core\"] = factory(require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./js/entries/plugins/foundation.core.js\":\n/*!***********************************************!*\\\n  !*** ./js/entries/plugins/foundation.core.js ***!\n  \\***********************************************/\n/*! exports provided: Foundation, Plugin, rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.core */ \"./js/foundation.core.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../foundation.core.plugin */ \"./js/foundation.core.plugin.js\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Plugin\", function() { return _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rtl\", function() { return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function() { return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function() { return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"RegExpEscape\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transitionend\", function() { return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onLoad\", function() { return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"onLoad\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function() { return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"ignoreMousedisappear\"]; });\n\n// --- Foundation Core API ---\n// Initialize Foundation and add some utilities to its public API for backward compatibility.\n// Please note that every utility do not have to be added to the core API.\n\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Every plugin depends on plugin now, we can include that on the core for the\n// script inclusion path.\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Plugin = _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]; // These are now separated out, but historically were a part of this module,\n// and since this is here for backwards compatibility we include them in\n// this entry.\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].rtl = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"];\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].GetYoDigits = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"];\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].transitionend = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"];\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].RegExpEscape = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"RegExpEscape\"];\n_foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].onLoad = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"onLoad\"];\nwindow.Foundation = _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"]; // --- Foundation Core exports ---\n// Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n// all core source files.\n\n\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.core.js\":\n/*!*******************************!*\\\n  !*** ./js/foundation.core.js ***!\n  \\*******************************/\n/*! exports provided: Foundation */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return Foundation; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\nvar FOUNDATION_VERSION = '6.7.5'; // Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\n\nvar Foundation = {\n  version: FOUNDATION_VERSION,\n\n  /**\n   * Stores initialized plugins.\n   */\n  _plugins: {},\n\n  /**\n   * Stores generated unique ids for plugin instances\n   */\n  _uuids: [],\n\n  /**\n   * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n   * @param {Object} plugin - The constructor of the plugin.\n   */\n  plugin: function plugin(_plugin, name) {\n    // Object key to use when adding to global Foundation object\n    // Examples: Foundation.Reveal, Foundation.OffCanvas\n    var className = name || functionName(_plugin); // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n    // Examples: data-reveal, data-off-canvas\n\n    var attrName = hyphenate(className); // Add to the Foundation object and the plugins list (for reflowing)\n\n    this._plugins[attrName] = this[className] = _plugin;\n  },\n\n  /**\n   * @function\n   * Populates the _uuids array with pointers to each individual plugin instance.\n   * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n   * Also fires the initialization event for each plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @param {String} name - the name of the plugin, passed as a camelCased string.\n   * @fires Plugin#init\n   */\n  registerPlugin: function registerPlugin(plugin, name) {\n    var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n    plugin.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n    if (!plugin.$element.attr(\"data-\".concat(pluginName))) {\n      plugin.$element.attr(\"data-\".concat(pluginName), plugin.uuid);\n    }\n\n    if (!plugin.$element.data('zfPlugin')) {\n      plugin.$element.data('zfPlugin', plugin);\n    }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n\n\n    plugin.$element.trigger(\"init.zf.\".concat(pluginName));\n\n    this._uuids.push(plugin.uuid);\n\n    return;\n  },\n\n  /**\n   * @function\n   * Removes the plugins uuid from the _uuids array.\n   * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n   * Also fires the destroyed event for the plugin, consolidating repetitive code.\n   * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n   * @fires Plugin#destroyed\n   */\n  unregisterPlugin: function unregisterPlugin(plugin) {\n    var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n    this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n\n    plugin.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n    /**\n     * Fires when the plugin has been destroyed.\n     * @event Plugin#destroyed\n     */\n    .trigger(\"destroyed.zf.\".concat(pluginName));\n\n    for (var prop in plugin) {\n      if (typeof plugin[prop] === 'function') {\n        plugin[prop] = null; //clean up script to prep for garbage collection.\n      }\n    }\n\n    return;\n  },\n\n  /**\n   * @function\n   * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n   * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n   * @default If no argument is passed, reflow all currently active plugins.\n   */\n  reInit: function reInit(plugins) {\n    var isJQ = plugins instanceof jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n\n    try {\n      if (isJQ) {\n        plugins.each(function () {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('zfPlugin')._init();\n        });\n      } else {\n        var type = _typeof(plugins),\n            _this = this,\n            fns = {\n          'object': function object(plgs) {\n            plgs.forEach(function (p) {\n              p = hyphenate(p);\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + p + ']').foundation('_init');\n            });\n          },\n          'string': function string() {\n            plugins = hyphenate(plugins);\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + plugins + ']').foundation('_init');\n          },\n          'undefined': function undefined() {\n            this.object(Object.keys(_this._plugins));\n          }\n        };\n\n        fns[type](plugins);\n      }\n    } catch (err) {\n      console.error(err);\n    } finally {\n      return plugins;\n    }\n  },\n\n  /**\n   * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n   * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n   * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n   */\n  reflow: function reflow(elem, plugins) {\n    // If plugins is undefined, just grab everything\n    if (typeof plugins === 'undefined') {\n      plugins = Object.keys(this._plugins);\n    } // If plugins is a string, convert it to an array with one item\n    else if (typeof plugins === 'string') {\n      plugins = [plugins];\n    }\n\n    var _this = this; // Iterate through each plugin\n\n\n    jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(plugins, function (i, name) {\n      // Get the current plugin\n      var plugin = _this._plugins[name]; // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n\n      var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).find('[data-' + name + ']').addBack('[data-' + name + ']').filter(function () {\n        return typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(\"zfPlugin\") === 'undefined';\n      }); // For each plugin found, initialize it\n\n      $elem.each(function () {\n        var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            opts = {\n          reflow: true\n        };\n\n        if ($el.attr('data-options')) {\n          $el.attr('data-options').split(';').forEach(function (option) {\n            var opt = option.split(':').map(function (el) {\n              return el.trim();\n            });\n            if (opt[0]) opts[opt[0]] = parseValue(opt[1]);\n          });\n        }\n\n        try {\n          $el.data('zfPlugin', new plugin(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), opts));\n        } catch (er) {\n          console.error(er);\n        } finally {\n          return;\n        }\n      });\n    });\n  },\n  getFnName: functionName,\n  addToJquery: function addToJquery() {\n    // TODO: consider not making this a jQuery function\n    // TODO: need way to reflow vs. re-initialize\n\n    /**\n     * The Foundation jQuery method.\n     * @param {String|Array} method - An action to perform on the current jQuery object.\n     */\n    var foundation = function foundation(method) {\n      var type = _typeof(method),\n          $noJS = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.no-js');\n\n      if ($noJS.length) {\n        $noJS.removeClass('no-js');\n      }\n\n      if (type === 'undefined') {\n        //needs to initialize the Foundation object, or an individual plugin.\n        _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n        Foundation.reflow(this);\n      } else if (type === 'string') {\n        //an individual method to invoke on a plugin or group of plugins\n        var args = Array.prototype.slice.call(arguments, 1); //collect all the arguments, if necessary\n\n        var plugClass = this.data('zfPlugin'); //determine the class of plugin\n\n        if (typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined') {\n          //make sure both the class and method exist\n          if (this.length === 1) {\n            //if there's only one, call it directly.\n            plugClass[method].apply(plugClass, args);\n          } else {\n            this.each(function (i, el) {\n              //otherwise loop through the jQuery collection and invoke the method on each\n              plugClass[method].apply(jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).data('zfPlugin'), args);\n            });\n          }\n        } else {\n          //error for no class or no method\n          throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n        }\n      } else {\n        //error for invalid argument type\n        throw new TypeError(\"We're sorry, \".concat(type, \" is not a valid parameter. You must use a string representing the method you wish to invoke.\"));\n      }\n\n      return this;\n    };\n\n    jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.foundation = foundation;\n    return jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n  }\n};\nFoundation.util = {\n  /**\n   * Function for applying a debounce effect to a function call.\n   * @function\n   * @param {Function} func - Function to be called at end of timeout.\n   * @param {Number} delay - Time in ms to delay the call of `func`.\n   * @returns function\n   */\n  throttle: function throttle(func, delay) {\n    var timer = null;\n    return function () {\n      var context = this,\n          args = arguments;\n\n      if (timer === null) {\n        timer = setTimeout(function () {\n          func.apply(context, args);\n          timer = null;\n        }, delay);\n      }\n    };\n  }\n};\nwindow.Foundation = Foundation; // Polyfill for requestAnimationFrame\n\n(function () {\n  if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {\n    return new Date().getTime();\n  };\n  var vendors = ['webkit', 'moz'];\n\n  for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n    var vp = vendors[i];\n    window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];\n    window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];\n  }\n\n  if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n    var lastTime = 0;\n\n    window.requestAnimationFrame = function (callback) {\n      var now = Date.now();\n      var nextTime = Math.max(lastTime + 16, now);\n      return setTimeout(function () {\n        callback(lastTime = nextTime);\n      }, nextTime - now);\n    };\n\n    window.cancelAnimationFrame = clearTimeout;\n  }\n  /**\n   * Polyfill for performance.now, required by rAF\n   */\n\n\n  if (!window.performance || !window.performance.now) {\n    window.performance = {\n      start: Date.now(),\n      now: function now() {\n        return Date.now() - this.start;\n      }\n    };\n  }\n})();\n\nif (!Function.prototype.bind) {\n  /* eslint-disable no-extend-native */\n  Function.prototype.bind = function (oThis) {\n    if (typeof this !== 'function') {\n      // closest thing possible to the ECMAScript 5\n      // internal IsCallable function\n      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n    }\n\n    var aArgs = Array.prototype.slice.call(arguments, 1),\n        fToBind = this,\n        fNOP = function fNOP() {},\n        fBound = function fBound() {\n      return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));\n    };\n\n    if (this.prototype) {\n      // native functions don't have a prototype\n      fNOP.prototype = this.prototype;\n    }\n\n    fBound.prototype = new fNOP();\n    return fBound;\n  };\n} // Polyfill to get the name of a function in IE9\n\n\nfunction functionName(fn) {\n  if (typeof Function.prototype.name === 'undefined') {\n    var funcNameRegex = /function\\s([^(]{1,})\\(/;\n    var results = funcNameRegex.exec(fn.toString());\n    return results && results.length > 1 ? results[1].trim() : \"\";\n  } else if (typeof fn.prototype === 'undefined') {\n    return fn.constructor.name;\n  } else {\n    return fn.prototype.constructor.name;\n  }\n}\n\nfunction parseValue(str) {\n  if ('true' === str) return true;else if ('false' === str) return false;else if (!isNaN(str * 1)) return parseFloat(str);\n  return str;\n} // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.core.plugin.js\":\n/*!**************************************!*\\\n  !*** ./js/foundation.core.plugin.js ***!\n  \\**************************************/\n/*! exports provided: Plugin */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Plugin\", function() { return Plugin; });\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core.utils */ \"./js/foundation.core.utils.js\");\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n // Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\n\nvar Plugin = /*#__PURE__*/function () {\n  function Plugin(element, options) {\n    _classCallCheck(this, Plugin);\n\n    this._setup(element, options);\n\n    var pluginName = getPluginName(this);\n    this.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__[\"GetYoDigits\"])(6, pluginName);\n\n    if (!this.$element.attr(\"data-\".concat(pluginName))) {\n      this.$element.attr(\"data-\".concat(pluginName), this.uuid);\n    }\n\n    if (!this.$element.data('zfPlugin')) {\n      this.$element.data('zfPlugin', this);\n    }\n    /**\n     * Fires when the plugin has initialized.\n     * @event Plugin#init\n     */\n\n\n    this.$element.trigger(\"init.zf.\".concat(pluginName));\n  }\n\n  _createClass(Plugin, [{\n    key: \"destroy\",\n    value: function destroy() {\n      this._destroy();\n\n      var pluginName = getPluginName(this);\n      this.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n      /**\n       * Fires when the plugin has been destroyed.\n       * @event Plugin#destroyed\n       */\n      .trigger(\"destroyed.zf.\".concat(pluginName));\n\n      for (var prop in this) {\n        if (this.hasOwnProperty(prop)) {\n          this[prop] = null; //clean up script to prep for garbage collection.\n        }\n      }\n    }\n  }]);\n\n  return Plugin;\n}(); // Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\n\n\nfunction hyphenate(str) {\n  return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n  return hyphenate(obj.className);\n}\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.core.utils.js\":\n/*!*************************************!*\\\n  !*** ./js/foundation.core.utils.js ***!\n  \\*************************************/\n/*! exports provided: rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rtl\", function() { return rtl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function() { return GetYoDigits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function() { return RegExpEscape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transitionend\", function() { return transitionend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onLoad\", function() { return onLoad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function() { return ignoreMousedisappear; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n // Core Foundation Utilities, utilized in a number of places.\n\n/**\n * Returns a boolean for RTL support\n */\n\nfunction rtl() {\n  return jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').attr('dir') === 'rtl';\n}\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\n\n\nfunction GetYoDigits() {\n  var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;\n  var namespace = arguments.length > 1 ? arguments[1] : undefined;\n  var str = '';\n  var chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n  var charsLength = chars.length;\n\n  for (var i = 0; i < length; i++) {\n    str += chars[Math.floor(Math.random() * charsLength)];\n  }\n\n  return namespace ? \"\".concat(str, \"-\").concat(namespace) : str;\n}\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\n\n\nfunction RegExpEscape(str) {\n  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem) {\n  var transitions = {\n    'transition': 'transitionend',\n    'WebkitTransition': 'webkitTransitionEnd',\n    'MozTransition': 'transitionend',\n    'OTransition': 'otransitionend'\n  };\n  var elem = document.createElement('div'),\n      end;\n\n  for (var transition in transitions) {\n    if (typeof elem.style[transition] !== 'undefined') {\n      end = transitions[transition];\n    }\n  }\n\n  if (end) {\n    return end;\n  } else {\n    setTimeout(function () {\n      $elem.triggerHandler('transitionend', [$elem]);\n    }, 1);\n    return 'transitionend';\n  }\n}\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\n\n\nfunction onLoad($elem, handler) {\n  var didLoad = document.readyState === 'complete';\n  var eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n\n  var cb = function cb() {\n    return $elem.triggerHandler(eventType);\n  };\n\n  if ($elem) {\n    if (handler) $elem.one(eventType, handler);\n    if (didLoad) setTimeout(cb);else jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', cb);\n  }\n\n  return eventType;\n}\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n *   (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n *   outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\n\n\nfunction ignoreMousedisappear(handler) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      _ref$ignoreLeaveWindo = _ref.ignoreLeaveWindow,\n      ignoreLeaveWindow = _ref$ignoreLeaveWindo === void 0 ? false : _ref$ignoreLeaveWindo,\n      _ref$ignoreReappear = _ref.ignoreReappear,\n      ignoreReappear = _ref$ignoreReappear === void 0 ? false : _ref$ignoreReappear;\n\n  return function leaveEventHandler(eLeave) {\n    for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      rest[_key - 1] = arguments[_key];\n    }\n\n    var callback = handler.bind.apply(handler, [this, eLeave].concat(rest)); // The mouse left: call the given callback if the mouse entered elsewhere\n\n    if (eLeave.relatedTarget !== null) {\n      return callback();\n    } // Otherwise, check if the mouse actually left the window.\n    // In firefox if the user switched between windows, the window sill have the focus by the time\n    // the event is triggered. We have to debounce the event to test this case.\n\n\n    setTimeout(function leaveEventDebouncer() {\n      if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n        return callback();\n      } // Otherwise, wait for the mouse to reeapear outside of the element,\n\n\n      if (!ignoreReappear) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).one('mouseenter', function reenterEventHandler(eReenter) {\n          if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(eLeave.currentTarget).has(eReenter.target).length) {\n            // Fill where the mouse finally entered.\n            eLeave.relatedTarget = eReenter.target;\n            callback();\n          }\n        });\n      }\n    }, 0);\n  };\n}\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.mediaQuery.js\":\n/*!******************************************!*\\\n  !*** ./js/foundation.util.mediaQuery.js ***!\n  \\******************************************/\n/*! exports provided: MediaQuery */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return MediaQuery; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n // Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n/* eslint-disable */\n\nwindow.matchMedia || (window.matchMedia = function () {\n  \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n  var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n  if (!styleMedia) {\n    var style = document.createElement('style'),\n        script = document.getElementsByTagName('script')[0],\n        info = null;\n    style.type = 'text/css';\n    style.id = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n    info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n    styleMedia = {\n      matchMedium: function matchMedium(media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        } // Test if media query is true or false\n\n\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function (media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n}());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init: function _init() {\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n    if (!$meta.length) {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n    var namedQueries;\n    namedQueries = parseStyleToObject(extractedStyles);\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if (namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit: function _reInit() {\n    this.isInitialized = false;\n\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast: function atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only: function only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo: function upTo(size) {\n    var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    } // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n\n\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is: function is(size) {\n    var parts = size.trim().split(' ').filter(function (p) {\n      return !!p.length;\n    });\n\n    var _parts = _slicedToArray(parts, 2),\n        bpSize = _parts[0],\n        _parts$ = _parts[1],\n        bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    } // At least the breakpoint (included)\n\n\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    } // Up to the breakpoint (included)\n\n\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(\"\\n      Invalid breakpoint passed to MediaQuery.is().\\n      Expected a breakpoint name formatted like \\\"<size> <modifier>\\\", got \\\"\".concat(size, \"\\\".\\n    \"));\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get: function get(size) {\n    for (var i in this.queries) {\n      if (this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next: function next(size) {\n    var _this = this;\n\n    var queryIndex = this.queries.findIndex(function (q) {\n      return _this._getQueryName(q) === size;\n    });\n\n    if (queryIndex === -1) {\n      throw new Error(\"\\n        Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n        Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n      \"));\n    }\n\n    var nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName: function _getQueryName(value) {\n    if (typeof value === 'string') return value;\n    if (_typeof(value) === 'object') return value.name;\n    throw new TypeError(\"\\n      Invalid value passed to MediaQuery._getQueryName().\\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n    \"));\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize: function _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher: function _watcher() {\n    var _this2 = this;\n\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n      var newSize = _this2._getCurrentSize(),\n          currentSize = _this2.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        _this2.current = newSize; // Broadcast the media query change on the window\n\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n}; // Thank you: https://github.com/sindresorhus/query-string\n\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function (ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key); // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n\n    return ret;\n  }, {});\n  return styleObject;\n}\n\n\n\n/***/ }),\n\n/***/ 0:\n/*!*****************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.core.js ***!\n  \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.core.js */\"./js/entries/plugins/foundation.core.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.core.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./js/entries/plugins/foundation.core.js","__webpack_exports__","__webpack_require__","r","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","addToJquery","a","Plugin","rtl","GetYoDigits","transitionend","RegExpEscape","onLoad","Foundation","./js/foundation.core.js","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","_typeof","obj","Symbol","iterator","constructor","prototype","version","_plugins","_uuids","plugin","_plugin","name","className","functionName","attrName","hyphenate","this","registerPlugin","pluginName","toLowerCase","uuid","Object","$element","attr","concat","data","trigger","push","unregisterPlugin","prop","splice","indexOf","removeAttr","removeData","reInit","plugins","type","_this","isJQ","each","_init","object","plgs","forEach","p","foundation","string","undefined","keys","err","console","error","reflow","elem","i","find","addBack","filter","$el","opts","split","option","opt","map","el","trim","str","isNaN","parseFloat","parseValue","er","getFnName","fn","method","$noJS","length","removeClass","TypeError","args","Array","slice","call","arguments","plugClass","ReferenceError","apply","Function","results","exec","toString","replace","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","lastTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","callback","nextTime","Math","max","clearTimeout","performance","start","bind","oThis","fBound","fToBind","fNOP","aArgs","./js/foundation.core.plugin.js","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","element","options","instance","Constructor","_classCallCheck","_setup","getPluginName","protoProps","staticProps","value","_destroy","hasOwnProperty","./js/foundation.core.utils.js","ignoreMousedisappear","namespace","chars","charsLength","floor","random","$elem","end","transition","transitions","WebkitTransition","MozTransition","OTransition","document","createElement","style","triggerHandler","handler","cb","eventType","didLoad","readyState","one","_ref","_ref$ignoreLeaveWindo","ignoreLeaveWindow","_ref$ignoreReappear","ignoreReappear","eLeave","_len","rest","_key","relatedTarget","hasFocus","eReenter","currentTarget","has","./js/foundation.util.mediaQuery.js","MediaQuery","info","styleMedia","_slicedToArray","arr","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","len","arr2","matchMedia","media","script","getElementsByTagName","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","isInitialized","appendTo","namedQueries","styleObject","extractedStyles","css","reduce","ret","param","parts","val","decodeURIComponent","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","is","_parts","bpSize","_parts$","bpModifier","Error","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","_this2","on","newSize","currentSize","0","jquery","installedModules","m","c","getter","toStringTag","t","mode","__esModule","ns","create","property","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 9cf401232dd6fdb7c3bb2f6ce00dd40a92e078de..d661dea932101defcabc631a99e18475d2a3e535 100644 (file)
@@ -553,6 +553,7 @@ var Drilldown = /*#__PURE__*/function (_Plugin) {
 
       var $elem = this.$element.find('.is-drilldown-submenu.is-active');
       $elem.addClass('is-closing');
+      $elem.parent().closest('ul').removeClass('invisible');
 
       if (this.options.autoHeight) {
         var calcHeight = $elem.parent().closest('ul').data('calcHeight');
index f88ae19f404b9c9fe7d7bde4e08a172520a73521..387c83c6260bb725d80f97673c27d319fecd2d5e 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Drilldown","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","Nest","Feather","autoApplyClass","addClass","attr","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","_events","$menu","$back","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","$elem","off","on","e","target","parentsUntil","preventDefault","_show","closeOnClick","$body","ev","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","bind","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$elements","$prevElement","$nextElement","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","calcHeight","closest","height","removeClass","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","Box","GetDimensions","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","Plugin"],"mappings":"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","file":"foundation.drilldown.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { Drilldown } from '../../foundation.drilldown';\nFoundation.plugin(Drilldown, 'Drilldown');\n\nexport { Foundation, Drilldown };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Drilldown","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","Nest","Feather","autoApplyClass","addClass","attr","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","_events","$menu","$back","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","$elem","off","on","e","target","parentsUntil","preventDefault","_show","closeOnClick","$body","ev","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","bind","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$elements","$prevElement","$nextElement","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","closest","removeClass","calcHeight","height","parentSubMenu","autoFocus","$expandedSubmenus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","Box","GetDimensions","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","Plugin"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,8D;;;;;;;;;;;ACAA,kE;;;;;;;;;;;ACAA,uE;;;;;;;;;;;ACAA,mE;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACAA,2DAAU,CAACC,MAAX,CAAkBC,+DAAlB,EAA6B,WAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEMA,S;;;;;;;;;;;;;;AACJ;AACF;AACA;AACA;AACA;AACA;AACA;AACE,oBAAOC,OAAP,EAAgBC,OAAhB,EAAyB;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAeE,6CAAC,CAACC,MAAF,CAAS,EAAT,EAAaL,SAAS,CAACM,QAAvB,EAAiC,KAAKH,QAAL,CAAcI,IAAd,EAAjC,EAAuDL,OAAvD,CAAf;AACA,WAAKM,SAAL,GAAiB,WAAjB,CAHuB,CAGO;;AAE9B,WAAKC,KAAL;;AAEAC,wEAAQ,CAACC,QAAT,CAAkB,WAAlB,EAA+B;AAC7B,iBAAS,MADoB;AAE7B,iBAAS,MAFoB;AAG7B,uBAAe,MAHc;AAI7B,oBAAY,IAJiB;AAK7B,sBAAc,MALe;AAM7B,sBAAc,UANe;AAO7B,kBAAU;AAPmB,OAA/B;AASD;AAED;AACF;AACA;AACA;;;;WACE,iBAAQ;AACNC,gEAAI,CAACC,OAAL,CAAa,KAAKV,QAAlB,EAA4B,WAA5B;;AAEA,UAAG,KAAKD,OAAL,CAAaY,cAAhB,EAAgC;AAC9B,aAAKX,QAAL,CAAcY,QAAd,CAAuB,WAAvB;AACD;;AAED,WAAKZ,QAAL,CAAca,IAAd,CAAmB;AACjB,gCAAwB;AADP,OAAnB;AAGA,WAAKC,eAAL,GAAuB,KAAKd,QAAL,CAAce,IAAd,CAAmB,gCAAnB,EAAqDC,QAArD,CAA8D,GAA9D,CAAvB;AACA,WAAKC,SAAL,GAAiB,KAAKH,eAAL,CAAqBI,MAArB,CAA4B,IAA5B,EAAkCF,QAAlC,CAA2C,gBAA3C,EAA6DH,IAA7D,CAAkE,MAAlE,EAA0E,OAA1E,CAAjB;AACA,WAAKM,UAAL,GAAkB,KAAKnB,QAAL,CAAce,IAAd,CAAmB,IAAnB,EAAyBK,GAAzB,CAA6B,oBAA7B,EAAmDL,IAAnD,CAAwD,GAAxD,CAAlB,CAZM,CAcN;AACA;;AACA,WAAKM,YAAL,GAAoB,KAAKrB,QAAzB;AAEA,WAAKA,QAAL,CAAca,IAAd,CAAmB,aAAnB,EAAmC,KAAKb,QAAL,CAAca,IAAd,CAAmB,gBAAnB,KAAwCS,0EAAW,CAAC,CAAD,EAAI,WAAJ,CAAtF;;AAEA,WAAKC,YAAL;;AACA,WAAKC,eAAL;;AAEA,WAAKC,eAAL;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,wBAAe;AACb,UAAIC,KAAK,GAAG,IAAZ,CADa,CAEb;AACA;AACA;;;AACA,WAAKZ,eAAL,CAAqBa,IAArB,CAA0B,YAAU;AAClC,YAAIC,KAAK,GAAG3B,6CAAC,CAAC,IAAD,CAAb;AACA,YAAI4B,IAAI,GAAGD,KAAK,CAACV,MAAN,EAAX;;AACA,YAAGQ,KAAK,CAAC3B,OAAN,CAAc+B,UAAjB,EAA4B;AAC1BF,eAAK,CAACG,KAAN,GAAcC,SAAd,CAAwBH,IAAI,CAACb,QAAL,CAAc,gBAAd,CAAxB,EAAyDiB,IAAzD,CAA8D,oHAA9D;AACD;;AACDL,aAAK,CAACxB,IAAN,CAAW,WAAX,EAAwBwB,KAAK,CAACf,IAAN,CAAW,MAAX,CAAxB,EAA4CqB,UAA5C,CAAuD,MAAvD,EAA+DrB,IAA/D,CAAoE,UAApE,EAAgF,CAAhF;AACAe,aAAK,CAACZ,QAAN,CAAe,gBAAf,EACKH,IADL,CACU;AACJ,yBAAe,IADX;AAEJ,sBAAY,CAFR;AAGJ,kBAAQ;AAHJ,SADV;;AAMAa,aAAK,CAACS,OAAN,CAAcP,KAAd;AACD,OAdD;AAeA,WAAKX,SAAL,CAAeU,IAAf,CAAoB,YAAU;AAC5B,YAAIS,KAAK,GAAGnC,6CAAC,CAAC,IAAD,CAAb;AAAA,YACIoC,KAAK,GAAGD,KAAK,CAACrB,IAAN,CAAW,oBAAX,CADZ;;AAEA,YAAG,CAACsB,KAAK,CAACC,MAAV,EAAkB;AAChB,kBAAQZ,KAAK,CAAC3B,OAAN,CAAcwC,kBAAtB;AACE,iBAAK,QAAL;AACEH,mBAAK,CAACI,MAAN,CAAad,KAAK,CAAC3B,OAAN,CAAc0C,UAA3B;AACA;;AACF,iBAAK,KAAL;AACEL,mBAAK,CAACM,OAAN,CAAchB,KAAK,CAAC3B,OAAN,CAAc0C,UAA5B;AACA;;AACF;AACEE,qBAAO,CAACC,KAAR,CAAc,2CAA2ClB,KAAK,CAAC3B,OAAN,CAAcwC,kBAAzD,GAA8E,GAA5F;AARJ;AAUD;;AACDb,aAAK,CAACmB,KAAN,CAAYT,KAAZ;AACD,OAhBD;AAkBA,WAAKnB,SAAL,CAAeL,QAAf,CAAwB,WAAxB;;AACA,UAAG,CAAC,KAAKb,OAAL,CAAa+C,UAAjB,EAA6B;AAC3B,aAAK7B,SAAL,CAAeL,QAAf,CAAwB,kCAAxB;AACD,OAzCY,CA2Cb;;;AACA,UAAG,CAAC,KAAKZ,QAAL,CAAckB,MAAd,GAAuB6B,QAAvB,CAAgC,cAAhC,CAAJ,EAAoD;AAClD,aAAKC,QAAL,GAAgB/C,6CAAC,CAAC,KAAKF,OAAL,CAAakD,OAAd,CAAD,CAAwBrC,QAAxB,CAAiC,cAAjC,CAAhB;AACA,YAAG,KAAKb,OAAL,CAAamD,aAAhB,EAA+B,KAAKF,QAAL,CAAcpC,QAAd,CAAuB,gBAAvB;AAC/B,aAAKZ,QAAL,CAAciC,IAAd,CAAmB,KAAKe,QAAxB;AACD,OAhDY,CAiDb;;;AACA,WAAKA,QAAL,GAAgB,KAAKhD,QAAL,CAAckB,MAAd,EAAhB;AACA,WAAK8B,QAAL,CAAcG,GAAd,CAAkB,KAAKC,WAAL,EAAlB;AACD;;;WAED,mBAAU;AACR,WAAKJ,QAAL,CAAcG,GAAd,CAAkB;AAAC,qBAAa,MAAd;AAAsB,sBAAc;AAApC,OAAlB,EADQ,CAER;;AACA,WAAKH,QAAL,CAAcG,GAAd,CAAkB,KAAKC,WAAL,EAAlB;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,iBAAQC,KAAR,EAAe;AACb,UAAI3B,KAAK,GAAG,IAAZ;;AAEA2B,WAAK,CAACC,GAAN,CAAU,oBAAV,EACCC,EADD,CACI,oBADJ,EAC0B,UAASC,CAAT,EAAY;AACpC,YAAGvD,6CAAC,CAACuD,CAAC,CAACC,MAAH,CAAD,CAAYC,YAAZ,CAAyB,IAAzB,EAA+B,IAA/B,EAAqCX,QAArC,CAA8C,6BAA9C,CAAH,EAAgF;AAC9ES,WAAC,CAACG,cAAF;AACD,SAHmC,CAKpC;AACA;AACA;;;AACAjC,aAAK,CAACkC,KAAN,CAAYP,KAAK,CAACnC,MAAN,CAAa,IAAb,CAAZ;;AAEA,YAAGQ,KAAK,CAAC3B,OAAN,CAAc8D,YAAjB,EAA8B;AAC5B,cAAIC,KAAK,GAAG7D,6CAAC,CAAC,MAAD,CAAb;AACA6D,eAAK,CAACR,GAAN,CAAU,eAAV,EAA2BC,EAA3B,CAA8B,oBAA9B,EAAoD,UAASQ,EAAT,EAAa;AAC/D,gBAAIA,EAAE,CAACN,MAAH,KAAc/B,KAAK,CAAC1B,QAAN,CAAe,CAAf,CAAd,IAAmCC,6CAAC,CAAC+D,QAAF,CAAWtC,KAAK,CAAC1B,QAAN,CAAe,CAAf,CAAX,EAA8B+D,EAAE,CAACN,MAAjC,CAAvC,EAAiF;AAAE;AAAS;;AAC5FM,cAAE,CAACJ,cAAH;;AACAjC,iBAAK,CAACuC,QAAN;;AACAH,iBAAK,CAACR,GAAN,CAAU,eAAV;AACD,WALD;AAMD;AACF,OApBD;AAqBD;AAED;AACF;AACA;AACA;AACA;;;;WACE,2BAAkB;AAChB,UAAG,KAAKvD,OAAL,CAAamE,SAAhB,EAA0B;AACxB,aAAKC,YAAL,GAAoB,KAAKC,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAApB;AACA,aAAKrE,QAAL,CAAcuD,EAAd,CAAiB,4EAAjB,EAA8F,KAAKY,YAAnG;AACD;;AACD,WAAKnE,QAAL,CAAcuD,EAAd,CAAiB,qBAAjB,EAAwC,KAAKe,OAAL,CAAaD,IAAb,CAAkB,IAAlB,CAAxC;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,sBAAa;AACX,UAAI3C,KAAK,GAAG,IAAZ;;AACA,UAAI6C,iBAAiB,GAAG7C,KAAK,CAAC3B,OAAN,CAAcyE,gBAAd,KAAmC,EAAnC,GAAsCvE,6CAAC,CAACyB,KAAK,CAAC3B,OAAN,CAAcyE,gBAAf,CAAvC,GAAwE9C,KAAK,CAAC1B,QAAtG;AAAA,UACIyE,SAAS,GAAGC,QAAQ,CAACH,iBAAiB,CAACI,MAAlB,GAA2BC,GAA3B,GAA+BlD,KAAK,CAAC3B,OAAN,CAAc8E,eAA9C,EAA+D,EAA/D,CADxB;AAEA5E,mDAAC,CAAC,YAAD,CAAD,CAAgB6E,IAAhB,CAAqB,IAArB,EAA2BC,OAA3B,CAAmC;AAAEb,iBAAS,EAAEO;AAAb,OAAnC,EAA6D/C,KAAK,CAAC3B,OAAN,CAAciF,iBAA3E,EAA8FtD,KAAK,CAAC3B,OAAN,CAAckF,eAA5G,EAA4H,YAAU;AACpI;AACN;AACA;AACA;AACM,YAAG,SAAOhF,6CAAC,CAAC,MAAD,CAAD,CAAU,CAAV,CAAV,EAAuByB,KAAK,CAAC1B,QAAN,CAAekF,OAAf,CAAuB,uBAAvB;AACxB,OAND;AAOD;AAED;AACF;AACA;AACA;;;;WACE,2BAAkB;AAChB,UAAIxD,KAAK,GAAG,IAAZ;;AAEA,WAAKP,UAAL,CAAgBgE,GAAhB,CAAoB,KAAKnF,QAAL,CAAce,IAAd,CAAmB,qDAAnB,CAApB,EAA+FwC,EAA/F,CAAkG,sBAAlG,EAA0H,UAASC,CAAT,EAAW;AACnI,YAAIxD,QAAQ,GAAGC,6CAAC,CAAC,IAAD,CAAhB;AAAA,YACImF,SAAS,GAAGpF,QAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,EAAmCF,QAAnC,CAA4C,IAA5C,EAAkDA,QAAlD,CAA2D,GAA3D,CADhB;AAAA,YAEIqE,YAFJ;AAAA,YAGIC,YAHJ;AAKAF,iBAAS,CAACzD,IAAV,CAAe,UAAS4D,CAAT,EAAY;AACzB,cAAItF,6CAAC,CAAC,IAAD,CAAD,CAAQuF,EAAR,CAAWxF,QAAX,CAAJ,EAA0B;AACxBqF,wBAAY,GAAGD,SAAS,CAACK,EAAV,CAAaC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYJ,CAAC,GAAC,CAAd,CAAb,CAAf;AACAD,wBAAY,GAAGF,SAAS,CAACK,EAAV,CAAaC,IAAI,CAACE,GAAL,CAASL,CAAC,GAAC,CAAX,EAAcH,SAAS,CAAC9C,MAAV,GAAiB,CAA/B,CAAb,CAAf;AACA;AACD;AACF,SAND;AAQA/B,0EAAQ,CAACsF,SAAT,CAAmBrC,CAAnB,EAAsB,WAAtB,EAAmC;AACjCsC,cAAI,EAAE,gBAAW;AACf,gBAAI9F,QAAQ,CAACwF,EAAT,CAAY9D,KAAK,CAACZ,eAAlB,CAAJ,EAAwC;AACtCY,mBAAK,CAACkC,KAAN,CAAY5D,QAAQ,CAACkB,MAAT,CAAgB,IAAhB,CAAZ;;AACAlB,sBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsB6E,GAAtB,CAA0BC,4EAAa,CAAChG,QAAD,CAAvC,EAAmD,YAAU;AAC3DA,wBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBH,IAAtB,CAA2B,SAA3B,EAAsCK,GAAtC,CAA0C,sBAA1C,EAAkE6E,KAAlE,GAA0EC,KAA1E;AACD,eAFD;AAGA,qBAAO,IAAP;AACD;AACF,WATgC;AAUjCC,kBAAQ,EAAE,oBAAW;AACnBzE,iBAAK,CAAC0E,KAAN,CAAYpG,QAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,CAAZ;;AACAlB,oBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,EAAmC6E,GAAnC,CAAuCC,4EAAa,CAAChG,QAAD,CAApD,EAAgE,YAAU;AACxEqG,wBAAU,CAAC,YAAW;AACpBrG,wBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,EAAmCA,MAAnC,CAA0C,IAA1C,EAAgDF,QAAhD,CAAyD,GAAzD,EAA8DiF,KAA9D,GAAsEC,KAAtE;AACD,eAFS,EAEP,CAFO,CAAV;AAGD,aAJD;AAKA,mBAAO,IAAP;AACD,WAlBgC;AAmBjCI,YAAE,EAAE,cAAW;AACbjB,wBAAY,CAACa,KAAb,GADa,CAEb;;AACA,mBAAO,CAAClG,QAAQ,CAACwF,EAAT,CAAY9D,KAAK,CAAC1B,QAAN,CAAee,IAAf,CAAoB,sBAApB,CAAZ,CAAR;AACD,WAvBgC;AAwBjCwF,cAAI,EAAE,gBAAW;AACfjB,wBAAY,CAACY,KAAb,GADe,CAEf;;AACA,mBAAO,CAAClG,QAAQ,CAACwF,EAAT,CAAY9D,KAAK,CAAC1B,QAAN,CAAee,IAAf,CAAoB,qBAApB,CAAZ,CAAR;AACD,WA5BgC;AA6BjCyF,eAAK,EAAE,iBAAW;AAChB;AACA,gBAAI,CAACxG,QAAQ,CAACwF,EAAT,CAAY9D,KAAK,CAAC1B,QAAN,CAAee,IAAf,CAAoB,UAApB,CAAZ,CAAL,EAAmD;AACjDW,mBAAK,CAAC0E,KAAN,CAAYpG,QAAQ,CAACkB,MAAT,GAAkBA,MAAlB,EAAZ;;AACAlB,sBAAQ,CAACkB,MAAT,GAAkBA,MAAlB,GAA2BuF,QAA3B,CAAoC,GAApC,EAAyCP,KAAzC;AACD;AACF,WAnCgC;AAoCjCQ,cAAI,EAAE,gBAAW;AACf,gBAAIhF,KAAK,CAAC3B,OAAN,CAAc+B,UAAd,IAA4B9B,QAAQ,CAACa,IAAT,CAAc,MAAd,CAAhC,EAAuD;AAAE;AACvD,qBAAO,KAAP;AACD,aAFD,MAEO,IAAI,CAACb,QAAQ,CAACwF,EAAT,CAAY9D,KAAK,CAACP,UAAlB,CAAL,EAAoC;AAAE;AAC3CO,mBAAK,CAAC0E,KAAN,CAAYpG,QAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,CAAZ;;AACAlB,sBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,EAAmC6E,GAAnC,CAAuCC,4EAAa,CAAChG,QAAD,CAApD,EAAgE,YAAU;AACxEqG,0BAAU,CAAC,YAAW;AACpBrG,0BAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBA,MAAtB,CAA6B,IAA7B,EAAmCA,MAAnC,CAA0C,IAA1C,EAAgDF,QAAhD,CAAyD,GAAzD,EAA8DiF,KAA9D,GAAsEC,KAAtE;AACD,iBAFS,EAEP,CAFO,CAAV;AAGD,eAJD;AAKA,qBAAO,IAAP;AACD,aARM,MAQA,IAAIlG,QAAQ,CAACwF,EAAT,CAAY9D,KAAK,CAACZ,eAAlB,CAAJ,EAAwC;AAAE;AAC/CY,mBAAK,CAACkC,KAAN,CAAY5D,QAAQ,CAACkB,MAAT,CAAgB,IAAhB,CAAZ;;AACAlB,sBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsB6E,GAAtB,CAA0BC,4EAAa,CAAChG,QAAD,CAAvC,EAAmD,YAAU;AAC3DA,wBAAQ,CAACkB,MAAT,CAAgB,IAAhB,EAAsBH,IAAtB,CAA2B,SAA3B,EAAsCK,GAAtC,CAA0C,sBAA1C,EAAkE6E,KAAlE,GAA0EC,KAA1E;AACD,eAFD;AAGA,qBAAO,IAAP;AACD;AACF,WAtDgC;AAuDjCS,iBAAO,EAAE,iBAAShD,cAAT,EAAyB;AAChC,gBAAIA,cAAJ,EAAoB;AAClBH,eAAC,CAACG,cAAF;AACD;AACF;AA3DgC,SAAnC;AA6DD,OA3ED,EAHgB,CA8EZ;AACL;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,oBAAW;AAAA;;AACT,UAAIN,KAAK,GAAG,KAAKrD,QAAL,CAAce,IAAd,CAAmB,iCAAnB,CAAZ;AACAsC,WAAK,CAACzC,QAAN,CAAe,YAAf;AACAyC,WAAK,CAACnC,MAAN,GAAe0F,OAAf,CAAuB,IAAvB,EAA6BC,WAA7B,CAAyC,WAAzC;;AAEA,UAAI,KAAK9G,OAAL,CAAa+C,UAAjB,EAA6B;AAC3B,YAAMgE,UAAU,GAAGzD,KAAK,CAACnC,MAAN,GAAe0F,OAAf,CAAuB,IAAvB,EAA6BxG,IAA7B,CAAkC,YAAlC,CAAnB;AACA,aAAK4C,QAAL,CAAcG,GAAd,CAAkB;AAAE4D,gBAAM,EAAED;AAAV,SAAlB;AACD;AAED;AACJ;AACA;AACA;;;AACI,WAAK9G,QAAL,CAAckF,OAAd,CAAsB,oBAAtB;AAEA7B,WAAK,CAAC0C,GAAN,CAAUC,4EAAa,CAAC3C,KAAD,CAAvB,EAAgC,YAAM;AACpCA,aAAK,CAACwD,WAAN,CAAkB,sBAAlB;AAEA;AACN;AACA;AACA;;AACM,cAAI,CAAC7G,QAAL,CAAckF,OAAd,CAAsB,qBAAtB;AACD,OARD;AASD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,eAAM7B,KAAN,EAAa;AACX,UAAI3B,KAAK,GAAG,IAAZ;;AACA2B,WAAK,CAACC,GAAN,CAAU,oBAAV;AACAD,WAAK,CAACrC,QAAN,CAAe,oBAAf,EACGuC,EADH,CACM,oBADN,EAC4B,YAAW;AACnC7B,aAAK,CAAC0E,KAAN,CAAY/C,KAAZ,EADmC,CAGnC;;;AACA,YAAI2D,aAAa,GAAG3D,KAAK,CAACnC,MAAN,CAAa,IAAb,EAAmBA,MAAnB,CAA0B,IAA1B,EAAgCA,MAAhC,CAAuC,IAAvC,CAApB;;AACA,YAAI8F,aAAa,CAAC1E,MAAlB,EAA0B;AACxBZ,eAAK,CAACkC,KAAN,CAAYoD,aAAZ;AACD,SAFD,MAGK;AACHtF,eAAK,CAACL,YAAN,GAAqBK,KAAK,CAAC1B,QAA3B;AACD;AACF,OAZH;AAaD;AAED;AACF;AACA;AACA;AACA;;;;WACE,2BAAkB;AAChB,UAAI0B,KAAK,GAAG,IAAZ;;AACA,WAAKP,UAAL,CAAgBC,GAAhB,CAAoB,8BAApB,EACKkC,GADL,CACS,oBADT,EAEKC,EAFL,CAEQ,oBAFR,EAE8B,YAAW;AACnC8C,kBAAU,CAAC,YAAW;AACpB3E,eAAK,CAACuC,QAAN;AACD,SAFS,EAEP,CAFO,CAAV;AAGH,OANH;AAOD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,gCAAuBZ,KAAvB,EAA8B6B,OAA9B,EAAuC;AACrC7B,WAAK,CAACzC,QAAN,CAAe,WAAf,EAA4BiG,WAA5B,CAAwC,WAAxC,EAAqDhG,IAArD,CAA0D,aAA1D,EAAyE,KAAzE;AACAwC,WAAK,CAACnC,MAAN,CAAa,IAAb,EAAmBL,IAAnB,CAAwB,eAAxB,EAAyC,IAAzC;;AACA,UAAIqE,OAAO,KAAK,IAAhB,EAAsB;AACpB,aAAKlF,QAAL,CAAckF,OAAd,CAAsB,mBAAtB,EAA2C,CAAC7B,KAAD,CAA3C;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,gCAAuBA,KAAvB,EAA8B6B,OAA9B,EAAuC;AACrC7B,WAAK,CAACwD,WAAN,CAAkB,WAAlB,EAA+BjG,QAA/B,CAAwC,WAAxC,EAAqDC,IAArD,CAA0D,aAA1D,EAAyE,IAAzE;AACAwC,WAAK,CAACnC,MAAN,CAAa,IAAb,EAAmBL,IAAnB,CAAwB,eAAxB,EAAyC,KAAzC;;AACA,UAAIqE,OAAO,KAAK,IAAhB,EAAsB;AACpB7B,aAAK,CAAC6B,OAAN,CAAc,mBAAd,EAAmC,CAAC7B,KAAD,CAAnC;AACD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,mBAAUA,KAAV,EAAiB4D,SAAjB,EAA4B;AAE1B,UAAIvF,KAAK,GAAG,IAAZ,CAF0B,CAI1B;;;AACA,UAAIwF,iBAAiB,GAAG,KAAKlH,QAAL,CAAce,IAAd,CAAmB,6CAAnB,CAAxB;AACAmG,uBAAiB,CAACvF,IAAlB,CAAuB,YAAW;AAChCD,aAAK,CAACyF,sBAAN,CAA6BlH,6CAAC,CAAC,IAAD,CAA9B;AACD,OAFD,EAN0B,CAU1B;;AACA,WAAKoB,YAAL,GAAoBgC,KAApB,CAX0B,CAa1B;;AACA,UAAIA,KAAK,CAACmC,EAAN,CAAS,kBAAT,CAAJ,EAAkC;AAChC,YAAIyB,SAAS,KAAK,IAAlB,EAAwB5D,KAAK,CAACtC,IAAN,CAAW,QAAX,EAAqBkF,KAArB,GAA6BC,KAA7B;AACxB,YAAI,KAAKnG,OAAL,CAAa+C,UAAjB,EAA6B,KAAKE,QAAL,CAAcG,GAAd,CAAkB,QAAlB,EAA4BE,KAAK,CAACjD,IAAN,CAAW,YAAX,CAA5B;AAC7B;AACD,OAlByB,CAoB1B;;;AACA,UAAIa,SAAS,GAAGoC,KAAK,CAACrC,QAAN,GAAiBiF,KAAjB,GAAyBvC,YAAzB,CAAsC,kBAAtC,EAA0D,gBAA1D,CAAhB,CArB0B,CAuB1B;;AACAzC,eAAS,CAACU,IAAV,CAAe,UAASyF,KAAT,EAAgB;AAE7B;AACA,YAAIA,KAAK,KAAK,CAAV,IAAe1F,KAAK,CAAC3B,OAAN,CAAc+C,UAAjC,EAA6C;AAC3CpB,eAAK,CAACsB,QAAN,CAAeG,GAAf,CAAmB,QAAnB,EAA6BlD,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,YAAb,CAA7B;AACD;;AAED,YAAIiH,WAAW,GAAGD,KAAK,KAAKnG,SAAS,CAACqB,MAAV,GAAmB,CAA/C,CAP6B,CAS7B;AACA;;AACA,YAAI+E,WAAW,KAAK,IAApB,EAA0B;AACxBpH,uDAAC,CAAC,IAAD,CAAD,CAAQ8F,GAAR,CAAYC,4EAAa,CAAC/F,6CAAC,CAAC,IAAD,CAAF,CAAzB,EAAoC,YAAM;AACxC,gBAAIgH,SAAS,KAAK,IAAlB,EAAwB;AACtB5D,mBAAK,CAACtC,IAAN,CAAW,QAAX,EAAqBkF,KAArB,GAA6BC,KAA7B;AACD;AACF,WAJD;AAKD;;AAEDxE,aAAK,CAAC4F,sBAAN,CAA6BrH,6CAAC,CAAC,IAAD,CAA9B,EAAsCoH,WAAtC;AACD,OApBD;AAqBD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,eAAMhE,KAAN,EAAa;AACX,UAAMkE,QAAQ,GAAGlE,KAAK,CAACrC,QAAN,CAAe,gBAAf,CAAjB;AAEAqC,WAAK,CAACxC,IAAN,CAAW,eAAX,EAA4B,IAA5B;AAEA,WAAKQ,YAAL,GAAoBkG,QAApB,CALW,CAOX;AACA;;AACAlE,WAAK,CAACnC,MAAN,GAAe0F,OAAf,CAAuB,IAAvB,EAA6BhG,QAA7B,CAAsC,WAAtC,EATW,CAWX;;AACA2G,cAAQ,CAAC3G,QAAT,CAAkB,mBAAlB,EAAuCiG,WAAvC,CAAmD,WAAnD,EAAgEhG,IAAhE,CAAqE,aAArE,EAAoF,KAApF;;AAEA,UAAI,KAAKd,OAAL,CAAa+C,UAAjB,EAA6B;AAC3B,aAAKE,QAAL,CAAcG,GAAd,CAAkB;AAAE4D,gBAAM,EAAEQ,QAAQ,CAACnH,IAAT,CAAc,YAAd;AAAV,SAAlB;AACD;AAED;AACJ;AACA;AACA;;;AACI,WAAKJ,QAAL,CAAckF,OAAd,CAAsB,mBAAtB,EAA2C,CAAC7B,KAAD,CAA3C;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,eAAMA,KAAN,EAAa;AACX,UAAG,KAAKtD,OAAL,CAAa+C,UAAhB,EAA4B,KAAKE,QAAL,CAAcG,GAAd,CAAkB;AAAC4D,cAAM,EAAC1D,KAAK,CAACnC,MAAN,GAAe0F,OAAf,CAAuB,IAAvB,EAA6BxG,IAA7B,CAAkC,YAAlC;AAAR,OAAlB;AAC5BiD,WAAK,CAACnC,MAAN,GAAe0F,OAAf,CAAuB,IAAvB,EAA6BC,WAA7B,CAAyC,WAAzC;AACAxD,WAAK,CAACnC,MAAN,CAAa,IAAb,EAAmBL,IAAnB,CAAwB,eAAxB,EAAyC,KAAzC;AACAwC,WAAK,CAACxC,IAAN,CAAW,aAAX,EAA0B,IAA1B;AACAwC,WAAK,CAACzC,QAAN,CAAe,YAAf,EACMmF,GADN,CACUC,4EAAa,CAAC3C,KAAD,CADvB,EACgC,YAAU;AACnCA,aAAK,CAACwD,WAAN,CAAkB,8BAAlB;AACAxD,aAAK,CAACmE,IAAN,GAAa5G,QAAb,CAAsB,WAAtB;AACD,OAJN;AAKA;AACJ;AACA;AACA;;AACIyC,WAAK,CAAC6B,OAAN,CAAc,mBAAd,EAAmC,CAAC7B,KAAD,CAAnC;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,uBAAc;AACZ,UAAIoE,SAAS,GAAG,CAAhB;AAAA,UAAmBC,MAAM,GAAG,EAA5B;AAAA,UAAgChG,KAAK,GAAG,IAAxC,CADY,CAGZ;;;AACA,WAAKT,SAAL,CAAekE,GAAf,CAAmB,KAAKnF,QAAxB,EAAkC2B,IAAlC,CAAuC,YAAU;AAC/C,YAAIoF,MAAM,GAAGY,wDAAG,CAACC,aAAJ,CAAkB,IAAlB,EAAwBb,MAArC;AAEAU,iBAAS,GAAGV,MAAM,GAAGU,SAAT,GAAqBV,MAArB,GAA8BU,SAA1C;;AAEA,YAAG/F,KAAK,CAAC3B,OAAN,CAAc+C,UAAjB,EAA6B;AAC3B7C,uDAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,YAAb,EAA0B2G,MAA1B;AACD;AACF,OARD;AAUA,UAAI,KAAKhH,OAAL,CAAa+C,UAAjB,EACE4E,MAAM,CAACX,MAAP,GAAgB,KAAK1F,YAAL,CAAkBjB,IAAlB,CAAuB,YAAvB,CAAhB,CADF,KAGEsH,MAAM,CAAC,YAAD,CAAN,aAA0BD,SAA1B;AAEFC,YAAM,CAAC,WAAD,CAAN,aAAyB,KAAK1H,QAAL,CAAc,CAAd,EAAiB6H,qBAAjB,GAAyCC,KAAlE;AAEA,aAAOJ,MAAP;AACD;AAED;AACF;AACA;AACA;;;;WACE,oBAAW;AACTzH,mDAAC,CAAC,MAAD,CAAD,CAAUqD,GAAV,CAAc,eAAd;AACA,UAAG,KAAKvD,OAAL,CAAamE,SAAhB,EAA2B,KAAKlE,QAAL,CAAcsD,GAAd,CAAkB,eAAlB,EAAkC,KAAKa,YAAvC;;AAC3B,WAAKF,QAAL;;AACD,WAAKjE,QAAL,CAAcsD,GAAd,CAAkB,qBAAlB;AACC7C,gEAAI,CAACsH,IAAL,CAAU,KAAK/H,QAAf,EAAyB,WAAzB;AACA,WAAKA,QAAL,CAAcgI,MAAd,GACcjH,IADd,CACmB,6CADnB,EACkEkH,MADlE,GAEcC,GAFd,GAEoBnH,IAFpB,CAEyB,gDAFzB,EAE2E8F,WAF3E,CAEuF,2CAFvF,EAEoIvD,GAFpI,CAEwI,kDAFxI,EAGc4E,GAHd,GAGoBnH,IAHpB,CAGyB,gBAHzB,EAG2CmB,UAH3C,CAGsD,2BAHtD;AAIA,WAAKpB,eAAL,CAAqBa,IAArB,CAA0B,YAAW;AACnC1B,qDAAC,CAAC,IAAD,CAAD,CAAQqD,GAAR,CAAY,eAAZ;AACD,OAFD;AAIA,WAAKtD,QAAL,CAAce,IAAd,CAAmB,uBAAnB,EAA4CoH,MAA5C;AACA,WAAKlH,SAAL,CAAe4F,WAAf,CAA2B,4CAA3B;AAEA,WAAK7G,QAAL,CAAce,IAAd,CAAmB,GAAnB,EAAwBY,IAAxB,CAA6B,YAAU;AACrC,YAAIC,KAAK,GAAG3B,6CAAC,CAAC,IAAD,CAAb;AACA2B,aAAK,CAACM,UAAN,CAAiB,UAAjB;;AACA,YAAGN,KAAK,CAACxB,IAAN,CAAW,WAAX,CAAH,EAA2B;AACzBwB,eAAK,CAACf,IAAN,CAAW,MAAX,EAAmBe,KAAK,CAACxB,IAAN,CAAW,WAAX,CAAnB,EAA4CgI,UAA5C,CAAuD,WAAvD;AACD,SAFD,MAEK;AAAE;AAAS;AACjB,OAND;AAOD;;;;EA7hBqBC,6D;;AAgiBxBxI,SAAS,CAACM,QAAV,GAAqB;AACnB;AACF;AACA;AACA;AACA;AACA;AACA;AACEQ,gBAAc,EAAE,IARG;;AASnB;AACF;AACA;AACA;AACA;AACA;AACE8B,YAAU,EAAE,6DAfO;;AAgBnB;AACF;AACA;AACA;AACA;AACA;AACEF,oBAAkB,EAAE,KAtBD;;AAuBnB;AACF;AACA;AACA;AACA;AACA;AACEU,SAAO,EAAE,aA7BU;;AA8BnB;AACF;AACA;AACA;AACA;AACA;AACEnB,YAAU,EAAE,KApCO;;AAqCnB;AACF;AACA;AACA;AACA;AACA;AACE+B,cAAY,EAAE,KA3CK;;AA4CnB;AACF;AACA;AACA;AACA;AACA;AACEf,YAAU,EAAE,KAlDO;;AAmDnB;AACF;AACA;AACA;AACA;AACA;AACEI,eAAa,EAAE,KAzDI;;AA0DnB;AACF;AACA;AACA;AACA;AACA;AACEgB,WAAS,EAAE,KAhEQ;;AAiEnB;AACF;AACA;AACA;AACA;AACA;AACEM,kBAAgB,EAAE,EAvEC;;AAwEnB;AACF;AACA;AACA;AACA;AACA;AACEK,iBAAe,EAAE,CA9EE;;AA+EnB;AACF;AACA;AACA;AACA;AACA;AACEG,mBAAiB,EAAE,GArFA;;AAsFnB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,iBAAe,EAAE,OA7FE,CA8FnB;;AA9FmB,CAArB;;;;;;;;;;;;;;;;;;;;;;;;AC/iBA,oD","file":"foundation.drilldown.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { Drilldown } from '../../foundation.drilldown';\nFoundation.plugin(Drilldown, 'Drilldown');\n\nexport { Foundation, Drilldown };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length) {\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e) {\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n          if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n          ev.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n    $elem.parent().closest('ul').removeClass('invisible');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function() {\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function() {\n          setTimeout(function() {\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function() {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index === $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result.height = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
index 6bc185599318b1220a1d99f22bb0cf91b5f7868b..1bcb28b5595a0afab9c810cda1176324b74be00c 100644 (file)
@@ -1,2 +1,2 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","jquery"],t):"object"==typeof exports?exports["foundation.drilldown"]=t(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.drilldown"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.jQuery))}(window,function(n,i,o,r,s){return l={"./foundation.core":function(e,t){e.exports=n},"./foundation.util.box":function(e,t){e.exports=i},"./foundation.util.keyboard":function(e,t){e.exports=o},"./foundation.util.nest":function(e,t){e.exports=r},"./js/entries/plugins/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t);var i=n("./foundation.core");n.d(t,"Foundation",function(){return i.Foundation});var o=n("./js/foundation.drilldown.js");n.d(t,"Drilldown",function(){return o.Drilldown}),i.Foundation.plugin(o.Drilldown,"Drilldown")},"./js/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Drilldown",function(){return i});var t=n("jquery"),s=n.n(t),a=n("./foundation.util.keyboard"),r=n("./foundation.util.nest"),l=n("./foundation.core"),u=n("./foundation.util.box");function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=h(n);return function(e,t){{if(t&&("object"===o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined")}return function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e)}(this,i?(e=h(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments))}}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var i=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(o,l["Plugin"]);var e,t,n,i=f(o);function o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return e=o,(t=[{key:"_setup",value:function(e,t){this.$element=e,this.options=s.a.extend({},o.defaults,this.$element.data(),t),this.className="Drilldown",this._init(),a.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({"aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var e=s()(this),t=e.parent();n.options.parentLink&&e.clone().prependTo(t.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="none"></li>'),e.data("savedHref",e.attr("href")).removeAttr("href").attr("tabindex",0),e.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(e)}),this.$submenus.each(function(){var e=s()(this);if(!e.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":e.append(n.options.backButton);break;case"top":e.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(e)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=s()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(e){var t;s()(e.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&e.preventDefault(),i._show(n.parent("li")),i.options.closeOnClick&&(t=s()("body")).off(".zf.drilldown").on("click.zf.drilldown",function(e){e.target===i.$element[0]||s.a.contains(i.$element[0],e.target)||(e.preventDefault(),i._hideAll(),t.off(".zf.drilldown"))})})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var e=this,t=""!==e.options.scrollTopElement?s()(e.options.scrollTopElement):e.$element,t=parseInt(t.offset().top+e.options.scrollTopOffset,10);s()("html, body").stop(!0).animate({scrollTop:t},e.options.animationDuration,e.options.animationEasing,function(){this===s()("html")[0]&&e.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var e=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(t){var n,i,o=s()(this),r=o.parent("li").parent("ul").children("li").children("a");r.each(function(e){s()(this).is(o)&&(n=r.eq(Math.max(0,e-1)),i=r.eq(Math.min(e+1,r.length-1)))}),a.Keyboard.handleKey(t,"Drilldown",{next:function(){if(o.is(e.$submenuAnchors))return e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(e.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(e.$element.find("> li:last-child > a"))},close:function(){o.is(e.$element.find("> li > a"))||(e._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!e.options.parentLink||!o.attr("href"))&&(o.is(e.$menuItems)?o.is(e.$submenuAnchors)?(e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(e){e&&t.preventDefault()}})})}},{key:"_hideAll",value:function(){var e,t=this,n=this.$element.find(".is-drilldown-submenu.is-active");n.addClass("is-closing"),this.options.autoHeight&&(e=n.parent().closest("ul").data("calcHeight"),this.$wrapper.css({height:e})),this.$element.trigger("close.zf.drilldown"),n.one(Object(l.transitionend)(n),function(){n.removeClass("is-active is-closing"),t.$element.trigger("closed.zf.drilldown")})}},{key:"_back",value:function(t){var n=this;t.off("click.zf.drilldown"),t.children(".js-drilldown-back").on("click.zf.drilldown",function(){n._hide(t);var e=t.parent("li").parent("ul").parent("li");e.length?n._show(e):n.$currentMenu=n.$element})}},{key:"_menuLinkEvents",value:function(){var e=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(){setTimeout(function(){e._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(e,t){e.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),e.parent("li").attr("aria-expanded",!0),!0===t&&this.$element.trigger("open.zf.drilldown",[e])}},{key:"_setHideSubMenuClasses",value:function(e,t){e.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),e.parent("li").attr("aria-expanded",!1),!0===t&&e.trigger("hide.zf.drilldown",[e])}},{key:"_showMenu",value:function(t,n){var i=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(){i._setHideSubMenuClasses(s()(this))}),(this.$currentMenu=t).is("[data-drilldown]"))return!0===n&&t.find("li > a").first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",t.data("calcHeight")));var o=t.children().first().parentsUntil("[data-drilldown]","[data-submenu]");o.each(function(e){0===e&&i.options.autoHeight&&i.$wrapper.css("height",s()(this).data("calcHeight"));e=e===o.length-1;!0==e&&s()(this).one(Object(l.transitionend)(s()(this)),function(){!0===n&&t.find("li > a").first().focus()}),i._setShowSubMenuClasses(s()(this),e)})}},{key:"_show",value:function(e){var t=e.children("[data-submenu]");e.attr("aria-expanded",!0),this.$currentMenu=t,e.parent().closest("ul").addClass("invisible"),t.addClass("is-active visible").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:t.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[e])}},{key:"_hide",value:function(e){this.options.autoHeight&&this.$wrapper.css({height:e.parent().closest("ul").data("calcHeight")}),e.parent().closest("ul").removeClass("invisible"),e.parent("li").attr("aria-expanded",!1),e.attr("aria-hidden",!0),e.addClass("is-closing").one(Object(l.transitionend)(e),function(){e.removeClass("is-active is-closing visible"),e.blur().addClass("invisible")}),e.trigger("hide.zf.drilldown",[e])}},{key:"_getMaxDims",value:function(){var t=0,e={},n=this;return this.$submenus.add(this.$element).each(function(){var e=u.Box.GetDimensions(this).height;t=t<e?e:t,n.options.autoHeight&&s()(this).data("calcHeight",e)}),this.options.autoHeight?e.height=this.$currentMenu.data("calcHeight"):e["min-height"]="".concat(t,"px"),e["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),e}},{key:"_destroy",value:function(){s()("body").off(".zf.drilldown"),this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),r.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").off("transitionend otransitionend webkitTransitionEnd").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){s()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var e=s()(this);e.removeAttr("tabindex"),e.data("savedHref")&&e.attr("href",e.data("savedHref")).removeData("savedHref")})}}])&&d(e.prototype,t),n&&d(e,n),o}();i.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},3:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.drilldown.js")},jquery:function(e,t){e.exports=s}},u={},a.m=l,a.c=u,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)a.d(n,i,function(e){return t[e]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=3);function a(e){if(u[e])return u[e].exports;var t=u[e]={i:e,l:!1,exports:{}};return l[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}var l,u});
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","jquery"],t):"object"==typeof exports?exports["foundation.drilldown"]=t(require("./foundation.core"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.drilldown"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.jQuery))}(window,function(n,i,o,r,s){return l={"./foundation.core":function(e,t){e.exports=n},"./foundation.util.box":function(e,t){e.exports=i},"./foundation.util.keyboard":function(e,t){e.exports=o},"./foundation.util.nest":function(e,t){e.exports=r},"./js/entries/plugins/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t);var i=n("./foundation.core");n.d(t,"Foundation",function(){return i.Foundation});var o=n("./js/foundation.drilldown.js");n.d(t,"Drilldown",function(){return o.Drilldown}),i.Foundation.plugin(o.Drilldown,"Drilldown")},"./js/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Drilldown",function(){return i});var t=n("jquery"),s=n.n(t),a=n("./foundation.util.keyboard"),r=n("./foundation.util.nest"),l=n("./foundation.core"),u=n("./foundation.util.box");function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(n){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=p(n);return function(e,t){{if(t&&("object"===o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined")}return function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e)}(this,i?(e=p(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments))}}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var i=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(o,l["Plugin"]);var e,t,n,i=f(o);function o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),i.apply(this,arguments)}return e=o,(t=[{key:"_setup",value:function(e,t){this.$element=e,this.options=s.a.extend({},o.defaults,this.$element.data(),t),this.className="Drilldown",this._init(),a.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({"aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var e=s()(this),t=e.parent();n.options.parentLink&&e.clone().prependTo(t.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="none"></li>'),e.data("savedHref",e.attr("href")).removeAttr("href").attr("tabindex",0),e.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(e)}),this.$submenus.each(function(){var e=s()(this);if(!e.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":e.append(n.options.backButton);break;case"top":e.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(e)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=s()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(e){var t;s()(e.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&e.preventDefault(),i._show(n.parent("li")),i.options.closeOnClick&&(t=s()("body")).off(".zf.drilldown").on("click.zf.drilldown",function(e){e.target===i.$element[0]||s.a.contains(i.$element[0],e.target)||(e.preventDefault(),i._hideAll(),t.off(".zf.drilldown"))})})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var e=this,t=""!==e.options.scrollTopElement?s()(e.options.scrollTopElement):e.$element,t=parseInt(t.offset().top+e.options.scrollTopOffset,10);s()("html, body").stop(!0).animate({scrollTop:t},e.options.animationDuration,e.options.animationEasing,function(){this===s()("html")[0]&&e.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var e=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(t){var n,i,o=s()(this),r=o.parent("li").parent("ul").children("li").children("a");r.each(function(e){s()(this).is(o)&&(n=r.eq(Math.max(0,e-1)),i=r.eq(Math.min(e+1,r.length-1)))}),a.Keyboard.handleKey(t,"Drilldown",{next:function(){if(o.is(e.$submenuAnchors))return e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(e.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(e.$element.find("> li:last-child > a"))},close:function(){o.is(e.$element.find("> li > a"))||(e._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!e.options.parentLink||!o.attr("href"))&&(o.is(e.$menuItems)?o.is(e.$submenuAnchors)?(e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(e){e&&t.preventDefault()}})})}},{key:"_hideAll",value:function(){var e,t=this,n=this.$element.find(".is-drilldown-submenu.is-active");n.addClass("is-closing"),n.parent().closest("ul").removeClass("invisible"),this.options.autoHeight&&(e=n.parent().closest("ul").data("calcHeight"),this.$wrapper.css({height:e})),this.$element.trigger("close.zf.drilldown"),n.one(Object(l.transitionend)(n),function(){n.removeClass("is-active is-closing"),t.$element.trigger("closed.zf.drilldown")})}},{key:"_back",value:function(t){var n=this;t.off("click.zf.drilldown"),t.children(".js-drilldown-back").on("click.zf.drilldown",function(){n._hide(t);var e=t.parent("li").parent("ul").parent("li");e.length?n._show(e):n.$currentMenu=n.$element})}},{key:"_menuLinkEvents",value:function(){var e=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(){setTimeout(function(){e._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(e,t){e.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),e.parent("li").attr("aria-expanded",!0),!0===t&&this.$element.trigger("open.zf.drilldown",[e])}},{key:"_setHideSubMenuClasses",value:function(e,t){e.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),e.parent("li").attr("aria-expanded",!1),!0===t&&e.trigger("hide.zf.drilldown",[e])}},{key:"_showMenu",value:function(t,n){var i=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(){i._setHideSubMenuClasses(s()(this))}),(this.$currentMenu=t).is("[data-drilldown]"))return!0===n&&t.find("li > a").first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",t.data("calcHeight")));var o=t.children().first().parentsUntil("[data-drilldown]","[data-submenu]");o.each(function(e){0===e&&i.options.autoHeight&&i.$wrapper.css("height",s()(this).data("calcHeight"));e=e===o.length-1;!0==e&&s()(this).one(Object(l.transitionend)(s()(this)),function(){!0===n&&t.find("li > a").first().focus()}),i._setShowSubMenuClasses(s()(this),e)})}},{key:"_show",value:function(e){var t=e.children("[data-submenu]");e.attr("aria-expanded",!0),this.$currentMenu=t,e.parent().closest("ul").addClass("invisible"),t.addClass("is-active visible").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:t.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[e])}},{key:"_hide",value:function(e){this.options.autoHeight&&this.$wrapper.css({height:e.parent().closest("ul").data("calcHeight")}),e.parent().closest("ul").removeClass("invisible"),e.parent("li").attr("aria-expanded",!1),e.attr("aria-hidden",!0),e.addClass("is-closing").one(Object(l.transitionend)(e),function(){e.removeClass("is-active is-closing visible"),e.blur().addClass("invisible")}),e.trigger("hide.zf.drilldown",[e])}},{key:"_getMaxDims",value:function(){var t=0,e={},n=this;return this.$submenus.add(this.$element).each(function(){var e=u.Box.GetDimensions(this).height;t=t<e?e:t,n.options.autoHeight&&s()(this).data("calcHeight",e)}),this.options.autoHeight?e.height=this.$currentMenu.data("calcHeight"):e["min-height"]="".concat(t,"px"),e["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),e}},{key:"_destroy",value:function(){s()("body").off(".zf.drilldown"),this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),r.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").off("transitionend otransitionend webkitTransitionEnd").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){s()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var e=s()(this);e.removeAttr("tabindex"),e.data("savedHref")&&e.attr("href",e.data("savedHref")).removeData("savedHref")})}}])&&d(e.prototype,t),n&&d(e,n),o}();i.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},3:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.drilldown.js")},jquery:function(e,t){e.exports=s}},u={},a.m=l,a.c=u,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)a.d(n,i,function(e){return t[e]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=3);function a(e){if(u[e])return u[e].exports;var t=u[e]={i:e,l:!1,exports:{}};return l[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}var l,u});
 //# sourceMappingURL=foundation.drilldown.min.js.map
index f08d52623d8a180855d160f96bc4132e7b4fddf9..68fc2d29a14bec51d232f3667377c171c9523be5 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Drilldown","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Nest","Feather","autoApplyClass","addClass","attr","aria-multiselectable","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","aria-hidden","tabindex","role","_events","$menu","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","max-width","min-height","$elem","off","on","e","$body","target","parentsUntil","preventDefault","_show","closeOnClick","a","contains","ev","_hideAll","scrollTop","_bindHandler","_scrollTop","bind","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$prevElement","$nextElement","$elements","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","calcHeight","_this2","closest","height","removeClass","parentSubMenu","$expandedSubmenus","jquery__WEBPACK_IMPORTED_MODULE_0___default","autoFocus","index","Object","$submenu","key","value","result","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","GetDimensions","getBoundingClientRect","width","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__","Burn","unwrap","removeData","3","installedModules","m","modules","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.drilldown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { Drilldown } from '../../foundation.drilldown';\nFoundation.plugin(Drilldown, 'Drilldown');\n\nexport { Foundation, Drilldown };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n  /**\n   * Creates a new instance of a drilldown menu.\n   * @class\n   * @name Drilldown\n   * @param {jQuery} element - jQuery object to make into an accordion menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n    this.className = 'Drilldown'; // ie9 back compat\n\n    this._init();\n\n    Keyboard.register('Drilldown', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the drilldown by creating jQuery collections of elements\n   * @private\n   */\n  _init() {\n    Nest.Feather(this.$element, 'drilldown');\n\n    if(this.options.autoApplyClass) {\n      this.$element.addClass('drilldown');\n    }\n\n    this.$element.attr({\n      'aria-multiselectable': false\n    });\n    this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n    this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n    this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n    // Set the main menu as current by default (unless a submenu is selected)\n    // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n    this.$currentMenu = this.$element;\n\n    this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n    this._prepareMenu();\n    this._registerEvents();\n\n    this._keyboardEvents();\n  }\n\n  /**\n   * prepares drilldown menu by setting attributes to links and elements\n   * sets a min height to prevent content jumping\n   * wraps the element if not already wrapped\n   * @private\n   * @function\n   */\n  _prepareMenu() {\n    var _this = this;\n    // if(!this.options.holdOpen){\n    //   this._menuLinkEvents();\n    // }\n    this.$submenuAnchors.each(function(){\n      var $link = $(this);\n      var $sub = $link.parent();\n      if(_this.options.parentLink){\n        $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n      }\n      $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n      $link.children('[data-submenu]')\n          .attr({\n            'aria-hidden': true,\n            'tabindex': 0,\n            'role': 'group'\n          });\n      _this._events($link);\n    });\n    this.$submenus.each(function(){\n      var $menu = $(this),\n          $back = $menu.find('.js-drilldown-back');\n      if(!$back.length){\n        switch (_this.options.backButtonPosition) {\n          case \"bottom\":\n            $menu.append(_this.options.backButton);\n            break;\n          case \"top\":\n            $menu.prepend(_this.options.backButton);\n            break;\n          default:\n            console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n        }\n      }\n      _this._back($menu);\n    });\n\n    this.$submenus.addClass('invisible');\n    if(!this.options.autoHeight) {\n      this.$submenus.addClass('drilldown-submenu-cover-previous');\n    }\n\n    // create a wrapper on element if it doesn't exist.\n    if(!this.$element.parent().hasClass('is-drilldown')){\n      this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n      if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n      this.$element.wrap(this.$wrapper);\n    }\n    // set wrapper\n    this.$wrapper = this.$element.parent();\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  _resize() {\n    this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n    // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n    this.$wrapper.css(this._getMaxDims());\n  }\n\n  /**\n   * Adds event handlers to elements in the menu.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the current menu item to add handlers to.\n   */\n  _events($elem) {\n    var _this = this;\n\n    $elem.off('click.zf.drilldown')\n    .on('click.zf.drilldown', function(e){\n      if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n        e.preventDefault();\n      }\n\n      // if(e.target !== e.currentTarget.firstElementChild){\n      //   return false;\n      // }\n      _this._show($elem.parent('li'));\n\n      if(_this.options.closeOnClick){\n        var $body = $('body');\n        $body.off('.zf.drilldown').on('click.zf.drilldown', function(e){\n          if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) { return; }\n          e.preventDefault();\n          _this._hideAll();\n          $body.off('.zf.drilldown');\n        });\n      }\n    });\n  }\n\n  /**\n   * Adds event handlers to the menu element.\n   * @function\n   * @private\n   */\n  _registerEvents() {\n    if(this.options.scrollTop){\n      this._bindHandler = this._scrollTop.bind(this);\n      this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n    }\n    this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n  }\n\n  /**\n   * Scroll to Top of Element or data-scroll-top-element\n   * @function\n   * @fires Drilldown#scrollme\n   */\n  _scrollTop() {\n    var _this = this;\n    var $scrollTopElement = _this.options.scrollTopElement!=''?$(_this.options.scrollTopElement):_this.$element,\n        scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n    $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n      /**\n        * Fires after the menu has scrolled\n        * @event Drilldown#scrollme\n        */\n      if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds keydown event listener to `li`'s in the menu.\n   * @private\n   */\n  _keyboardEvents() {\n    var _this = this;\n\n    this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n      var $element = $(this),\n          $elements = $element.parent('li').parent('ul').children('li').children('a'),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(Math.max(0, i-1));\n          $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          return;\n        }\n      });\n\n      Keyboard.handleKey(e, 'Drilldown', {\n        next: function() {\n          if ($element.is(_this.$submenuAnchors)) {\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        previous: function() {\n          _this._hide($element.parent('li').parent('ul'));\n          $element.parent('li').parent('ul').one(transitionend($element), function(){\n            setTimeout(function() {\n              $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n            }, 1);\n          });\n          return true;\n        },\n        up: function() {\n          $prevElement.focus();\n          // Don't tap focus on first element in root ul\n          return !$element.is(_this.$element.find('> li:first-child > a'));\n        },\n        down: function() {\n          $nextElement.focus();\n          // Don't tap focus on last element in root ul\n          return !$element.is(_this.$element.find('> li:last-child > a'));\n        },\n        close: function() {\n          // Don't close on element in root ul\n          if (!$element.is(_this.$element.find('> li > a'))) {\n            _this._hide($element.parent().parent());\n            $element.parent().parent().siblings('a').focus();\n          }\n        },\n        open: function() {\n          if (_this.options.parentLink && $element.attr('href')) { // Link with href\n            return false;\n          } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n            _this._hide($element.parent('li').parent('ul'));\n            $element.parent('li').parent('ul').one(transitionend($element), function(){\n              setTimeout(function() {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n            _this._show($element.parent('li'));\n            $element.parent('li').one(transitionend($element), function(){\n              $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n            });\n            return true;\n          }\n        },\n        handled: function(preventDefault) {\n          if (preventDefault) {\n            e.preventDefault();\n          }\n        }\n      });\n    }); // end keyboardAccess\n  }\n\n  /**\n   * Closes all open elements, and returns to root menu.\n   * @function\n   * @fires Drilldown#close\n   * @fires Drilldown#closed\n   */\n  _hideAll() {\n    var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n    $elem.addClass('is-closing');\n\n    if (this.options.autoHeight) {\n      const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n      this.$wrapper.css({ height: calcHeight });\n    }\n\n    /**\n     * Fires when the menu is closing.\n     * @event Drilldown#close\n     */\n    this.$element.trigger('close.zf.drilldown');\n\n    $elem.one(transitionend($elem), () => {\n      $elem.removeClass('is-active is-closing');\n\n      /**\n       * Fires when the menu is fully closed.\n       * @event Drilldown#closed\n       */\n      this.$element.trigger('closed.zf.drilldown');\n    });\n  }\n\n  /**\n   * Adds event listener for each `back` button, and closes open menus.\n   * @function\n   * @fires Drilldown#back\n   * @param {jQuery} $elem - the current sub-menu to add `back` event.\n   */\n  _back($elem) {\n    var _this = this;\n    $elem.off('click.zf.drilldown');\n    $elem.children('.js-drilldown-back')\n      .on('click.zf.drilldown', function(e){\n        // console.log('mouseup on back');\n        _this._hide($elem);\n\n        // If there is a parent submenu, call show\n        let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        }\n        else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n  }\n\n  /**\n   * Adds event listener to menu items w/o submenus to close open menus on click.\n   * @function\n   * @private\n   */\n  _menuLinkEvents() {\n    var _this = this;\n    this.$menuItems.not('.is-drilldown-submenu-parent')\n        .off('click.zf.drilldown')\n        .on('click.zf.drilldown', function(e){\n          setTimeout(function(){\n            _this._hideAll();\n          }, 0);\n      });\n  }\n\n  /**\n   * Sets the CSS classes for submenu to show it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setShowSubMenuClasses($elem, trigger) {\n    $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n    $elem.parent('li').attr('aria-expanded', true);\n    if (trigger === true) {\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Sets the CSS classes for submenu to hide it.\n   * @function\n   * @private\n   * @param {jQuery} $elem - the target submenu (`ul` tag)\n   * @param {boolean} trigger - trigger drilldown event\n   */\n  _setHideSubMenuClasses($elem, trigger) {\n    $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n    $elem.parent('li').attr('aria-expanded', false);\n    if (trigger === true) {\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n  }\n\n  /**\n   * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n   * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n   * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n   */\n  _showMenu($elem, autoFocus) {\n\n    var _this = this;\n\n    // Reset drilldown\n    var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n    $expandedSubmenus.each(function(index) {\n      _this._setHideSubMenuClasses($(this));\n    });\n\n    // Save the menu as the currently displayed one.\n    this.$currentMenu = $elem;\n\n    // If target menu is root, focus first link & exit\n    if ($elem.is('[data-drilldown]')) {\n      if (autoFocus === true) $elem.find('li > a').first().focus();\n      if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n      return;\n    }\n\n    // Find all submenus on way to root incl. the element itself\n    var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n    // Open target menu and all submenus on its way to root\n    $submenus.each(function(index) {\n\n      // Update height of first child (target menu) if autoHeight option true\n      if (index === 0 && _this.options.autoHeight) {\n        _this.$wrapper.css('height', $(this).data('calcHeight'));\n      }\n\n      var isLastChild = index == $submenus.length - 1;\n\n      // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n      // Last child makes sure the event gets always triggered even if going through several menus\n      if (isLastChild === true) {\n        $(this).one(transitionend($(this)), () => {\n          if (autoFocus === true) {\n            $elem.find('li > a').first().focus();\n          }\n        });\n      }\n\n      _this._setShowSubMenuClasses($(this), isLastChild);\n    });\n  }\n\n  /**\n   * Opens a submenu.\n   * @function\n   * @fires Drilldown#open\n   * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n   */\n  _show($elem) {\n    const $submenu = $elem.children('[data-submenu]');\n\n    $elem.attr('aria-expanded', true);\n\n    this.$currentMenu = $submenu;\n\n    //hide drilldown parent menu when submenu is open\n    // this removes it from the dom so that the tab key will take the user to the next visible element\n    $elem.parent().closest('ul').addClass('invisible');\n\n    // add visible class to submenu to override invisible class above\n    $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n    if (this.options.autoHeight) {\n      this.$wrapper.css({ height: $submenu.data('calcHeight') });\n    }\n\n    /**\n     * Fires when the submenu has opened.\n     * @event Drilldown#open\n     */\n    this.$element.trigger('open.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Hides a submenu\n   * @function\n   * @fires Drilldown#hide\n   * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n   */\n  _hide($elem) {\n    if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n    var _this = this;\n    $elem.parent().closest('ul').removeClass('invisible');\n    $elem.parent('li').attr('aria-expanded', false);\n    $elem.attr('aria-hidden', true);\n    $elem.addClass('is-closing')\n         .one(transitionend($elem), function(){\n           $elem.removeClass('is-active is-closing visible');\n           $elem.blur().addClass('invisible');\n         });\n    /**\n     * Fires when the submenu has closed.\n     * @event Drilldown#hide\n     */\n    $elem.trigger('hide.zf.drilldown', [$elem]);\n  }\n\n  /**\n   * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n   * Prevents content jumping.\n   * @function\n   * @private\n   */\n  _getMaxDims() {\n    var maxHeight = 0, result = {}, _this = this;\n\n    // Recalculate menu heights and total max height\n    this.$submenus.add(this.$element).each(function(){\n      var numOfElems = $(this).children('li').length;\n      var height = Box.GetDimensions(this).height;\n\n      maxHeight = height > maxHeight ? height : maxHeight;\n\n      if(_this.options.autoHeight) {\n        $(this).data('calcHeight',height);\n      }\n    });\n\n    if (this.options.autoHeight)\n      result['height'] = this.$currentMenu.data('calcHeight');\n    else\n      result['min-height'] = `${maxHeight}px`;\n\n    result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n    return result;\n  }\n\n  /**\n   * Destroys the Drilldown Menu\n   * @function\n   */\n  _destroy() {\n    $('body').off('.zf.drilldown');\n    if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n    this._hideAll();\n\t  this.$element.off('mutateme.zf.trigger');\n    Nest.Burn(this.$element, 'drilldown');\n    this.$element.unwrap()\n                 .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n                 .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n                 .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n    this.$submenuAnchors.each(function() {\n      $(this).off('.zf.drilldown');\n    });\n\n    this.$element.find('[data-is-parent-link]').detach();\n    this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n    this.$element.find('a').each(function(){\n      var $link = $(this);\n      $link.removeAttr('tabindex');\n      if($link.data('savedHref')){\n        $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n      }else{ return; }\n    });\n  };\n}\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing'\n  // holdOpen: false\n};\n\nexport {Drilldown};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.drilldown.min.js","sources":["foundation.drilldown.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.box\":\n/*!********************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"} ***!\n  \\********************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.nest\":\n/*!************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"} ***!\n  \\************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.drilldown.js\":\n/*!****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.drilldown.js ***!\n  \\****************************************************/\n/*! exports provided: Foundation, Drilldown */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.drilldown */ \"./js/foundation.drilldown.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Drilldown\", function() { return _foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__[\"Drilldown\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__[\"Drilldown\"], 'Drilldown');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.drilldown.js\":\n/*!************************************!*\\\n  !*** ./js/foundation.drilldown.js ***!\n  \\************************************/\n/*! exports provided: Drilldown */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Drilldown\", function() { return Drilldown; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.nest */ \"./foundation.util.nest\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.box */ \"./foundation.util.box\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nvar Drilldown = /*#__PURE__*/function (_Plugin) {\n  _inherits(Drilldown, _Plugin);\n\n  var _super = _createSuper(Drilldown);\n\n  function Drilldown() {\n    _classCallCheck(this, Drilldown);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Drilldown, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of a drilldown menu.\n     * @class\n     * @name Drilldown\n     * @param {jQuery} element - jQuery object to make into an accordion menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Drilldown.defaults, this.$element.data(), options);\n      this.className = 'Drilldown'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Drilldown', {\n        'ENTER': 'open',\n        'SPACE': 'open',\n        'ARROW_RIGHT': 'next',\n        'ARROW_UP': 'up',\n        'ARROW_DOWN': 'down',\n        'ARROW_LEFT': 'previous',\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the drilldown by creating jQuery collections of elements\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Feather(this.$element, 'drilldown');\n\n      if (this.options.autoApplyClass) {\n        this.$element.addClass('drilldown');\n      }\n\n      this.$element.attr({\n        'aria-multiselectable': false\n      });\n      this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n      this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n      this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a'); // Set the main menu as current by default (unless a submenu is selected)\n      // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n\n      this.$currentMenu = this.$element;\n      this.$element.attr('data-mutate', this.$element.attr('data-drilldown') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'drilldown'));\n\n      this._prepareMenu();\n\n      this._registerEvents();\n\n      this._keyboardEvents();\n    }\n    /**\n     * prepares drilldown menu by setting attributes to links and elements\n     * sets a min height to prevent content jumping\n     * wraps the element if not already wrapped\n     * @private\n     * @function\n     */\n\n  }, {\n    key: \"_prepareMenu\",\n    value: function _prepareMenu() {\n      var _this = this; // if(!this.options.holdOpen){\n      //   this._menuLinkEvents();\n      // }\n\n\n      this.$submenuAnchors.each(function () {\n        var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        var $sub = $link.parent();\n\n        if (_this.options.parentLink) {\n          $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"none\"></li>');\n        }\n\n        $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n        $link.children('[data-submenu]').attr({\n          'aria-hidden': true,\n          'tabindex': 0,\n          'role': 'group'\n        });\n\n        _this._events($link);\n      });\n      this.$submenus.each(function () {\n        var $menu = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $back = $menu.find('.js-drilldown-back');\n\n        if (!$back.length) {\n          switch (_this.options.backButtonPosition) {\n            case \"bottom\":\n              $menu.append(_this.options.backButton);\n              break;\n\n            case \"top\":\n              $menu.prepend(_this.options.backButton);\n              break;\n\n            default:\n              console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n          }\n        }\n\n        _this._back($menu);\n      });\n      this.$submenus.addClass('invisible');\n\n      if (!this.options.autoHeight) {\n        this.$submenus.addClass('drilldown-submenu-cover-previous');\n      } // create a wrapper on element if it doesn't exist.\n\n\n      if (!this.$element.parent().hasClass('is-drilldown')) {\n        this.$wrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.wrapper).addClass('is-drilldown');\n        if (this.options.animateHeight) this.$wrapper.addClass('animate-height');\n        this.$element.wrap(this.$wrapper);\n      } // set wrapper\n\n\n      this.$wrapper = this.$element.parent();\n      this.$wrapper.css(this._getMaxDims());\n    }\n  }, {\n    key: \"_resize\",\n    value: function _resize() {\n      this.$wrapper.css({\n        'max-width': 'none',\n        'min-height': 'none'\n      }); // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n\n      this.$wrapper.css(this._getMaxDims());\n    }\n    /**\n     * Adds event handlers to elements in the menu.\n     * @function\n     * @private\n     * @param {jQuery} $elem - the current menu item to add handlers to.\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events($elem) {\n      var _this = this;\n\n      $elem.off('click.zf.drilldown').on('click.zf.drilldown', function (e) {\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')) {\n          e.preventDefault();\n        } // if(e.target !== e.currentTarget.firstElementChild){\n        //   return false;\n        // }\n\n\n        _this._show($elem.parent('li'));\n\n        if (_this.options.closeOnClick) {\n          var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n          $body.off('.zf.drilldown').on('click.zf.drilldown', function (ev) {\n            if (ev.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], ev.target)) {\n              return;\n            }\n\n            ev.preventDefault();\n\n            _this._hideAll();\n\n            $body.off('.zf.drilldown');\n          });\n        }\n      });\n    }\n    /**\n     * Adds event handlers to the menu element.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_registerEvents\",\n    value: function _registerEvents() {\n      if (this.options.scrollTop) {\n        this._bindHandler = this._scrollTop.bind(this);\n        this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown', this._bindHandler);\n      }\n\n      this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n    }\n    /**\n     * Scroll to Top of Element or data-scroll-top-element\n     * @function\n     * @fires Drilldown#scrollme\n     */\n\n  }, {\n    key: \"_scrollTop\",\n    value: function _scrollTop() {\n      var _this = this;\n\n      var $scrollTopElement = _this.options.scrollTopElement !== '' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this.options.scrollTopElement) : _this.$element,\n          scrollPos = parseInt($scrollTopElement.offset().top + _this.options.scrollTopOffset, 10);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').stop(true).animate({\n        scrollTop: scrollPos\n      }, _this.options.animationDuration, _this.options.animationEasing, function () {\n        /**\n          * Fires after the menu has scrolled\n          * @event Drilldown#scrollme\n          */\n        if (this === jquery__WEBPACK_IMPORTED_MODULE_0___default()('html')[0]) _this.$element.trigger('scrollme.zf.drilldown');\n      });\n    }\n    /**\n     * Adds keydown event listener to `li`'s in the menu.\n     * @private\n     */\n\n  }, {\n    key: \"_keyboardEvents\",\n    value: function _keyboardEvents() {\n      var _this = this;\n\n      this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function (e) {\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $elements = $element.parent('li').parent('ul').children('li').children('a'),\n            $prevElement,\n            $nextElement;\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            $prevElement = $elements.eq(Math.max(0, i - 1));\n            $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));\n            return;\n          }\n        });\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Drilldown', {\n          next: function next() {\n            if ($element.is(_this.$submenuAnchors)) {\n              _this._show($element.parent('li'));\n\n              $element.parent('li').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n                $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n              });\n              return true;\n            }\n          },\n          previous: function previous() {\n            _this._hide($element.parent('li').parent('ul'));\n\n            $element.parent('li').parent('ul').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n              setTimeout(function () {\n                $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n              }, 1);\n            });\n            return true;\n          },\n          up: function up() {\n            $prevElement.focus(); // Don't tap focus on first element in root ul\n\n            return !$element.is(_this.$element.find('> li:first-child > a'));\n          },\n          down: function down() {\n            $nextElement.focus(); // Don't tap focus on last element in root ul\n\n            return !$element.is(_this.$element.find('> li:last-child > a'));\n          },\n          close: function close() {\n            // Don't close on element in root ul\n            if (!$element.is(_this.$element.find('> li > a'))) {\n              _this._hide($element.parent().parent());\n\n              $element.parent().parent().siblings('a').focus();\n            }\n          },\n          open: function open() {\n            if (_this.options.parentLink && $element.attr('href')) {\n              // Link with href\n              return false;\n            } else if (!$element.is(_this.$menuItems)) {\n              // not menu item means back button\n              _this._hide($element.parent('li').parent('ul'));\n\n              $element.parent('li').parent('ul').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n                setTimeout(function () {\n                  $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n                }, 1);\n              });\n              return true;\n            } else if ($element.is(_this.$submenuAnchors)) {\n              // Sub menu item\n              _this._show($element.parent('li'));\n\n              $element.parent('li').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n                $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n              });\n              return true;\n            }\n          },\n          handled: function handled(preventDefault) {\n            if (preventDefault) {\n              e.preventDefault();\n            }\n          }\n        });\n      }); // end keyboardAccess\n    }\n    /**\n     * Closes all open elements, and returns to root menu.\n     * @function\n     * @fires Drilldown#close\n     * @fires Drilldown#closed\n     */\n\n  }, {\n    key: \"_hideAll\",\n    value: function _hideAll() {\n      var _this2 = this;\n\n      var $elem = this.$element.find('.is-drilldown-submenu.is-active');\n      $elem.addClass('is-closing');\n      $elem.parent().closest('ul').removeClass('invisible');\n\n      if (this.options.autoHeight) {\n        var calcHeight = $elem.parent().closest('ul').data('calcHeight');\n        this.$wrapper.css({\n          height: calcHeight\n        });\n      }\n      /**\n       * Fires when the menu is closing.\n       * @event Drilldown#close\n       */\n\n\n      this.$element.trigger('close.zf.drilldown');\n      $elem.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($elem), function () {\n        $elem.removeClass('is-active is-closing');\n        /**\n         * Fires when the menu is fully closed.\n         * @event Drilldown#closed\n         */\n\n        _this2.$element.trigger('closed.zf.drilldown');\n      });\n    }\n    /**\n     * Adds event listener for each `back` button, and closes open menus.\n     * @function\n     * @fires Drilldown#back\n     * @param {jQuery} $elem - the current sub-menu to add `back` event.\n     */\n\n  }, {\n    key: \"_back\",\n    value: function _back($elem) {\n      var _this = this;\n\n      $elem.off('click.zf.drilldown');\n      $elem.children('.js-drilldown-back').on('click.zf.drilldown', function () {\n        _this._hide($elem); // If there is a parent submenu, call show\n\n\n        var parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n\n        if (parentSubMenu.length) {\n          _this._show(parentSubMenu);\n        } else {\n          _this.$currentMenu = _this.$element;\n        }\n      });\n    }\n    /**\n     * Adds event listener to menu items w/o submenus to close open menus on click.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_menuLinkEvents\",\n    value: function _menuLinkEvents() {\n      var _this = this;\n\n      this.$menuItems.not('.is-drilldown-submenu-parent').off('click.zf.drilldown').on('click.zf.drilldown', function () {\n        setTimeout(function () {\n          _this._hideAll();\n        }, 0);\n      });\n    }\n    /**\n     * Sets the CSS classes for submenu to show it.\n     * @function\n     * @private\n     * @param {jQuery} $elem - the target submenu (`ul` tag)\n     * @param {boolean} trigger - trigger drilldown event\n     */\n\n  }, {\n    key: \"_setShowSubMenuClasses\",\n    value: function _setShowSubMenuClasses($elem, trigger) {\n      $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n      $elem.parent('li').attr('aria-expanded', true);\n\n      if (trigger === true) {\n        this.$element.trigger('open.zf.drilldown', [$elem]);\n      }\n    }\n    /**\n     * Sets the CSS classes for submenu to hide it.\n     * @function\n     * @private\n     * @param {jQuery} $elem - the target submenu (`ul` tag)\n     * @param {boolean} trigger - trigger drilldown event\n     */\n\n  }, {\n    key: \"_setHideSubMenuClasses\",\n    value: function _setHideSubMenuClasses($elem, trigger) {\n      $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n      $elem.parent('li').attr('aria-expanded', false);\n\n      if (trigger === true) {\n        $elem.trigger('hide.zf.drilldown', [$elem]);\n      }\n    }\n    /**\n     * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n     * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n     * @function\n     * @fires Drilldown#open\n     * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n     * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n     */\n\n  }, {\n    key: \"_showMenu\",\n    value: function _showMenu($elem, autoFocus) {\n      var _this = this; // Reset drilldown\n\n\n      var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n      $expandedSubmenus.each(function () {\n        _this._setHideSubMenuClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n      }); // Save the menu as the currently displayed one.\n\n      this.$currentMenu = $elem; // If target menu is root, focus first link & exit\n\n      if ($elem.is('[data-drilldown]')) {\n        if (autoFocus === true) $elem.find('li > a').first().focus();\n        if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n        return;\n      } // Find all submenus on way to root incl. the element itself\n\n\n      var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]'); // Open target menu and all submenus on its way to root\n\n      $submenus.each(function (index) {\n        // Update height of first child (target menu) if autoHeight option true\n        if (index === 0 && _this.options.autoHeight) {\n          _this.$wrapper.css('height', jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('calcHeight'));\n        }\n\n        var isLastChild = index === $submenus.length - 1; // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n        // Last child makes sure the event gets always triggered even if going through several menus\n\n        if (isLastChild === true) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)), function () {\n            if (autoFocus === true) {\n              $elem.find('li > a').first().focus();\n            }\n          });\n        }\n\n        _this._setShowSubMenuClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), isLastChild);\n      });\n    }\n    /**\n     * Opens a submenu.\n     * @function\n     * @fires Drilldown#open\n     * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n     */\n\n  }, {\n    key: \"_show\",\n    value: function _show($elem) {\n      var $submenu = $elem.children('[data-submenu]');\n      $elem.attr('aria-expanded', true);\n      this.$currentMenu = $submenu; //hide drilldown parent menu when submenu is open\n      // this removes it from the dom so that the tab key will take the user to the next visible element\n\n      $elem.parent().closest('ul').addClass('invisible'); // add visible class to submenu to override invisible class above\n\n      $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n      if (this.options.autoHeight) {\n        this.$wrapper.css({\n          height: $submenu.data('calcHeight')\n        });\n      }\n      /**\n       * Fires when the submenu has opened.\n       * @event Drilldown#open\n       */\n\n\n      this.$element.trigger('open.zf.drilldown', [$elem]);\n    }\n    /**\n     * Hides a submenu\n     * @function\n     * @fires Drilldown#hide\n     * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n     */\n\n  }, {\n    key: \"_hide\",\n    value: function _hide($elem) {\n      if (this.options.autoHeight) this.$wrapper.css({\n        height: $elem.parent().closest('ul').data('calcHeight')\n      });\n      $elem.parent().closest('ul').removeClass('invisible');\n      $elem.parent('li').attr('aria-expanded', false);\n      $elem.attr('aria-hidden', true);\n      $elem.addClass('is-closing').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($elem), function () {\n        $elem.removeClass('is-active is-closing visible');\n        $elem.blur().addClass('invisible');\n      });\n      /**\n       * Fires when the submenu has closed.\n       * @event Drilldown#hide\n       */\n\n      $elem.trigger('hide.zf.drilldown', [$elem]);\n    }\n    /**\n     * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n     * Prevents content jumping.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_getMaxDims\",\n    value: function _getMaxDims() {\n      var maxHeight = 0,\n          result = {},\n          _this = this; // Recalculate menu heights and total max height\n\n\n      this.$submenus.add(this.$element).each(function () {\n        var height = _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__[\"Box\"].GetDimensions(this).height;\n        maxHeight = height > maxHeight ? height : maxHeight;\n\n        if (_this.options.autoHeight) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('calcHeight', height);\n        }\n      });\n      if (this.options.autoHeight) result.height = this.$currentMenu.data('calcHeight');else result['min-height'] = \"\".concat(maxHeight, \"px\");\n      result['max-width'] = \"\".concat(this.$element[0].getBoundingClientRect().width, \"px\");\n      return result;\n    }\n    /**\n     * Destroys the Drilldown Menu\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('.zf.drilldown');\n      if (this.options.scrollTop) this.$element.off('.zf.drilldown', this._bindHandler);\n\n      this._hideAll();\n\n      this.$element.off('mutateme.zf.trigger');\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Burn(this.$element, 'drilldown');\n      this.$element.unwrap().find('.js-drilldown-back, .is-submenu-parent-item').remove().end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd').end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n      this.$submenuAnchors.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off('.zf.drilldown');\n      });\n      this.$element.find('[data-is-parent-link]').detach();\n      this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n      this.$element.find('a').each(function () {\n        var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        $link.removeAttr('tabindex');\n\n        if ($link.data('savedHref')) {\n          $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n        } else {\n          return;\n        }\n      });\n    }\n  }]);\n\n  return Drilldown;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n\nDrilldown.defaults = {\n  /**\n   * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n   * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoApplyClass: true,\n\n  /**\n   * Markup used for JS generated back button. Prepended  or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n   */\n  backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n\n  /**\n   * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default top\n   */\n  backButtonPosition: 'top',\n\n  /**\n   * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n   * @option\n   * @type {string}\n   * @default '<div></div>'\n   */\n  wrapper: '<div></div>',\n\n  /**\n   * Adds the parent link to the submenu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  parentLink: false,\n\n  /**\n   * Allow the menu to return to root list on body click.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n\n  /**\n   * Allow the menu to auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoHeight: false,\n\n  /**\n   * Animate the auto adjust height.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animateHeight: false,\n\n  /**\n   * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  scrollTop: false,\n\n  /**\n   * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  scrollTopElement: '',\n\n  /**\n   * ScrollTop offset\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  scrollTopOffset: 0,\n\n  /**\n   * Scroll animation duration\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n\n  /**\n   * Scroll animation easing. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @see {@link https://api.jquery.com/animate|JQuery animate}\n   * @default 'swing'\n   */\n  animationEasing: 'swing' // holdOpen: false\n\n};\n\n\n/***/ }),\n\n/***/ 3:\n/*!**********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.drilldown.js ***!\n  \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.drilldown.js */\"./js/entries/plugins/foundation.drilldown.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.drilldown.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","./js/entries/plugins/foundation.drilldown.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.drilldown.js","Drilldown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Feather","autoApplyClass","addClass","attr","aria-multiselectable","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","aria-hidden","tabindex","role","_events","$menu","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","max-width","min-height","$elem","off","on","$body","parentsUntil","preventDefault","_show","closeOnClick","ev","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","bind","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$prevElement","$nextElement","$elements","is","eq","Math","max","min","handleKey","next","one","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","calcHeight","_this2","closest","removeClass","height","parentSubMenu","autoFocus","_setHideSubMenuClasses","index","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","GetDimensions","concat","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","3","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index a2577cac9a8f7fc14ab89d93bfdbee6ae8e2541a..3288fc6727aeb1374e89ac6eb743bbcc8113283e 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.dropdown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.positionable.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Dropdown","Positionable","element","options","this","$element","$","extend","defaults","data","className","Touch","init","Triggers","_init","Keyboard","register","ENTER","SPACE","ESCAPE","$id","attr","$anchors","concat","length","aria-controls","data-is-focus","data-yeti-box","aria-haspopup","aria-expanded","_setCurrentAnchor","first","parentClass","$parent","parents","$currentAnchor","GetYoDigits","aria-hidden","data-resize","_get","_getPrototypeOf","prototype","call","_events","position","match","horizontalPosition","exec","removeClass","alignment","addClass","el","_this","hasTouch","ontouchstart","on","open.zf.trigger","open","bind","close.zf.trigger","close","toggle.zf.trigger","toggle","resizeme.zf.trigger","_setPosition","off","e","forceFollow","hover","hasClass","preventDefault","bodyData","whatinput","timeout","setTimeout","hoverDelay","Object","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","clearTimeout","ignoreMousedisappear","visibleFocusableElements","handleKey","$target","is","focus","value","$body","jquery__WEBPACK_IMPORTED_MODULE_0___default","document","body","not","target","find","$focusable","autoFocus","eq","_addBodyHandler","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","trapFocus","trigger","releaseFocus","hide","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","top","bottom","currentIdx","item","array","Plugin","_getDefaultPosition","originalPosition","_getDefaultAlignment","originalAlignment","nextItem","_realign","_addTriedPosition","triedPositions","push","isExhausted","_alignmentsExhausted","POSITIONS","i","vOffset","hOffset","$anchor","allowOverlap","minOverlap","overlap","_positionsExhausted","Box","minCoordinates","offset","_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__","GetExplicitOffsets","_getVOffset","_getHOffset","triggers","forEach","type","id","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","timer","debounce","listener","args","apply","openListener","closeListener","toggleListener","closeableListener","Motion","animateOut","animation","fadeOut","toggleFocusListener","triggerHandler","$elem","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","namespace","pluginId","plugins","yetiBoxes","plugNames","pluginName","_typeof","console","error","listeners","map","name","debounceGlobalListener","listeningElementsMutation","mutationRecordsList","pageYOffset","attributeName","closest","elementObserver","observe","childList","characterData","subtree","attributeFilter","$document","addResizeListener","addScrollListener","addClosemeListener","onLoad","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","a","triggersInitialized","addGlobalListeners","IHearYou","installedModules","m","modules","c","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","key","n","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.dropdown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Dropdown } from '../../foundation.dropdown';\nFoundation.plugin(Dropdown, 'Dropdown');\n\nexport { Foundation, Dropdown };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n  /**\n   * Creates a new instance of a dropdown.\n   * @class\n   * @name Dropdown\n   * @param {jQuery} element - jQuery object to make into a dropdown.\n   *        Object should be of the dropdown panel, rather than its anchor.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n    this.className = 'Dropdown'; // ie9 back compat\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Dropdown', {\n      'ENTER': 'toggle',\n      'SPACE': 'toggle',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n   * @function\n   * @private\n   */\n  _init() {\n    var $id = this.$element.attr('id');\n\n    this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n    this.$anchors.attr({\n      'aria-controls': $id,\n      'data-is-focus': false,\n      'data-yeti-box': $id,\n      'aria-haspopup': true,\n      'aria-expanded': false\n    });\n\n    this._setCurrentAnchor(this.$anchors.first());\n\n    if(this.options.parentClass){\n      this.$parent = this.$element.parents('.' + this.options.parentClass);\n    }else{\n      this.$parent = null;\n    }\n\n    // Set [aria-labelledby] on the Dropdown if it is not set\n    if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n      // Get the anchor ID or create one\n      if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n        this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n      }\n\n      this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n    }\n\n    this.$element.attr({\n      'aria-hidden': 'true',\n      'data-yeti-box': $id,\n      'data-resize': $id,\n    });\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n    if(position) {\n      return position[0];\n    } else {\n      return 'bottom'\n    }\n  }\n\n  _getDefaultAlignment() {\n    // handle legacy float approach\n    var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n    if(horizontalPosition) {\n      return horizontalPosition[1];\n    }\n\n    return super._getDefaultAlignment();\n  }\n\n\n\n  /**\n   * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n   * Recursively calls itself if a collision is detected, with a new position class.\n   * @function\n   * @private\n   */\n  _setPosition() {\n    this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n    super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n    this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n  }\n\n  /**\n   * Make it a current anchor.\n   * Current anchor as the reference for the position of Dropdown panes.\n   * @param {HTML} el - DOM element of the anchor.\n   * @function\n   * @private\n   */\n  _setCurrentAnchor(el) {\n    this.$currentAnchor = $(el);\n  }\n\n  /**\n   * Adds event listeners to the element utilizing the triggers utility library.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': this._setPosition.bind(this)\n    });\n\n    this.$anchors.off('click.zf.trigger')\n      .on('click.zf.trigger', function(e) {\n        _this._setCurrentAnchor(this);\n\n        if (\n          // if forceFollow false, always prevent default action\n          (_this.options.forceFollow === false) ||\n          // if forceFollow true and hover option true, only prevent default action on 1st click\n          // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n          (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n        ) {\n          e.preventDefault();\n        }\n    });\n\n    if(this.options.hover){\n      this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n      .on('mouseenter.zf.dropdown', function(){\n        _this._setCurrentAnchor(this);\n\n        var bodyData = $('body').data();\n        if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function(){\n            _this.open();\n            _this.$anchors.data('hover', true);\n          }, _this.options.hoverDelay);\n        }\n      }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function(){\n          _this.close();\n          _this.$anchors.data('hover', false);\n        }, _this.options.hoverDelay);\n      }));\n      if(this.options.hoverPane){\n        this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n            .on('mouseenter.zf.dropdown', function(){\n              clearTimeout(_this.timeout);\n            }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n              clearTimeout(_this.timeout);\n              _this.timeout = setTimeout(function(){\n                _this.close();\n                _this.$anchors.data('hover', false);\n              }, _this.options.hoverDelay);\n            }));\n      }\n    }\n    this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n      var $target = $(this),\n        visibleFocusableElements = Keyboard.findFocusable(_this.$element);\n\n      Keyboard.handleKey(e, 'Dropdown', {\n        open: function() {\n          if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n            _this.open();\n            _this.$element.attr('tabindex', -1).focus();\n            e.preventDefault();\n          }\n        },\n        close: function() {\n          _this.close();\n          _this.$anchors.focus();\n        }\n      });\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n     var $body = $(document.body).not(this.$element),\n         _this = this;\n     $body.off('click.zf.dropdown tap.zf.dropdown')\n          .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n            if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n              return;\n            }\n            if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n              return;\n            }\n            _this.close();\n            $body.off('click.zf.dropdown tap.zf.dropdown');\n          });\n  }\n\n  /**\n   * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n   * @function\n   * @fires Dropdown#closeme\n   * @fires Dropdown#show\n   */\n  open() {\n    // var _this = this;\n    /**\n     * Fires to close other open dropdowns, typically when dropdown is opening\n     * @event Dropdown#closeme\n     */\n    this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n    this.$anchors.addClass('hover')\n        .attr({'aria-expanded': true});\n    // this.$element/*.show()*/;\n\n    this.$element.addClass('is-opening');\n    this._setPosition();\n    this.$element.removeClass('is-opening').addClass('is-open')\n        .attr({'aria-hidden': false});\n\n    if(this.options.autoFocus){\n      var $focusable = Keyboard.findFocusable(this.$element);\n      if($focusable.length){\n        $focusable.eq(0).focus();\n      }\n    }\n\n    if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n    if (this.options.trapFocus) {\n      Keyboard.trapFocus(this.$element);\n    }\n\n    /**\n     * Fires once the dropdown is visible.\n     * @event Dropdown#show\n     */\n    this.$element.trigger('show.zf.dropdown', [this.$element]);\n  }\n\n  /**\n   * Closes the open dropdown pane.\n   * @function\n   * @fires Dropdown#hide\n   */\n  close() {\n    if(!this.$element.hasClass('is-open')){\n      return false;\n    }\n    this.$element.removeClass('is-open')\n        .attr({'aria-hidden': true});\n\n    this.$anchors.removeClass('hover')\n        .attr('aria-expanded', false);\n\n    /**\n     * Fires once the dropdown is no longer visible.\n     * @event Dropdown#hide\n     */\n    this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n    if (this.options.trapFocus) {\n      Keyboard.releaseFocus(this.$element);\n    }\n  }\n\n  /**\n   * Toggles the dropdown pane's visibility.\n   * @function\n   */\n  toggle() {\n    if(this.$element.hasClass('is-open')){\n      if(this.$anchors.data('hover')) return;\n      this.close();\n    }else{\n      this.open();\n    }\n  }\n\n  /**\n   * Destroys the dropdown.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger').hide();\n    this.$anchors.off('.zf.dropdown');\n    $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n  }\n}\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {Dropdown};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.dropdown.min.js","sources":["foundation.dropdown.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 4);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.box\":\n/*!********************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"} ***!\n  \\********************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./foundation.util.touch\":\n/*!****************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n  \\****************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.dropdown.js\":\n/*!***************************************************!*\\\n  !*** ./js/entries/plugins/foundation.dropdown.js ***!\n  \\***************************************************/\n/*! exports provided: Foundation, Dropdown */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.dropdown */ \"./js/foundation.dropdown.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Dropdown\", function() { return _foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__[\"Dropdown\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__[\"Dropdown\"], 'Dropdown');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.dropdown.js\":\n/*!***********************************!*\\\n  !*** ./js/foundation.dropdown.js ***!\n  \\***********************************/\n/*! exports provided: Dropdown */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Dropdown\", function() { return Dropdown; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_positionable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.positionable */ \"./js/foundation.positionable.js\");\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.touch */ \"./foundation.util.touch\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\n\nvar Dropdown = /*#__PURE__*/function (_Positionable) {\n  _inherits(Dropdown, _Positionable);\n\n  var _super = _createSuper(Dropdown);\n\n  function Dropdown() {\n    _classCallCheck(this, Dropdown);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Dropdown, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of a dropdown.\n     * @class\n     * @name Dropdown\n     * @param {jQuery} element - jQuery object to make into a dropdown.\n     *        Object should be of the dropdown panel, rather than its anchor.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Dropdown.defaults, this.$element.data(), options);\n      this.className = 'Dropdown'; // ie9 back compat\n      // Touch and Triggers init are idempotent, just need to make sure they are initialized\n\n      _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Dropdown', {\n        'ENTER': 'toggle',\n        'SPACE': 'toggle',\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var $id = this.$element.attr('id');\n      this.$anchors = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat($id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat($id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat($id, \"\\\"]\"));\n      this.$anchors.attr({\n        'aria-controls': $id,\n        'data-is-focus': false,\n        'data-yeti-box': $id,\n        'aria-haspopup': true,\n        'aria-expanded': false\n      });\n\n      this._setCurrentAnchor(this.$anchors.first());\n\n      if (this.options.parentClass) {\n        this.$parent = this.$element.parents('.' + this.options.parentClass);\n      } else {\n        this.$parent = null;\n      } // Set [aria-labelledby] on the Dropdown if it is not set\n\n\n      if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n        // Get the anchor ID or create one\n        if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n          this.$currentAnchor.attr('id', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'dd-anchor'));\n        }\n\n        this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n      }\n\n      this.$element.attr({\n        'aria-hidden': 'true',\n        'data-yeti-box': $id,\n        'data-resize': $id\n      });\n\n      _get(_getPrototypeOf(Dropdown.prototype), \"_init\", this).call(this);\n\n      this._events();\n    }\n  }, {\n    key: \"_getDefaultPosition\",\n    value: function _getDefaultPosition() {\n      // handle legacy classnames\n      var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n\n      if (position) {\n        return position[0];\n      } else {\n        return 'bottom';\n      }\n    }\n  }, {\n    key: \"_getDefaultAlignment\",\n    value: function _getDefaultAlignment() {\n      // handle legacy float approach\n      var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n\n      if (horizontalPosition) {\n        return horizontalPosition[1];\n      }\n\n      return _get(_getPrototypeOf(Dropdown.prototype), \"_getDefaultAlignment\", this).call(this);\n    }\n    /**\n     * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n     * Recursively calls itself if a collision is detected, with a new position class.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_setPosition\",\n    value: function _setPosition() {\n      this.$element.removeClass(\"has-position-\".concat(this.position, \" has-alignment-\").concat(this.alignment));\n\n      _get(_getPrototypeOf(Dropdown.prototype), \"_setPosition\", this).call(this, this.$currentAnchor, this.$element, this.$parent);\n\n      this.$element.addClass(\"has-position-\".concat(this.position, \" has-alignment-\").concat(this.alignment));\n    }\n    /**\n     * Make it a current anchor.\n     * Current anchor as the reference for the position of Dropdown panes.\n     * @param {HTML} el - DOM element of the anchor.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_setCurrentAnchor\",\n    value: function _setCurrentAnchor(el) {\n      this.$currentAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el);\n    }\n    /**\n     * Adds event listeners to the element utilizing the triggers utility library.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this,\n          hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined';\n\n      this.$element.on({\n        'open.zf.trigger': this.open.bind(this),\n        'close.zf.trigger': this.close.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this),\n        'resizeme.zf.trigger': this._setPosition.bind(this)\n      });\n      this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function (e) {\n        _this._setCurrentAnchor(this);\n\n        if ( // if forceFollow false, always prevent default action\n        _this.options.forceFollow === false || // if forceFollow true and hover option true, only prevent default action on 1st click\n        // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n        hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false) {\n          e.preventDefault();\n        }\n      });\n\n      if (this.options.hover) {\n        this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {\n          _this._setCurrentAnchor(this);\n\n          var bodyData = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').data();\n\n          if (typeof bodyData.whatinput === 'undefined' || bodyData.whatinput === 'mouse') {\n            clearTimeout(_this.timeout);\n            _this.timeout = setTimeout(function () {\n              _this.open();\n\n              _this.$anchors.data('hover', true);\n            }, _this.options.hoverDelay);\n          }\n        }).on('mouseleave.zf.dropdown', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"ignoreMousedisappear\"])(function () {\n          clearTimeout(_this.timeout);\n          _this.timeout = setTimeout(function () {\n            _this.close();\n\n            _this.$anchors.data('hover', false);\n          }, _this.options.hoverDelay);\n        }));\n\n        if (this.options.hoverPane) {\n          this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {\n            clearTimeout(_this.timeout);\n          }).on('mouseleave.zf.dropdown', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"ignoreMousedisappear\"])(function () {\n            clearTimeout(_this.timeout);\n            _this.timeout = setTimeout(function () {\n              _this.close();\n\n              _this.$anchors.data('hover', false);\n            }, _this.options.hoverDelay);\n          }));\n        }\n      }\n\n      this.$anchors.add(this.$element).on('keydown.zf.dropdown', function (e) {\n        var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Dropdown', {\n          open: function open() {\n            if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n              _this.open();\n\n              _this.$element.attr('tabindex', -1).focus();\n\n              e.preventDefault();\n            }\n          },\n          close: function close() {\n            _this.close();\n\n            _this.$anchors.focus();\n          }\n        });\n      });\n    }\n    /**\n     * Adds an event handler to the body to close any dropdowns on a click.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_addBodyHandler\",\n    value: function _addBodyHandler() {\n      var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).not(this.$element),\n          _this = this;\n\n      $body.off('click.zf.dropdown tap.zf.dropdown').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n        if (_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n          return;\n        }\n\n        if (_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n          return;\n        }\n\n        _this.close();\n\n        $body.off('click.zf.dropdown tap.zf.dropdown');\n      });\n    }\n    /**\n     * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n     * @function\n     * @fires Dropdown#closeme\n     * @fires Dropdown#show\n     */\n\n  }, {\n    key: \"open\",\n    value: function open() {\n      // var _this = this;\n\n      /**\n       * Fires to close other open dropdowns, typically when dropdown is opening\n       * @event Dropdown#closeme\n       */\n      this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n      this.$anchors.addClass('hover').attr({\n        'aria-expanded': true\n      }); // this.$element/*.show()*/;\n\n      this.$element.addClass('is-opening');\n\n      this._setPosition();\n\n      this.$element.removeClass('is-opening').addClass('is-open').attr({\n        'aria-hidden': false\n      });\n\n      if (this.options.autoFocus) {\n        var $focusable = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].findFocusable(this.$element);\n\n        if ($focusable.length) {\n          $focusable.eq(0).focus();\n        }\n      }\n\n      if (this.options.closeOnClick) {\n        this._addBodyHandler();\n      }\n\n      if (this.options.trapFocus) {\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].trapFocus(this.$element);\n      }\n      /**\n       * Fires once the dropdown is visible.\n       * @event Dropdown#show\n       */\n\n\n      this.$element.trigger('show.zf.dropdown', [this.$element]);\n    }\n    /**\n     * Closes the open dropdown pane.\n     * @function\n     * @fires Dropdown#hide\n     */\n\n  }, {\n    key: \"close\",\n    value: function close() {\n      if (!this.$element.hasClass('is-open')) {\n        return false;\n      }\n\n      this.$element.removeClass('is-open').attr({\n        'aria-hidden': true\n      });\n      this.$anchors.removeClass('hover').attr('aria-expanded', false);\n      /**\n       * Fires once the dropdown is no longer visible.\n       * @event Dropdown#hide\n       */\n\n      this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n      if (this.options.trapFocus) {\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].releaseFocus(this.$element);\n      }\n    }\n    /**\n     * Toggles the dropdown pane's visibility.\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.$element.hasClass('is-open')) {\n        if (this.$anchors.data('hover')) return;\n        this.close();\n      } else {\n        this.open();\n      }\n    }\n    /**\n     * Destroys the dropdown.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.trigger').hide();\n      this.$anchors.off('.zf.dropdown');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdown tap.zf.dropdown');\n    }\n  }]);\n\n  return Dropdown;\n}(_foundation_positionable__WEBPACK_IMPORTED_MODULE_3__[\"Positionable\"]);\n\nDropdown.defaults = {\n  /**\n   * Class that designates bounding container of Dropdown (default: window)\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  parentClass: null,\n\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 250\n   */\n  hoverDelay: 250,\n\n  /**\n   * Allow submenus to open on hover events\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hover: false,\n\n  /**\n   * Don't close dropdown when hovering over dropdown pane\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  hoverPane: false,\n\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n\n  /**\n   * Number of pixels between the dropdown pane and the triggering element on open.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n\n  /**\n   * Position of dropdown. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n\n  /**\n   * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n\n  /**\n   * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false,\n\n  /**\n   * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows a click on the body to close the dropdown.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  closeOnClick: false,\n\n  /**\n   * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.positionable.js\":\n/*!***************************************!*\\\n  !*** ./js/foundation.positionable.js ***!\n  \\***************************************/\n/*! exports provided: Positionable */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Positionable\", function() { return Positionable; });\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.util.box */ \"./foundation.util.box\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar POSITIONS = ['left', 'right', 'top', 'bottom'];\nvar VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nvar HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\nvar ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n};\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n\n  if (currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\nvar Positionable = /*#__PURE__*/function (_Plugin) {\n  _inherits(Positionable, _Plugin);\n\n  var _super = _createSuper(Positionable);\n\n  function Positionable() {\n    _classCallCheck(this, Positionable);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Positionable, [{\n    key: \"_init\",\n    value:\n    /**\n     * Abstract class encapsulating the tether-like explicit positioning logic\n     * including repositioning based on overlap.\n     * Expects classes to define defaults for vOffset, hOffset, position,\n     * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n     * extending the defaults, or (for now recommended due to the way docs are\n     * generated) by explicitly declaring them.\n     *\n     **/\n    function _init() {\n      this.triedPositions = {};\n      this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n      this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n      this.originalPosition = this.position;\n      this.originalAlignment = this.alignment;\n    }\n  }, {\n    key: \"_getDefaultPosition\",\n    value: function _getDefaultPosition() {\n      return 'bottom';\n    }\n  }, {\n    key: \"_getDefaultAlignment\",\n    value: function _getDefaultAlignment() {\n      switch (this.position) {\n        case 'bottom':\n        case 'top':\n          return Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])() ? 'right' : 'left';\n\n        case 'left':\n        case 'right':\n          return 'bottom';\n      }\n    }\n    /**\n     * Adjusts the positionable possible positions by iterating through alignments\n     * and positions.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_reposition\",\n    value: function _reposition() {\n      if (this._alignmentsExhausted(this.position)) {\n        this.position = nextItem(this.position, POSITIONS);\n        this.alignment = ALIGNMENTS[this.position][0];\n      } else {\n        this._realign();\n      }\n    }\n    /**\n     * Adjusts the dropdown pane possible positions by iterating through alignments\n     * on the current position.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_realign\",\n    value: function _realign() {\n      this._addTriedPosition(this.position, this.alignment);\n\n      this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position]);\n    }\n  }, {\n    key: \"_addTriedPosition\",\n    value: function _addTriedPosition(position, alignment) {\n      this.triedPositions[position] = this.triedPositions[position] || [];\n      this.triedPositions[position].push(alignment);\n    }\n  }, {\n    key: \"_positionsExhausted\",\n    value: function _positionsExhausted() {\n      var isExhausted = true;\n\n      for (var i = 0; i < POSITIONS.length; i++) {\n        isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n      }\n\n      return isExhausted;\n    }\n  }, {\n    key: \"_alignmentsExhausted\",\n    value: function _alignmentsExhausted(position) {\n      return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n    } // When we're trying to center, we don't want to apply offset that's going to\n    // take us just off center, so wrap around to return 0 for the appropriate\n    // offset in those alignments.  TODO: Figure out if we want to make this\n    // configurable behavior... it feels more intuitive, especially for tooltips, but\n    // it's possible someone might actually want to start from center and then nudge\n    // slightly off.\n\n  }, {\n    key: \"_getVOffset\",\n    value: function _getVOffset() {\n      return this.options.vOffset;\n    }\n  }, {\n    key: \"_getHOffset\",\n    value: function _getHOffset() {\n      return this.options.hOffset;\n    }\n  }, {\n    key: \"_setPosition\",\n    value: function _setPosition($anchor, $element, $parent) {\n      if ($anchor.attr('aria-expanded') === 'false') {\n        return false;\n      }\n\n      if (!this.options.allowOverlap) {\n        // restore original position & alignment before checking overlap\n        this.position = this.originalPosition;\n        this.alignment = this.originalAlignment;\n      }\n\n      $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n      if (!this.options.allowOverlap) {\n        var minOverlap = 100000000; // default coordinates to how we start, in case we can't figure out better\n\n        var minCoordinates = {\n          position: this.position,\n          alignment: this.alignment\n        };\n\n        while (!this._positionsExhausted()) {\n          var overlap = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n\n          if (overlap === 0) {\n            return;\n          }\n\n          if (overlap < minOverlap) {\n            minOverlap = overlap;\n            minCoordinates = {\n              position: this.position,\n              alignment: this.alignment\n            };\n          }\n\n          this._reposition();\n\n          $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n        } // If we get through the entire loop, there was no non-overlapping\n        // position available. Pick the version with least overlap.\n\n\n        this.position = minCoordinates.position;\n        this.alignment = minCoordinates.alignment;\n        $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n    }\n  }]);\n\n  return Positionable;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 4:\n/*!*********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.dropdown.js ***!\n  \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.dropdown.js */\"./js/entries/plugins/foundation.dropdown.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.dropdown.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.motion","./foundation.util.touch","./js/entries/plugins/foundation.dropdown.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.dropdown.js","Dropdown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_positionable__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_get","property","receiver","Reflect","get","base","object","hasOwnProperty","call","_getPrototypeOf","_superPropBase","desc","getOwnPropertyDescriptor","value","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","NewTarget","Super","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","init","_init","register","ENTER","SPACE","ESCAPE","$id","attr","$anchors","concat","aria-controls","data-is-focus","data-yeti-box","aria-haspopup","aria-expanded","_setCurrentAnchor","first","parentClass","$parent","parents","$currentAnchor","aria-hidden","data-resize","_events","position","match","horizontalPosition","exec","removeClass","alignment","addClass","el","_this","hasTouch","ontouchstart","on","open.zf.trigger","open","bind","close.zf.trigger","close","toggle.zf.trigger","toggle","resizeme.zf.trigger","_setPosition","off","forceFollow","hover","hasClass","preventDefault","bodyData","whatinput","clearTimeout","timeout","setTimeout","hoverDelay","hoverPane","add","$target","handleKey","is","focus","$body","document","body","not","find","$focusable","trigger","autoFocus","findFocusable","eq","closeOnClick","_addBodyHandler","trapFocus","releaseFocus","hide","vOffset","hOffset","allowOverlap","allowBottomOverlap","./js/foundation.positionable.js","Positionable","_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","top","bottom","nextItem","item","array","currentIdx","indexOf","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","$anchor","offset","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","_reposition","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","type","split","forEach","id","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","addClosemeListener","pluginName","yetiBoxes","plugNames","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","4","jquery","installedModules","m","c","getter","toStringTag","t","mode","__esModule","ns","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 4ecd50c239a7ca5cd8fea0652ebf9ffc5d29018a..f364906e855b395c5f7e926c506eda993632c26e 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.dropdownMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.dropdownMenu.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","DropdownMenu","Plugin","element","options","this","$element","$","extend","defaults","data","className","Touch","init","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Nest","Feather","subs","find","children","addClass","$menuItems","$tabs","verticalClass","alignment","hasClass","rightClass","Rtl","parents","is","changed","_events","css","_this","hasTouch","ontouchstart","parClass","clickOpen","on","e","$elem","target","parentsUntil","concat","hasSub","hasClicked","attr","$sub","closeOnClick","forceFollow","stopImmediatePropagation","preventDefault","_hide","_show","add","closeOnClickInside","disableHoverOnTouch","disableHover","clearTimeout","setTimeout","hoverDelay","ignoreMousedisappear","autoclose","closingTime","$prevElement","$nextElement","isTab","index","$elements","siblings","each","i","eq","nextSibling","focus","prevSibling","openSub","length","closeSub","close","parent","functions","open","_isVertical","_isRtl","down","up","next","previous","handleKey","_this2","$body","document","body","_removeBodyHandler","closest","off","idx","filter","el","$sibs","Box","ImNotTouchingYou","oldClass","$parentLi","removeClass","_addBodyHandler","trigger","$activeItem","$toClose","not","data-is-click","removeAttr","Burn","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.dropdownMenu.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdownMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { DropdownMenu } from '../../foundation.dropdownMenu';\nFoundation.plugin(DropdownMenu, 'DropdownMenu');\n\nexport { Foundation, DropdownMenu};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n  /**\n   * Creates a new instance of DropdownMenu.\n   * @class\n   * @name DropdownMenu\n   * @fires DropdownMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n    this.className = 'DropdownMenu'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('DropdownMenu', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'up',\n      'ARROW_DOWN': 'down',\n      'ARROW_LEFT': 'previous',\n      'ESCAPE': 'close'\n    });\n  }\n\n  /**\n   * Initializes the plugin, and calls _prepareMenu\n   * @private\n   * @function\n   */\n  _init() {\n    Nest.Feather(this.$element, 'dropdown');\n\n    var subs = this.$element.find('li.is-dropdown-submenu-parent');\n    this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n    this.$menuItems = this.$element.find('li[role=\"none\"]');\n    this.$tabs = this.$element.children('li[role=\"none\"]');\n    this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n    if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n            this.options.alignment = 'right';\n            subs.addClass('opens-left');\n        } else {\n            this.options.alignment = 'left';\n            subs.addClass('opens-right');\n        }\n    } else {\n      if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n      } else {\n          subs.addClass('opens-right');\n      }\n    }\n    this.changed = false;\n    this._events();\n  };\n\n  _isVertical() {\n    return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n  }\n\n  _isRtl() {\n    return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n  }\n\n  /**\n   * Adds event listeners to elements within the menu\n   * @private\n   * @function\n   */\n  _events() {\n    var _this = this,\n        hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n        parClass = 'is-dropdown-submenu-parent';\n\n    // used for onClick and in the keyboard handlers\n    var handleClickFn = function(e) {\n      var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n          hasSub = $elem.hasClass(parClass),\n          hasClicked = $elem.attr('data-is-click') === 'true',\n          $sub = $elem.children('.is-dropdown-submenu');\n\n      if (hasSub) {\n        if (hasClicked) {\n          if (!_this.options.closeOnClick\n            || (!_this.options.clickOpen && !hasTouch)\n            || (_this.options.forceFollow && hasTouch)) {\n            return;\n          }\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._hide($elem);\n        }\n        else {\n          e.stopImmediatePropagation();\n          e.preventDefault();\n          _this._show($sub);\n          $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n        }\n      }\n    };\n\n    if (this.options.clickOpen || hasTouch) {\n      this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n    }\n\n    // Handle Leaf element Clicks\n    if(_this.options.closeOnClickInside){\n      this.$menuItems.on('click.zf.dropdownMenu', function(e) {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if(!hasSub){\n          _this._hide();\n        }\n      });\n    }\n\n    if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n    if (!this.options.disableHover) {\n      this.$menuItems.on('mouseenter.zf.dropdownMenu', function (e) {\n        var $elem = $(this),\n          hasSub = $elem.hasClass(parClass);\n\n        if (hasSub) {\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._show($elem.children('.is-dropdown-submenu'));\n          }, _this.options.hoverDelay));\n        }\n      }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function (e) {\n        var $elem = $(this),\n            hasSub = $elem.hasClass(parClass);\n        if (hasSub && _this.options.autoclose) {\n          if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n          clearTimeout($elem.data('_delay'));\n          $elem.data('_delay', setTimeout(function () {\n            _this._hide($elem);\n          }, _this.options.closingTime));\n        }\n      }));\n    }\n    this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n      var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n          isTab = _this.$tabs.index($element) > -1,\n          $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n          $prevElement,\n          $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          $prevElement = $elements.eq(i-1);\n          $nextElement = $elements.eq(i+1);\n          return;\n        }\n      });\n\n      var nextSibling = function() {\n        $nextElement.children('a:first').focus();\n        e.preventDefault();\n      }, prevSibling = function() {\n        $prevElement.children('a:first').focus();\n        e.preventDefault();\n      }, openSub = function() {\n        var $sub = $element.children('ul.is-dropdown-submenu');\n        if ($sub.length) {\n          _this._show($sub);\n          $element.find('li > a:first').focus();\n          e.preventDefault();\n        } else { return; }\n      }, closeSub = function() {\n        //if ($element.is(':first-child')) {\n        var close = $element.parent('ul').parent('li');\n        close.children('a:first').focus();\n        _this._hide(close);\n        e.preventDefault();\n        //}\n      };\n      var functions = {\n        open: openSub,\n        close: function() {\n          _this._hide(_this.$element);\n          _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n          e.preventDefault();\n        }\n      };\n\n      if (isTab) {\n        if (_this._isVertical()) { // vertical menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: closeSub,\n              previous: openSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              down: nextSibling,\n              up: prevSibling,\n              next: openSub,\n              previous: closeSub\n            });\n          }\n        } else { // horizontal menu\n          if (_this._isRtl()) { // right aligned\n            $.extend(functions, {\n              next: prevSibling,\n              previous: nextSibling,\n              down: openSub,\n              up: closeSub\n            });\n          } else { // left aligned\n            $.extend(functions, {\n              next: nextSibling,\n              previous: prevSibling,\n              down: openSub,\n              up: closeSub\n            });\n          }\n        }\n      } else { // not tabs -> one sub\n        if (_this._isRtl()) { // right aligned\n          $.extend(functions, {\n            next: closeSub,\n            previous: openSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        } else { // left aligned\n          $.extend(functions, {\n            next: openSub,\n            previous: closeSub,\n            down: nextSibling,\n            up: prevSibling\n          });\n        }\n      }\n      Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n    });\n  }\n\n  /**\n   * Adds an event handler to the body to close any dropdowns on a click.\n   * @function\n   * @private\n   */\n  _addBodyHandler() {\n    const $body = $(document.body);\n    this._removeBodyHandler();\n    $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n      var isItself = !!$(e.target).closest(this.$element).length;\n      if (isItself) return;\n\n      this._hide();\n      this._removeBodyHandler();\n    });\n  }\n\n  /**\n   * Remove the body event handler. See `_addBodyHandler`.\n   * @function\n   * @private\n   */\n  _removeBodyHandler() {\n    $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n  }\n\n  /**\n   * Opens a dropdown pane, and checks for collisions first.\n   * @param {jQuery} $sub - ul element that is a submenu to show\n   * @function\n   * @private\n   * @fires DropdownMenu#show\n   */\n  _show($sub) {\n    var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n      return $(el).find($sub).length > 0;\n    }));\n    var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n    this._hide($sibs, idx);\n    $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n        .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n    var clear = Box.ImNotTouchingYou($sub, null, true);\n    if (!clear) {\n      var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n          $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n      $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n      clear = Box.ImNotTouchingYou($sub, null, true);\n      if (!clear) {\n        $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n      }\n      this.changed = true;\n    }\n    $sub.css('visibility', '');\n    if (this.options.closeOnClick) { this._addBodyHandler(); }\n    /**\n     * Fires when the new dropdown pane is visible.\n     * @event DropdownMenu#show\n     */\n    this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n  }\n\n  /**\n   * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n   * @function\n   * @param {jQuery} $elem - element with a submenu to hide\n   * @param {Number} idx - index of the $tabs collection to hide\n   * @fires DropdownMenu#hide\n   * @private\n   */\n  _hide($elem, idx) {\n    var $toClose;\n    if ($elem && $elem.length) {\n      $toClose = $elem;\n    } else if (typeof idx !== 'undefined') {\n      $toClose = this.$tabs.not(function(i, el) {\n        return i === idx;\n      });\n    }\n    else {\n      $toClose = this.$element;\n    }\n    var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n    if (somethingToClose) {\n      var $activeItem = $toClose.find('li.is-active');\n      $activeItem.add($toClose).attr({\n        'data-is-click': false\n      }).removeClass('is-active');\n\n      $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n      if (this.changed || $toClose.find('opens-inner').length) {\n        var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n        $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n                .removeClass(`opens-inner opens-${this.options.alignment}`)\n                .addClass(`opens-${oldClass}`);\n        this.changed = false;\n      }\n\n      clearTimeout($activeItem.data('_delay'));\n      this._removeBodyHandler();\n\n      /**\n       * Fires when the open menus are closed.\n       * @event DropdownMenu#hide\n       */\n      this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n    }\n  }\n\n  /**\n   * Destroys the plugin.\n   * @function\n   */\n  _destroy() {\n    this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n        .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n    $(document.body).off('.zf.dropdownMenu');\n    Nest.Burn(this.$element, 'dropdown');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n\n  closingTime: 500,\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\nexport {DropdownMenu};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.dropdownMenu.min.js","sources":["foundation.dropdownMenu.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.dropdownMenu\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 5);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.box\":\n/*!********************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"} ***!\n  \\********************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.nest\":\n/*!************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"} ***!\n  \\************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;\n\n/***/ }),\n\n/***/ \"./foundation.util.touch\":\n/*!****************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n  \\****************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.dropdownMenu.js\":\n/*!*******************************************************!*\\\n  !*** ./js/entries/plugins/foundation.dropdownMenu.js ***!\n  \\*******************************************************/\n/*! exports provided: Foundation, DropdownMenu */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.dropdownMenu */ \"./js/foundation.dropdownMenu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__[\"DropdownMenu\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__[\"DropdownMenu\"], 'DropdownMenu');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.dropdownMenu.js\":\n/*!***************************************!*\\\n  !*** ./js/foundation.dropdownMenu.js ***!\n  \\***************************************/\n/*! exports provided: DropdownMenu */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return DropdownMenu; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.nest */ \"./foundation.util.nest\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.box */ \"./foundation.util.box\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.touch */ \"./foundation.util.touch\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nvar DropdownMenu = /*#__PURE__*/function (_Plugin) {\n  _inherits(DropdownMenu, _Plugin);\n\n  var _super = _createSuper(DropdownMenu);\n\n  function DropdownMenu() {\n    _classCallCheck(this, DropdownMenu);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(DropdownMenu, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of DropdownMenu.\n     * @class\n     * @name DropdownMenu\n     * @fires DropdownMenu#init\n     * @param {jQuery} element - jQuery object to make into a dropdown menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n      this.className = 'DropdownMenu'; // ie9 back compat\n\n      _foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Touch init is idempotent, we just need to make sure it's initialied.\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('DropdownMenu', {\n        'ENTER': 'open',\n        'SPACE': 'open',\n        'ARROW_RIGHT': 'next',\n        'ARROW_UP': 'up',\n        'ARROW_DOWN': 'down',\n        'ARROW_LEFT': 'previous',\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the plugin, and calls _prepareMenu\n     * @private\n     * @function\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__[\"Nest\"].Feather(this.$element, 'dropdown');\n      var subs = this.$element.find('li.is-dropdown-submenu-parent');\n      this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n      this.$menuItems = this.$element.find('li[role=\"none\"]');\n      this.$tabs = this.$element.children('li[role=\"none\"]');\n      this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n      if (this.options.alignment === 'auto') {\n        if (this.$element.hasClass(this.options.rightClass) || Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])() || this.$element.parents('.top-bar-right').is('*')) {\n          this.options.alignment = 'right';\n          subs.addClass('opens-left');\n        } else {\n          this.options.alignment = 'left';\n          subs.addClass('opens-right');\n        }\n      } else {\n        if (this.options.alignment === 'right') {\n          subs.addClass('opens-left');\n        } else {\n          subs.addClass('opens-right');\n        }\n      }\n\n      this.changed = false;\n\n      this._events();\n    }\n  }, {\n    key: \"_isVertical\",\n    value: function _isVertical() {\n      return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n    }\n  }, {\n    key: \"_isRtl\",\n    value: function _isRtl() {\n      return this.$element.hasClass('align-right') || Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])() && !this.$element.hasClass('align-left');\n    }\n    /**\n     * Adds event listeners to elements within the menu\n     * @private\n     * @function\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this,\n          hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined',\n          parClass = 'is-dropdown-submenu-parent'; // used for onClick and in the keyboard handlers\n\n\n      var handleClickFn = function handleClickFn(e) {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', \".\".concat(parClass)),\n            hasSub = $elem.hasClass(parClass),\n            hasClicked = $elem.attr('data-is-click') === 'true',\n            $sub = $elem.children('.is-dropdown-submenu');\n\n        if (hasSub) {\n          if (hasClicked) {\n            if (!_this.options.closeOnClick || !_this.options.clickOpen && !hasTouch || _this.options.forceFollow && hasTouch) {\n              return;\n            }\n\n            e.stopImmediatePropagation();\n            e.preventDefault();\n\n            _this._hide($elem);\n          } else {\n            e.stopImmediatePropagation();\n            e.preventDefault();\n\n            _this._show($sub);\n\n            $elem.add($elem.parentsUntil(_this.$element, \".\".concat(parClass))).attr('data-is-click', true);\n          }\n        }\n      };\n\n      if (this.options.clickOpen || hasTouch) {\n        this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n      } // Handle Leaf element Clicks\n\n\n      if (_this.options.closeOnClickInside) {\n        this.$menuItems.on('click.zf.dropdownMenu', function () {\n          var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n              hasSub = $elem.hasClass(parClass);\n\n          if (!hasSub) {\n            _this._hide();\n          }\n        });\n      }\n\n      if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n      if (!this.options.disableHover) {\n        this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n          var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n              hasSub = $elem.hasClass(parClass);\n\n          if (hasSub) {\n            clearTimeout($elem.data('_delay'));\n            $elem.data('_delay', setTimeout(function () {\n              _this._show($elem.children('.is-dropdown-submenu'));\n            }, _this.options.hoverDelay));\n          }\n        }).on('mouseleave.zf.dropdownMenu', Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"ignoreMousedisappear\"])(function () {\n          var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n              hasSub = $elem.hasClass(parClass);\n\n          if (hasSub && _this.options.autoclose) {\n            if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) {\n              return false;\n            }\n\n            clearTimeout($elem.data('_delay'));\n            $elem.data('_delay', setTimeout(function () {\n              _this._hide($elem);\n            }, _this.options.closingTime));\n          }\n        }));\n      }\n\n      this.$menuItems.on('keydown.zf.dropdownMenu', function (e) {\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', '[role=\"none\"]'),\n            isTab = _this.$tabs.index($element) > -1,\n            $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n            $prevElement,\n            $nextElement;\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            $prevElement = $elements.eq(i - 1);\n            $nextElement = $elements.eq(i + 1);\n            return;\n          }\n        });\n\n        var nextSibling = function nextSibling() {\n          $nextElement.children('a:first').focus();\n          e.preventDefault();\n        },\n            prevSibling = function prevSibling() {\n          $prevElement.children('a:first').focus();\n          e.preventDefault();\n        },\n            openSub = function openSub() {\n          var $sub = $element.children('ul.is-dropdown-submenu');\n\n          if ($sub.length) {\n            _this._show($sub);\n\n            $element.find('li > a:first').focus();\n            e.preventDefault();\n          } else {\n            return;\n          }\n        },\n            closeSub = function closeSub() {\n          //if ($element.is(':first-child')) {\n          var close = $element.parent('ul').parent('li');\n          close.children('a:first').focus();\n\n          _this._hide(close);\n\n          e.preventDefault(); //}\n        };\n\n        var functions = {\n          open: openSub,\n          close: function close() {\n            _this._hide(_this.$element);\n\n            _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n\n\n            e.preventDefault();\n          }\n        };\n\n        if (isTab) {\n          if (_this._isVertical()) {\n            // vertical menu\n            if (_this._isRtl()) {\n              // right aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                down: nextSibling,\n                up: prevSibling,\n                next: closeSub,\n                previous: openSub\n              });\n            } else {\n              // left aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                down: nextSibling,\n                up: prevSibling,\n                next: openSub,\n                previous: closeSub\n              });\n            }\n          } else {\n            // horizontal menu\n            if (_this._isRtl()) {\n              // right aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                next: prevSibling,\n                previous: nextSibling,\n                down: openSub,\n                up: closeSub\n              });\n            } else {\n              // left aligned\n              jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n                next: nextSibling,\n                previous: prevSibling,\n                down: openSub,\n                up: closeSub\n              });\n            }\n          }\n        } else {\n          // not tabs -> one sub\n          if (_this._isRtl()) {\n            // right aligned\n            jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n              next: closeSub,\n              previous: openSub,\n              down: nextSibling,\n              up: prevSibling\n            });\n          } else {\n            // left aligned\n            jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend(functions, {\n              next: openSub,\n              previous: closeSub,\n              down: nextSibling,\n              up: prevSibling\n            });\n          }\n        }\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'DropdownMenu', functions);\n      });\n    }\n    /**\n     * Adds an event handler to the body to close any dropdowns on a click.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_addBodyHandler\",\n    value: function _addBodyHandler() {\n      var _this2 = this;\n\n      var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body);\n\n      this._removeBodyHandler();\n\n      $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', function (e) {\n        var isItself = !!jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).closest(_this2.$element).length;\n        if (isItself) return;\n\n        _this2._hide();\n\n        _this2._removeBodyHandler();\n      });\n    }\n    /**\n     * Remove the body event handler. See `_addBodyHandler`.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_removeBodyHandler\",\n    value: function _removeBodyHandler() {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n    }\n    /**\n     * Opens a dropdown pane, and checks for collisions first.\n     * @param {jQuery} $sub - ul element that is a submenu to show\n     * @function\n     * @private\n     * @fires DropdownMenu#show\n     */\n\n  }, {\n    key: \"_show\",\n    value: function _show($sub) {\n      var idx = this.$tabs.index(this.$tabs.filter(function (i, el) {\n        return jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).find($sub).length > 0;\n      }));\n      var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n\n      this._hide($sibs, idx);\n\n      $sub.css('visibility', 'hidden').addClass('js-dropdown-active').parent('li.is-dropdown-submenu-parent').addClass('is-active');\n      var clear = _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__[\"Box\"].ImNotTouchingYou($sub, null, true);\n\n      if (!clear) {\n        var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n            $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n        $parentLi.removeClass(\"opens\".concat(oldClass)).addClass(\"opens-\".concat(this.options.alignment));\n        clear = _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__[\"Box\"].ImNotTouchingYou($sub, null, true);\n\n        if (!clear) {\n          $parentLi.removeClass(\"opens-\".concat(this.options.alignment)).addClass('opens-inner');\n        }\n\n        this.changed = true;\n      }\n\n      $sub.css('visibility', '');\n\n      if (this.options.closeOnClick) {\n        this._addBodyHandler();\n      }\n      /**\n       * Fires when the new dropdown pane is visible.\n       * @event DropdownMenu#show\n       */\n\n\n      this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n    }\n    /**\n     * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n     * @function\n     * @param {jQuery} $elem - element with a submenu to hide\n     * @param {Number} idx - index of the $tabs collection to hide\n     * @fires DropdownMenu#hide\n     * @private\n     */\n\n  }, {\n    key: \"_hide\",\n    value: function _hide($elem, idx) {\n      var $toClose;\n\n      if ($elem && $elem.length) {\n        $toClose = $elem;\n      } else if (typeof idx !== 'undefined') {\n        $toClose = this.$tabs.not(function (i) {\n          return i === idx;\n        });\n      } else {\n        $toClose = this.$element;\n      }\n\n      var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n      if (somethingToClose) {\n        var $activeItem = $toClose.find('li.is-active');\n        $activeItem.add($toClose).attr({\n          'data-is-click': false\n        }).removeClass('is-active');\n        $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n        if (this.changed || $toClose.find('opens-inner').length) {\n          var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n          $toClose.find('li.is-dropdown-submenu-parent').add($toClose).removeClass(\"opens-inner opens-\".concat(this.options.alignment)).addClass(\"opens-\".concat(oldClass));\n          this.changed = false;\n        }\n\n        clearTimeout($activeItem.data('_delay'));\n\n        this._removeBodyHandler();\n        /**\n         * Fires when the open menus are closed.\n         * @event DropdownMenu#hide\n         */\n\n\n        this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n      }\n    }\n    /**\n     * Destroys the plugin.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click').removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('.zf.dropdownMenu');\n      _foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__[\"Nest\"].Burn(this.$element, 'dropdown');\n    }\n  }]);\n\n  return DropdownMenu;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nDropdownMenu.defaults = {\n  /**\n   * Disallows hover events from opening submenus\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n\n  /**\n   * Disallows hover on touch devices\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  disableHoverOnTouch: true,\n\n  /**\n   * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoclose: true,\n\n  /**\n   * Amount of time to delay opening a submenu on hover event.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  hoverDelay: 50,\n\n  /**\n   * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  clickOpen: false,\n\n  /**\n   * Amount of time to delay closing a submenu on a mouseleave event.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  closingTime: 500,\n\n  /**\n   * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow clicks on the body to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Allow clicks on leaf anchor links to close any open submenus.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClickInside: true,\n\n  /**\n   * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'vertical'\n   */\n  verticalClass: 'vertical',\n\n  /**\n   * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n   * @option\n   * @type {string}\n   * @default 'align-right'\n   */\n  rightClass: 'align-right',\n\n  /**\n   * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  forceFollow: true\n};\n\n\n/***/ }),\n\n/***/ 5:\n/*!*************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.dropdownMenu.js ***!\n  \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.dropdownMenu.js */\"./js/entries/plugins/foundation.dropdownMenu.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.dropdownMenu.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","./foundation.util.touch","./js/entries/plugins/foundation.dropdownMenu.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.dropdownMenu.js","DropdownMenu","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_5__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","init","_init","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","Feather","subs","find","children","addClass","$menuItems","$tabs","verticalClass","alignment","hasClass","rightClass","parents","is","changed","_events","css","_this","hasTouch","ontouchstart","parClass","clickOpen","on","$elem","parentsUntil","concat","hasSub","hasClicked","attr","$sub","closeOnClick","forceFollow","stopImmediatePropagation","preventDefault","_hide","_show","add","closeOnClickInside","disableHoverOnTouch","disableHover","clearTimeout","setTimeout","hoverDelay","autoclose","closingTime","$prevElement","$nextElement","isTab","index","$elements","siblings","each","eq","nextSibling","focus","prevSibling","openSub","closeSub","close","parent","functions","open","_isVertical","_isRtl","down","up","next","previous","handleKey","_this2","$body","document","body","_removeBodyHandler","closest","off","idx","filter","el","$sibs","ImNotTouchingYou","oldClass","$parentLi","removeClass","_addBodyHandler","trigger","$activeItem","$toClose","not","data-is-click","removeAttr","Burn","5","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 5fc0f9ba2170009429df9d48ddf2982abfd1b133..99fcaf0947f99f45190f4f44eaa369b6e357cde9 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.equalizer.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.equalizer.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Equalizer","element","options","this","$element","$","extend","defaults","data","className","_init","eqId","attr","$watched","find","concat","MediaQuery","length","GetYoDigits","hasNested","isNested","parentsUntil","document","body","isOn","_bindHandler","onResizeMeBound","_onResizeMe","bind","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","on","_events","onImagesLoaded","_reflow","off",".zf.equalizer","resizeme.zf.trigger","mutateme.zf.trigger","e","target","_this","_pauseEvents","_isStacked","equalizeOnStack","equalizeByRow","getHeightsByRow","applyHeight","applyHeightByRow","getBoundingClientRect","top","heights","len","i","push","cb","lastElTopOffset","groups","group","elOffsetTop","style","offset","offsetHeight","j","ln","get","max","Math","apply","trigger","groupsILength","lenJ","height","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.equalizer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.equalizer\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.equalizer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","import { Foundation } from './foundation.core';\n\nimport { Equalizer } from '../../foundation.equalizer';\nFoundation.plugin(Equalizer, 'Equalizer');\n\nexport { Foundation, Equalizer };\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n  /**\n   * Creates a new instance of Equalizer.\n   * @class\n   * @name Equalizer\n   * @fires Equalizer#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options){\n    this.$element = element;\n    this.options  = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n    this.className = 'Equalizer'; // ie9 back compat\n\n    this._init();\n  }\n\n  /**\n   * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var eqId = this.$element.attr('data-equalizer') || '';\n    var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n    MediaQuery._init();\n\n    this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n    this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n    this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n    this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n    this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n    this.isOn = false;\n    this._bindHandler = {\n      onResizeMeBound: this._onResizeMe.bind(this),\n      onPostEqualizedBound: this._onPostEqualized.bind(this)\n    };\n\n    var imgs = this.$element.find('img');\n    var tooSmall;\n    if(this.options.equalizeOn){\n      tooSmall = this._checkMQ();\n      $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n    }else{\n      this._events();\n    }\n    if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n      if(imgs.length){\n        onImagesLoaded(imgs, this._reflow.bind(this));\n      }else{\n        this._reflow();\n      }\n    }\n  }\n\n  /**\n   * Removes event listeners if the breakpoint is too small.\n   * @private\n   */\n  _pauseEvents() {\n    this.isOn = false;\n    this.$element.off({\n      '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n      'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t  'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n    });\n  }\n\n  /**\n   * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n   * @private\n   */\n  _onResizeMe(e) {\n    this._reflow();\n  }\n\n  /**\n   * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n   * @private\n   */\n  _onPostEqualized(e) {\n    if(e.target !== this.$element[0]){ this._reflow(); }\n  }\n\n  /**\n   * Initializes events for Equalizer.\n   * @private\n   */\n  _events() {\n    var _this = this;\n    this._pauseEvents();\n    if(this.hasNested){\n      this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n    }else{\n      this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t  this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n    }\n    this.isOn = true;\n  }\n\n  /**\n   * Checks the current breakpoint to the minimum required size.\n   * @private\n   */\n  _checkMQ() {\n    var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n    if(tooSmall){\n      if(this.isOn){\n        this._pauseEvents();\n        this.$watched.css('height', 'auto');\n      }\n    }else{\n      if(!this.isOn){\n        this._events();\n      }\n    }\n    return tooSmall;\n  }\n\n  /**\n   * A noop version for the plugin\n   * @private\n   */\n  _killswitch() {\n    return;\n  }\n\n  /**\n   * Calls necessary functions to update Equalizer upon DOM change\n   * @private\n   */\n  _reflow() {\n    if(!this.options.equalizeOnStack){\n      if(this._isStacked()){\n        this.$watched.css('height', 'auto');\n        return false;\n      }\n    }\n    if (this.options.equalizeByRow) {\n      this.getHeightsByRow(this.applyHeightByRow.bind(this));\n    }else{\n      this.getHeights(this.applyHeight.bind(this));\n    }\n  }\n\n  /**\n   * Manually determines if the first 2 elements are *NOT* stacked.\n   * @private\n   */\n  _isStacked() {\n    if (!this.$watched[0] || !this.$watched[1]) {\n      return true;\n    }\n    return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} heights - An array of heights of children within Equalizer container\n   */\n  getHeights(cb) {\n    var heights = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      heights.push(this.$watched[i].offsetHeight);\n    }\n    cb(heights);\n  }\n\n  /**\n   * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n   * @param {Function} cb - A non-optional callback to return the heights array to.\n   * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   */\n  getHeightsByRow(cb) {\n    var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n        groups = [],\n        group = 0;\n    //group by Row\n    groups[group] = [];\n    for(var i = 0, len = this.$watched.length; i < len; i++){\n      this.$watched[i].style.height = 'auto';\n      //maybe could use this.$watched[i].offsetTop\n      var elOffsetTop = $(this.$watched[i]).offset().top;\n      if (elOffsetTop!=lastElTopOffset) {\n        group++;\n        groups[group] = [];\n        lastElTopOffset=elOffsetTop;\n      }\n      groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n    }\n\n    for (var j = 0, ln = groups.length; j < ln; j++) {\n      var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n      var max         = Math.max.apply(null, heights);\n      groups[j].push(max);\n    }\n    cb(groups);\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n   * @param {array} heights - An array of heights of children within Equalizer container\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#postequalized\n   */\n  applyHeight(heights) {\n    var max = Math.max.apply(null, heights);\n    /**\n     * Fires before the heights are applied\n     * @event Equalizer#preequalized\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n\n    this.$watched.css('height', max);\n\n    /**\n     * Fires when the heights have been applied\n     * @event Equalizer#postequalized\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n   * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n   * @fires Equalizer#preequalized\n   * @fires Equalizer#preequalizedrow\n   * @fires Equalizer#postequalizedrow\n   * @fires Equalizer#postequalized\n   */\n  applyHeightByRow(groups) {\n    /**\n     * Fires before the heights are applied\n     */\n    this.$element.trigger('preequalized.zf.equalizer');\n    for (var i = 0, len = groups.length; i < len ; i++) {\n      var groupsILength = groups[i].length,\n          max = groups[i][groupsILength - 1];\n      if (groupsILength<=2) {\n        $(groups[i][0][0]).css({'height':'auto'});\n        continue;\n      }\n      /**\n        * Fires before the heights per row are applied\n        * @event Equalizer#preequalizedrow\n        */\n      this.$element.trigger('preequalizedrow.zf.equalizer');\n      for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n        $(groups[i][j][0]).css({'height':max});\n      }\n      /**\n        * Fires when the heights per row have been applied\n        * @event Equalizer#postequalizedrow\n        */\n      this.$element.trigger('postequalizedrow.zf.equalizer');\n    }\n    /**\n     * Fires when the heights have been applied\n     */\n     this.$element.trigger('postequalized.zf.equalizer');\n  }\n\n  /**\n   * Destroys an instance of Equalizer.\n   * @function\n   */\n  _destroy() {\n    this._pauseEvents();\n    this.$watched.css('height', 'auto');\n  }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\nexport {Equalizer};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.equalizer.min.js","sources":["foundation.equalizer.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.equalizer\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.equalizer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.imageLoader\":\n/*!****************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n  \\****************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.equalizer.js\":\n/*!****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.equalizer.js ***!\n  \\****************************************************/\n/*! exports provided: Foundation, Equalizer */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.equalizer */ \"./js/foundation.equalizer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Equalizer\", function() { return _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__[\"Equalizer\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__[\"Equalizer\"], 'Equalizer');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.equalizer.js\":\n/*!************************************!*\\\n  !*** ./js/foundation.equalizer.js ***!\n  \\************************************/\n/*! exports provided: Equalizer */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Equalizer\", function() { return Equalizer; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.imageLoader */ \"./foundation.util.imageLoader\");\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nvar Equalizer = /*#__PURE__*/function (_Plugin) {\n  _inherits(Equalizer, _Plugin);\n\n  var _super = _createSuper(Equalizer);\n\n  function Equalizer() {\n    _classCallCheck(this, Equalizer);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Equalizer, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Equalizer.\n     * @class\n     * @name Equalizer\n     * @fires Equalizer#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Equalizer.defaults, this.$element.data(), options);\n      this.className = 'Equalizer'; // ie9 back compat\n\n      this._init();\n    }\n    /**\n     * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var eqId = this.$element.attr('data-equalizer') || '';\n      var $watched = this.$element.find(\"[data-equalizer-watch=\\\"\".concat(eqId, \"\\\"]\"));\n\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init();\n\n      this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n      this.$element.attr('data-resize', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n      this.$element.attr('data-mutate', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n      this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n      this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n      this.isOn = false;\n      this._bindHandler = {\n        onResizeMeBound: this._onResizeMe.bind(this),\n        onPostEqualizedBound: this._onPostEqualized.bind(this)\n      };\n      var imgs = this.$element.find('img');\n      var tooSmall;\n\n      if (this.options.equalizeOn) {\n        tooSmall = this._checkMQ();\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n      } else {\n        this._events();\n      }\n\n      if (typeof tooSmall !== 'undefined' && tooSmall === false || typeof tooSmall === 'undefined') {\n        if (imgs.length) {\n          Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__[\"onImagesLoaded\"])(imgs, this._reflow.bind(this));\n        } else {\n          this._reflow();\n        }\n      }\n    }\n    /**\n     * Removes event listeners if the breakpoint is too small.\n     * @private\n     */\n\n  }, {\n    key: \"_pauseEvents\",\n    value: function _pauseEvents() {\n      this.isOn = false;\n      this.$element.off({\n        '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n        'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n        'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n      });\n    }\n    /**\n     * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n     * @private\n     */\n\n  }, {\n    key: \"_onResizeMe\",\n    value: function _onResizeMe() {\n      this._reflow();\n    }\n    /**\n     * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n     * @private\n     */\n\n  }, {\n    key: \"_onPostEqualized\",\n    value: function _onPostEqualized(e) {\n      if (e.target !== this.$element[0]) {\n        this._reflow();\n      }\n    }\n    /**\n     * Initializes events for Equalizer.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._pauseEvents();\n\n      if (this.hasNested) {\n        this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n      } else {\n        this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n        this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n      }\n\n      this.isOn = true;\n    }\n    /**\n     * Checks the current breakpoint to the minimum required size.\n     * @private\n     */\n\n  }, {\n    key: \"_checkMQ\",\n    value: function _checkMQ() {\n      var tooSmall = !_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].is(this.options.equalizeOn);\n\n      if (tooSmall) {\n        if (this.isOn) {\n          this._pauseEvents();\n\n          this.$watched.css('height', 'auto');\n        }\n      } else {\n        if (!this.isOn) {\n          this._events();\n        }\n      }\n\n      return tooSmall;\n    }\n    /**\n     * A noop version for the plugin\n     * @private\n     */\n\n  }, {\n    key: \"_killswitch\",\n    value: function _killswitch() {\n      return;\n    }\n    /**\n     * Calls necessary functions to update Equalizer upon DOM change\n     * @private\n     */\n\n  }, {\n    key: \"_reflow\",\n    value: function _reflow() {\n      if (!this.options.equalizeOnStack) {\n        if (this._isStacked()) {\n          this.$watched.css('height', 'auto');\n          return false;\n        }\n      }\n\n      if (this.options.equalizeByRow) {\n        this.getHeightsByRow(this.applyHeightByRow.bind(this));\n      } else {\n        this.getHeights(this.applyHeight.bind(this));\n      }\n    }\n    /**\n     * Manually determines if the first 2 elements are *NOT* stacked.\n     * @private\n     */\n\n  }, {\n    key: \"_isStacked\",\n    value: function _isStacked() {\n      if (!this.$watched[0] || !this.$watched[1]) {\n        return true;\n      }\n\n      return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n    }\n    /**\n     * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n     * @param {Function} cb - A non-optional callback to return the heights array to.\n     * @returns {Array} heights - An array of heights of children within Equalizer container\n     */\n\n  }, {\n    key: \"getHeights\",\n    value: function getHeights(cb) {\n      var heights = [];\n\n      for (var i = 0, len = this.$watched.length; i < len; i++) {\n        this.$watched[i].style.height = 'auto';\n        heights.push(this.$watched[i].offsetHeight);\n      }\n\n      cb(heights);\n    }\n    /**\n     * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n     * @param {Function} cb - A non-optional callback to return the heights array to.\n     * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n     */\n\n  }, {\n    key: \"getHeightsByRow\",\n    value: function getHeightsByRow(cb) {\n      var lastElTopOffset = this.$watched.length ? this.$watched.first().offset().top : 0,\n          groups = [],\n          group = 0; //group by Row\n\n      groups[group] = [];\n\n      for (var i = 0, len = this.$watched.length; i < len; i++) {\n        this.$watched[i].style.height = 'auto'; //maybe could use this.$watched[i].offsetTop\n\n        var elOffsetTop = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$watched[i]).offset().top;\n\n        if (elOffsetTop !== lastElTopOffset) {\n          group++;\n          groups[group] = [];\n          lastElTopOffset = elOffsetTop;\n        }\n\n        groups[group].push([this.$watched[i], this.$watched[i].offsetHeight]);\n      }\n\n      for (var j = 0, ln = groups.length; j < ln; j++) {\n        var heights = jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[j]).map(function () {\n          return this[1];\n        }).get();\n        var max = Math.max.apply(null, heights);\n        groups[j].push(max);\n      }\n\n      cb(groups);\n    }\n    /**\n     * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n     * @param {array} heights - An array of heights of children within Equalizer container\n     * @fires Equalizer#preequalized\n     * @fires Equalizer#postequalized\n     */\n\n  }, {\n    key: \"applyHeight\",\n    value: function applyHeight(heights) {\n      var max = Math.max.apply(null, heights);\n      /**\n       * Fires before the heights are applied\n       * @event Equalizer#preequalized\n       */\n\n      this.$element.trigger('preequalized.zf.equalizer');\n      this.$watched.css('height', max);\n      /**\n       * Fires when the heights have been applied\n       * @event Equalizer#postequalized\n       */\n\n      this.$element.trigger('postequalized.zf.equalizer');\n    }\n    /**\n     * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n     * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n     * @fires Equalizer#preequalized\n     * @fires Equalizer#preequalizedrow\n     * @fires Equalizer#postequalizedrow\n     * @fires Equalizer#postequalized\n     */\n\n  }, {\n    key: \"applyHeightByRow\",\n    value: function applyHeightByRow(groups) {\n      /**\n       * Fires before the heights are applied\n       */\n      this.$element.trigger('preequalized.zf.equalizer');\n\n      for (var i = 0, len = groups.length; i < len; i++) {\n        var groupsILength = groups[i].length,\n            max = groups[i][groupsILength - 1];\n\n        if (groupsILength <= 2) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][0][0]).css({\n            'height': 'auto'\n          });\n          continue;\n        }\n        /**\n          * Fires before the heights per row are applied\n          * @event Equalizer#preequalizedrow\n          */\n\n\n        this.$element.trigger('preequalizedrow.zf.equalizer');\n\n        for (var j = 0, lenJ = groupsILength - 1; j < lenJ; j++) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][j][0]).css({\n            'height': max\n          });\n        }\n        /**\n          * Fires when the heights per row have been applied\n          * @event Equalizer#postequalizedrow\n          */\n\n\n        this.$element.trigger('postequalizedrow.zf.equalizer');\n      }\n      /**\n       * Fires when the heights have been applied\n       */\n\n\n      this.$element.trigger('postequalized.zf.equalizer');\n    }\n    /**\n     * Destroys an instance of Equalizer.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this._pauseEvents();\n\n      this.$watched.css('height', 'auto');\n    }\n  }]);\n\n  return Equalizer;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nEqualizer.defaults = {\n  /**\n   * Enable height equalization when stacked on smaller screens.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeOnStack: false,\n\n  /**\n   * Enable height equalization row by row.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  equalizeByRow: false,\n\n  /**\n   * String representing the minimum breakpoint size the plugin should equalize heights on.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  equalizeOn: ''\n};\n\n\n/***/ }),\n\n/***/ 6:\n/*!**********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.equalizer.js ***!\n  \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.equalizer.js */\"./js/entries/plugins/foundation.equalizer.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.equalizer.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.imageLoader","./foundation.util.mediaQuery","./js/entries/plugins/foundation.equalizer.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.equalizer.js","Equalizer","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","eqId","attr","$watched","find","concat","hasNested","isNested","parentsUntil","document","body","isOn","_bindHandler","onResizeMeBound","_onResizeMe","bind","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","on","_events","_reflow","off",".zf.equalizer","resizeme.zf.trigger","mutateme.zf.trigger","_pauseEvents","is","css","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","getBoundingClientRect","top","cb","heights","len","style","height","push","offsetHeight","lastElTopOffset","first","offset","groups","group","elOffsetTop","j","ln","map","get","max","Math","trigger","groupsILength","lenJ","6","jquery","installedModules","m","c","name","getter","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index d8bd9f6cead94e58d8f487a47f3bf5903e2e6a05..a7f05af280b4163e7cf24bedda66469536a4c8ab 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.interchange.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.interchange.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_interchange__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Interchange","element","options","this","$element","$","extend","defaults","data","rules","currentPath","className","Triggers","init","_init","_events","MediaQuery","id","GetYoDigits","attr","data-resize","_parseOptions","_addBreakpoints","_generateRules","_reflow","_this","off","on","match","i","rule","hasOwnProperty","matchMedia","query","matches","replace","path","type","indexOf","console","log","concat","queries","SPECIAL_QUERIES","name","value","split","slice","join","length","rulesList","trigger","nodeName","_this2","background-image","jquery__WEBPACK_IMPORTED_MODULE_0___default","a","get","response","portrait","retina","el","triggers","MutationObserver","prefixes","Listeners","Basic","Initializers","timer","Array","prototype","call","arguments","clearTimeout","setTimeout","args","listener","apply","openListener","closeListener","toggleListener","closeableListener","e","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","animateOut","animation","Motion","fadeOut","toggleFocusListener","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","$nodes","resizeListener","each","triggerHandler","scrollListener","closeMeListener","pluginId","namespace","not","plugins","yetiBoxes","pluginName","plugNames","_typeof","error","map","listeners","Global","debounceGlobalListener","debounce","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","attributes","childList","characterData","subtree","document","$document","addMutationEventsListener","addResizeListener","addScrollListener","onLoad","triggersInitialized","addSimpleListeners","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","Symbol","toStringTag","t","mode","__esModule","ns","create","key","bind","n","object","property","p","s","moduleId","l"],"mappings":"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","file":"foundation.interchange.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.interchange\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.interchange\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Interchange } from '../../foundation.interchange';\nFoundation.plugin(Interchange, 'Interchange');\n\nexport { Foundation, Interchange };\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Plugin } from './foundation.core.plugin';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nclass Interchange extends Plugin {\n  /**\n   * Creates a new instance of Interchange.\n   * @class\n   * @name Interchange\n   * @fires Interchange#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Interchange.defaults, this.$element.data(), options);\n    this.rules = [];\n    this.currentPath = '';\n    this.className = 'Interchange'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var id = this.$element[0].id || GetYoDigits(6, 'interchange');\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    this._parseOptions();\n    this._addBreakpoints();\n    this._generateRules();\n    this._reflow();\n  }\n\n  /**\n   * Initializes events for Interchange.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', () => this._reflow());\n  }\n\n  /**\n   * Calls necessary functions to update Interchange upon DOM change\n   * @function\n   * @private\n   */\n  _reflow() {\n    var match;\n\n    // Iterate through each rule, but only save the last match\n    for (var i in this.rules) {\n      if(this.rules.hasOwnProperty(i)) {\n        var rule = this.rules[i];\n        if (window.matchMedia(rule.query).matches) {\n          match = rule;\n        }\n      }\n    }\n\n    if (match) {\n      this.replace(match.path);\n    }\n  }\n\n  /**\n   * Check options valifity and set defaults for:\n   * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n   * @function\n   * @private\n   */\n  _parseOptions() {\n    var types = ['auto', 'src', 'background', 'html'];\n    if (typeof this.options.type === 'undefined')\n      this.options.type = 'auto';\n    else if (types.indexOf(this.options.type) === -1) {\n      console.log(`Warning: invalid value \"${this.options.type}\" for Interchange option \"type\"`);\n      this.options.type = 'auto';\n    }\n  }\n\n  /**\n   * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n   * @function\n   * @private\n   */\n  _addBreakpoints() {\n    for (var i in MediaQuery.queries) {\n      if (MediaQuery.queries.hasOwnProperty(i)) {\n        var query = MediaQuery.queries[i];\n        Interchange.SPECIAL_QUERIES[query.name] = query.value;\n      }\n    }\n  }\n\n  /**\n   * Checks the Interchange element for the provided media query + content pairings\n   * @function\n   * @private\n   * @param {Object} element - jQuery object that is an Interchange instance\n   * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n   */\n  _generateRules(element) {\n    var rulesList = [];\n    var rules;\n\n    if (this.options.rules) {\n      rules = this.options.rules;\n    }\n    else {\n      rules = this.$element.data('interchange');\n    }\n\n    rules =  typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n    for (var i in rules) {\n      if(rules.hasOwnProperty(i)) {\n        var rule = rules[i].slice(1, -1).split(', ');\n        var path = rule.slice(0, -1).join('');\n        var query = rule[rule.length - 1];\n\n        if (Interchange.SPECIAL_QUERIES[query]) {\n          query = Interchange.SPECIAL_QUERIES[query];\n        }\n\n        rulesList.push({\n          path: path,\n          query: query\n        });\n      }\n    }\n\n    this.rules = rulesList;\n  }\n\n  /**\n   * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n   * @function\n   * @param {String} path - Path to the image or HTML partial.\n   * @fires Interchange#replaced\n   */\n  replace(path) {\n    if (this.currentPath === path) return;\n\n    var trigger = 'replaced.zf.interchange';\n\n    var type = this.options.type;\n    if (type === 'auto') {\n      if (this.$element[0].nodeName === 'IMG')\n        type = 'src';\n      else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i))\n        type = 'background';\n      else\n        type = 'html';\n    }\n\n    // Replacing images\n    if (type === 'src') {\n      this.$element.attr('src', path)\n        .on('load', () => { this.currentPath = path; })\n        .trigger(trigger);\n    }\n    // Replacing background images\n    else if (type === 'background') {\n      path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n      this.$element\n        .css({ 'background-image': 'url(' + path + ')' })\n        .trigger(trigger);\n    }\n    // Replacing HTML\n    else if (type === 'html') {\n      $.get(path, (response) => {\n        this.$element\n          .html(response)\n          .trigger(trigger);\n        $(response).foundation();\n        this.currentPath = path;\n      });\n    }\n\n    /**\n     * Fires when content in an Interchange element is done being loaded.\n     * @event Interchange#replaced\n     */\n    // this.$element.trigger('replaced.zf.interchange');\n  }\n\n  /**\n   * Destroys an instance of interchange.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('resizeme.zf.trigger')\n  }\n}\n\n/**\n * Default settings for plugin\n */\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\n\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\nexport {Interchange};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.interchange.min.js","sources":["foundation.interchange.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.interchange\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.interchange\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.interchange.js\":\n/*!******************************************************!*\\\n  !*** ./js/entries/plugins/foundation.interchange.js ***!\n  \\******************************************************/\n/*! exports provided: Foundation, Interchange */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_interchange__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.interchange */ \"./js/foundation.interchange.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Interchange\", function() { return _foundation_interchange__WEBPACK_IMPORTED_MODULE_1__[\"Interchange\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_interchange__WEBPACK_IMPORTED_MODULE_1__[\"Interchange\"], 'Interchange');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.interchange.js\":\n/*!**************************************!*\\\n  !*** ./js/foundation.interchange.js ***!\n  \\**************************************/\n/*! exports provided: Interchange */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Interchange\", function() { return Interchange; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Interchange module.\n * @module foundation.interchange\n * @requires foundation.util.mediaQuery\n */\n\nvar Interchange = /*#__PURE__*/function (_Plugin) {\n  _inherits(Interchange, _Plugin);\n\n  var _super = _createSuper(Interchange);\n\n  function Interchange() {\n    _classCallCheck(this, Interchange);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Interchange, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Interchange.\n     * @class\n     * @name Interchange\n     * @fires Interchange#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Interchange.defaults, this.$element.data(), options);\n      this.rules = [];\n      this.currentPath = '';\n      this.className = 'Interchange'; // ie9 back compat\n      // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the Interchange plugin and calls functions to get interchange functioning on load.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init();\n\n      var id = this.$element[0].id || Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'interchange');\n      this.$element.attr({\n        'data-resize': id,\n        'id': id\n      });\n\n      this._parseOptions();\n\n      this._addBreakpoints();\n\n      this._generateRules();\n\n      this._reflow();\n    }\n    /**\n     * Initializes events for Interchange.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', function () {\n        return _this._reflow();\n      });\n    }\n    /**\n     * Calls necessary functions to update Interchange upon DOM change\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_reflow\",\n    value: function _reflow() {\n      var match; // Iterate through each rule, but only save the last match\n\n      for (var i in this.rules) {\n        if (this.rules.hasOwnProperty(i)) {\n          var rule = this.rules[i];\n\n          if (window.matchMedia(rule.query).matches) {\n            match = rule;\n          }\n        }\n      }\n\n      if (match) {\n        this.replace(match.path);\n      }\n    }\n    /**\n     * Check options valifity and set defaults for:\n     * - `data-interchange-type`: if set, enforce the type of replacement (auto, src, background or html)\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_parseOptions\",\n    value: function _parseOptions() {\n      var types = ['auto', 'src', 'background', 'html'];\n      if (typeof this.options.type === 'undefined') this.options.type = 'auto';else if (types.indexOf(this.options.type) === -1) {\n        console.warn(\"Warning: invalid value \\\"\".concat(this.options.type, \"\\\" for Interchange option \\\"type\\\"\"));\n        this.options.type = 'auto';\n      }\n    }\n    /**\n     * Gets the Foundation breakpoints and adds them to the Interchange.SPECIAL_QUERIES object.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_addBreakpoints\",\n    value: function _addBreakpoints() {\n      for (var i in _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].queries) {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].queries.hasOwnProperty(i)) {\n          var query = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].queries[i];\n          Interchange.SPECIAL_QUERIES[query.name] = query.value;\n        }\n      }\n    }\n    /**\n     * Checks the Interchange element for the provided media query + content pairings\n     * @function\n     * @private\n     * @returns {Array} scenarios - Array of objects that have 'mq' and 'path' keys with corresponding keys\n     */\n\n  }, {\n    key: \"_generateRules\",\n    value: function _generateRules() {\n      var rulesList = [];\n      var rules;\n\n      if (this.options.rules) {\n        rules = this.options.rules;\n      } else {\n        rules = this.$element.data('interchange');\n      }\n\n      rules = typeof rules === 'string' ? rules.match(/\\[.*?, .*?\\]/g) : rules;\n\n      for (var i in rules) {\n        if (rules.hasOwnProperty(i)) {\n          var rule = rules[i].slice(1, -1).split(', ');\n          var path = rule.slice(0, -1).join('');\n          var query = rule[rule.length - 1];\n\n          if (Interchange.SPECIAL_QUERIES[query]) {\n            query = Interchange.SPECIAL_QUERIES[query];\n          }\n\n          rulesList.push({\n            path: path,\n            query: query\n          });\n        }\n      }\n\n      this.rules = rulesList;\n    }\n    /**\n     * Update the `src` property of an image, or change the HTML of a container, to the specified path.\n     * @function\n     * @param {String} path - Path to the image or HTML partial.\n     * @fires Interchange#replaced\n     */\n\n  }, {\n    key: \"replace\",\n    value: function replace(path) {\n      var _this2 = this;\n\n      if (this.currentPath === path) return;\n      var trigger = 'replaced.zf.interchange';\n      var type = this.options.type;\n\n      if (type === 'auto') {\n        if (this.$element[0].nodeName === 'IMG') type = 'src';else if (path.match(/\\.(gif|jpe?g|png|svg|tiff)([?#].*)?/i)) type = 'background';else type = 'html';\n      } // Replacing images\n\n\n      if (type === 'src') {\n        this.$element.attr('src', path).on('load', function () {\n          _this2.currentPath = path;\n        }).trigger(trigger);\n      } // Replacing background images\n      else if (type === 'background') {\n        path = path.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n        this.$element.css({\n          'background-image': 'url(' + path + ')'\n        }).trigger(trigger);\n      } // Replacing HTML\n      else if (type === 'html') {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default.a.get(path, function (response) {\n          _this2.$element.html(response).trigger(trigger);\n\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(response).foundation();\n          _this2.currentPath = path;\n        });\n      }\n      /**\n       * Fires when content in an Interchange element is done being loaded.\n       * @event Interchange#replaced\n       */\n      // this.$element.trigger('replaced.zf.interchange');\n\n    }\n    /**\n     * Destroys an instance of interchange.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('resizeme.zf.trigger');\n    }\n  }]);\n\n  return Interchange;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nInterchange.defaults = {\n  /**\n   * Rules to be applied to Interchange elements. Set with the `data-interchange` array notation.\n   * @option\n   * @type {?array}\n   * @default null\n   */\n  rules: null,\n\n  /**\n   * Type of the responsive ressource to replace. It can take the following options:\n   * - `auto` (default): choose the type according to the element tag or the ressource extension,\n   * - `src`: replace the `[src]` attribute, recommended for images `<img>`.\n   * - `background`: replace the `background-image` CSS property.\n   * - `html`: replace the element content.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  type: 'auto'\n};\nInterchange.SPECIAL_QUERIES = {\n  'landscape': 'screen and (orientation: landscape)',\n  'portrait': 'screen and (orientation: portrait)',\n  'retina': 'only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)'\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 7:\n/*!************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.interchange.js ***!\n  \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.interchange.js */\"./js/entries/plugins/foundation.interchange.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.interchange.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.mediaQuery","./foundation.util.motion","./js/entries/plugins/foundation.interchange.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_interchange__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.interchange.js","Interchange","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","rules","currentPath","className","init","_init","_events","id","attr","data-resize","_parseOptions","_addBreakpoints","_generateRules","_reflow","_this","off","on","match","rule","hasOwnProperty","matchMedia","query","matches","replace","path","type","indexOf","console","warn","concat","queries","SPECIAL_QUERIES","name","rulesList","slice","split","join","push","trigger","_this2","nodeName","css","background-image","get","response","html","foundation","landscape","portrait","retina","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","el","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","error","listeners","map","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","7","jquery","installedModules","m","c","getter","toStringTag","t","mode","__esModule","ns","bind","object","property","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index eb76337c7be807d505cfbcf5813f1a9f82e35b15..fd65253b8e76452ea85e5b05724314f94873b5bb 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.smoothScroll\"],\"amd\":\"./foundation.smoothScroll\",\"commonjs\":\"./foundation.smoothScroll\",\"commonjs2\":\"./foundation.smoothScroll\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.magellan.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.magellan.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_smoothScroll__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_magellan__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Magellan","element","options","this","$element","$","extend","defaults","data","className","Triggers","init","_init","calcPoints","id","GetYoDigits","_this","find","data-resize","data-scroll","$active","jquery__WEBPACK_IMPORTED_MODULE_0___default","scrollPos","key","document","documentElement","body","html","innerHeight","clientHeight","points","each","winHeight","docHeight","round","offset","top","scrollHeight","$tar","$targets","pt","push","one","deepLinking","_updateActive","resizeme.zf.trigger","reflow","bind","onLoad","e","preventDefault","arrival","getAttribute","_deepLinkScroll","on","animationEasing","threshold","scrollToLoc","loc","_inTransition","newScrollPos","$oldActive","url","pageYOffset","parseInt","isScrollingUp","activeIdx","length","visibleLinks","filter","p","_this2","$links","eq","isNewActive","activeHash","activeClass","removeClass","location","pathname","search","updateHistory","history","replaceState","hash","trigger","off","concat","animationDuration","el","triggers","split","type","MutationObserver","i","prefixes","Listeners","Basic","Initializers","timer","Array","prototype","slice","call","arguments","clearTimeout","setTimeout","args","listener","apply","openListener","closeListener","toggleListener","closeableListener","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","animateOut","animation","Motion","fadeOut","toggleFocusListener","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","$nodes","resizeListener","triggerHandler","scrollListener","closeMeListener","pluginId","namespace","not","plugins","yetiBoxes","pluginName","plugNames","_typeof","console","error","map","name","listeners","join","Global","debounceGlobalListener","debounce","listeningElementsMutation","mutationRecordsList","$target","attr","attributeName","closest","elementObserver","attributes","childList","characterData","subtree","$document","addMutationEventsListener","addResizeListener","addScrollListener","triggersInitialized","addSimpleListeners","a","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","n","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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","file":"foundation.magellan.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.smoothScroll\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.smoothScroll\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.magellan\"] = factory(require(\"./foundation.core\"), require(\"./foundation.smoothScroll\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.magellan\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.smoothScroll\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_smoothScroll__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_smoothScroll__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Magellan } from '../../foundation.magellan';\nFoundation.plugin(Magellan, 'Magellan');\n\nexport { Foundation, Magellan };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { SmoothScroll } from './foundation.smoothScroll';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nclass Magellan extends Plugin {\n  /**\n   * Creates a new instance of Magellan.\n   * @class\n   * @name Magellan\n   * @fires Magellan#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options  = $.extend({}, Magellan.defaults, this.$element.data(), options);\n    this.className = 'Magellan'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this.calcPoints();\n  }\n\n  /**\n   * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n   * @private\n   */\n  _init() {\n    var id = this.$element[0].id || GetYoDigits(6, 'magellan');\n    var _this = this;\n    this.$targets = $('[data-magellan-target]');\n    this.$links = this.$element.find('a');\n    this.$element.attr({\n      'data-resize': id,\n      'data-scroll': id,\n      'id': id\n    });\n    this.$active = $();\n    this.scrollPos = parseInt(window.pageYOffset, 10);\n\n    this._events();\n  }\n\n  /**\n   * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n   * Can be invoked if new elements are added or the size of a location changes.\n   * @function\n   */\n  calcPoints() {\n    var _this = this,\n        body = document.body,\n        html = document.documentElement;\n\n    this.points = [];\n    this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n    this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n\n    this.$targets.each(function(){\n      var $tar = $(this),\n          pt = Math.round($tar.offset().top - _this.options.threshold);\n      $tar.targetPoint = pt;\n      _this.points.push(pt);\n    });\n  }\n\n  /**\n   * Initializes events for Magellan.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).one('load', function(){\n      if(_this.options.deepLinking){\n        if(location.hash){\n          _this.scrollToLoc(location.hash);\n        }\n      }\n      _this.calcPoints();\n      _this._updateActive();\n    });\n\n    _this.onLoadListener = onLoad($(window), function () {\n      _this.$element\n        .on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        })\n        .on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n          _this.scrollToLoc(arrival);\n        });\n    });\n\n    this._deepLinkScroll = function(e) {\n      if(_this.options.deepLinking) {\n        _this.scrollToLoc(window.location.hash);\n      }\n    };\n\n    $(window).on('hashchange', this._deepLinkScroll);\n  }\n\n  /**\n   * Function to scroll to a given location on the page.\n   * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n   * @function\n   */\n  scrollToLoc(loc) {\n    this._inTransition = true;\n    var _this = this;\n\n    var options = {\n      animationEasing: this.options.animationEasing,\n      animationDuration: this.options.animationDuration,\n      threshold: this.options.threshold,\n      offset: this.options.offset\n    };\n\n    SmoothScroll.scrollToLoc(loc, options, function() {\n      _this._inTransition = false;\n    })\n  }\n\n  /**\n   * Calls necessary functions to update Magellan upon DOM change\n   * @function\n   */\n  reflow() {\n    this.calcPoints();\n    this._updateActive();\n  }\n\n  /**\n   * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n   * @private\n   * @function\n   * @fires Magellan#update\n   */\n  _updateActive(/*evt, elem, scrollPos*/) {\n    if(this._inTransition) return;\n\n    const newScrollPos = parseInt(window.pageYOffset, 10);\n    const isScrollingUp = this.scrollPos > newScrollPos;\n    this.scrollPos = newScrollPos;\n\n    let activeIdx;\n    // Before the first point: no link\n    if(newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)){ /* do nothing */ }\n    // At the bottom of the page: last link\n    else if(newScrollPos + this.winHeight === this.docHeight){ activeIdx = this.points.length - 1; }\n    // Otherwhise, use the last visible link\n    else{\n      const visibleLinks = this.points.filter((p, i) => {\n        return (p - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) <= newScrollPos;\n      });\n      activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n    }\n\n    // Get the new active link\n    const $oldActive = this.$active;\n    let activeHash = '';\n    if(typeof activeIdx !== 'undefined'){\n      this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n      if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n    }else{\n      this.$active = $();\n    }\n    const isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n    const isNewHash = activeHash !== window.location.hash;\n\n    // Update the active link element\n    if(isNewActive) {\n      $oldActive.removeClass(this.options.activeClass);\n      this.$active.addClass(this.options.activeClass);\n    }\n\n    // Update the hash (it may have changed with the same active link)\n    if(this.options.deepLinking && isNewHash){\n      if(window.history.pushState){\n        // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n        const url = activeHash ? activeHash : window.location.pathname + window.location.search;\n        if(this.options.updateHistory){\n          window.history.pushState({}, '', url);\n        }else{\n          window.history.replaceState({}, '', url);\n        }\n      }else{\n        window.location.hash = activeHash;\n      }\n    }\n\n    if (isNewActive) {\n      /**\n       * Fires when magellan is finished updating to the new active element.\n       * @event Magellan#update\n       */\n    \tthis.$element.trigger('update.zf.magellan', [this.$active]);\n\t  }\n  }\n\n  /**\n   * Destroys an instance of Magellan and resets the url of the window.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.trigger .zf.magellan')\n        .find(`.${this.options.activeClass}`).removeClass(this.options.activeClass);\n\n    if(this.options.deepLinking){\n      var hash = this.$active[0].getAttribute('href');\n      window.location.hash.replace(hash, '');\n    }\n\n    $(window).off('hashchange', this._deepLinkScroll)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\n/**\n * Default settings for plugin\n */\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {Magellan};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.magellan.min.js","sources":["foundation.magellan.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.smoothScroll\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.smoothScroll\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.magellan\"] = factory(require(\"./foundation.core\"), require(\"./foundation.smoothScroll\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.magellan\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.smoothScroll\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_smoothScroll__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.smoothScroll\":\n/*!************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.smoothScroll\"],\"amd\":\"./foundation.smoothScroll\",\"commonjs\":\"./foundation.smoothScroll\",\"commonjs2\":\"./foundation.smoothScroll\"} ***!\n  \\************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_smoothScroll__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.magellan.js\":\n/*!***************************************************!*\\\n  !*** ./js/entries/plugins/foundation.magellan.js ***!\n  \\***************************************************/\n/*! exports provided: Foundation, Magellan */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_magellan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.magellan */ \"./js/foundation.magellan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Magellan\", function() { return _foundation_magellan__WEBPACK_IMPORTED_MODULE_1__[\"Magellan\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_magellan__WEBPACK_IMPORTED_MODULE_1__[\"Magellan\"], 'Magellan');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.magellan.js\":\n/*!***********************************!*\\\n  !*** ./js/foundation.magellan.js ***!\n  \\***********************************/\n/*! exports provided: Magellan */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Magellan\", function() { return Magellan; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.smoothScroll */ \"./foundation.smoothScroll\");\n/* harmony import */ var _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Magellan module.\n * @module foundation.magellan\n * @requires foundation.smoothScroll\n * @requires foundation.util.triggers\n */\n\nvar Magellan = /*#__PURE__*/function (_Plugin) {\n  _inherits(Magellan, _Plugin);\n\n  var _super = _createSuper(Magellan);\n\n  function Magellan() {\n    _classCallCheck(this, Magellan);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Magellan, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Magellan.\n     * @class\n     * @name Magellan\n     * @fires Magellan#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Magellan.defaults, this.$element.data(), options);\n      this.className = 'Magellan'; // ie9 back compat\n      // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      this.calcPoints();\n    }\n    /**\n     * Initializes the Magellan plugin and calls functions to get equalizer functioning on load.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var id = this.$element[0].id || Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'magellan');\n      this.$targets = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-magellan-target]');\n      this.$links = this.$element.find('a');\n      this.$element.attr({\n        'data-resize': id,\n        'data-scroll': id,\n        'id': id\n      });\n      this.$active = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.scrollPos = parseInt(window.pageYOffset, 10);\n\n      this._events();\n    }\n    /**\n     * Calculates an array of pixel values that are the demarcation lines between locations on the page.\n     * Can be invoked if new elements are added or the size of a location changes.\n     * @function\n     */\n\n  }, {\n    key: \"calcPoints\",\n    value: function calcPoints() {\n      var _this = this,\n          body = document.body,\n          html = document.documentElement;\n\n      this.points = [];\n      this.winHeight = Math.round(Math.max(window.innerHeight, html.clientHeight));\n      this.docHeight = Math.round(Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight));\n      this.$targets.each(function () {\n        var $tar = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            pt = Math.round($tar.offset().top - _this.options.threshold);\n        $tar.targetPoint = pt;\n\n        _this.points.push(pt);\n      });\n    }\n    /**\n     * Initializes events for Magellan.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', function () {\n        if (_this.options.deepLinking) {\n          if (location.hash) {\n            _this.scrollToLoc(location.hash);\n          }\n        }\n\n        _this.calcPoints();\n\n        _this._updateActive();\n      });\n      _this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n        _this.$element.on({\n          'resizeme.zf.trigger': _this.reflow.bind(_this),\n          'scrollme.zf.trigger': _this._updateActive.bind(_this)\n        }).on('click.zf.magellan', 'a[href^=\"#\"]', function (e) {\n          e.preventDefault();\n          var arrival = this.getAttribute('href');\n\n          _this.scrollToLoc(arrival);\n        });\n      });\n\n      this._deepLinkScroll = function () {\n        if (_this.options.deepLinking) {\n          _this.scrollToLoc(window.location.hash);\n        }\n      };\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._deepLinkScroll);\n    }\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - a properly formatted jQuery id selector. Example: '#foo'\n     * @function\n     */\n\n  }, {\n    key: \"scrollToLoc\",\n    value: function scrollToLoc(loc) {\n      this._inTransition = true;\n\n      var _this = this;\n\n      var options = {\n        animationEasing: this.options.animationEasing,\n        animationDuration: this.options.animationDuration,\n        threshold: this.options.threshold,\n        offset: this.options.offset\n      };\n      _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_2__[\"SmoothScroll\"].scrollToLoc(loc, options, function () {\n        _this._inTransition = false;\n      });\n    }\n    /**\n     * Calls necessary functions to update Magellan upon DOM change\n     * @function\n     */\n\n  }, {\n    key: \"reflow\",\n    value: function reflow() {\n      this.calcPoints();\n\n      this._updateActive();\n    }\n    /**\n     * Updates the visibility of an active location link, and updates the url hash for the page, if deepLinking enabled.\n     * @private\n     * @function\n     * @fires Magellan#update\n     */\n\n  }, {\n    key: \"_updateActive\",\n    value: function\n      /*evt, elem, scrollPos*/\n    _updateActive() {\n      var _this2 = this;\n\n      if (this._inTransition) return;\n      var newScrollPos = parseInt(window.pageYOffset, 10);\n      var isScrollingUp = this.scrollPos > newScrollPos;\n      this.scrollPos = newScrollPos;\n      var activeIdx; // Before the first point: no link\n\n      if (newScrollPos < this.points[0] - this.options.offset - (isScrollingUp ? this.options.threshold : 0)) {\n        /* do nothing */\n      } // At the bottom of the page: last link\n      else if (newScrollPos + this.winHeight === this.docHeight) {\n        activeIdx = this.points.length - 1;\n      } // Otherwhise, use the last visible link\n      else {\n        var visibleLinks = this.points.filter(function (p) {\n          return p - _this2.options.offset - (isScrollingUp ? _this2.options.threshold : 0) <= newScrollPos;\n        });\n        activeIdx = visibleLinks.length ? visibleLinks.length - 1 : 0;\n      } // Get the new active link\n\n\n      var $oldActive = this.$active;\n      var activeHash = '';\n\n      if (typeof activeIdx !== 'undefined') {\n        this.$active = this.$links.filter('[href=\"#' + this.$targets.eq(activeIdx).data('magellan-target') + '\"]');\n        if (this.$active.length) activeHash = this.$active[0].getAttribute('href');\n      } else {\n        this.$active = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      }\n\n      var isNewActive = !(!this.$active.length && !$oldActive.length) && !this.$active.is($oldActive);\n      var isNewHash = activeHash !== window.location.hash; // Update the active link element\n\n      if (isNewActive) {\n        $oldActive.removeClass(this.options.activeClass);\n        this.$active.addClass(this.options.activeClass);\n      } // Update the hash (it may have changed with the same active link)\n\n\n      if (this.options.deepLinking && isNewHash) {\n        if (window.history.pushState) {\n          // Set or remove the hash (see: https://stackoverflow.com/a/5298684/4317384\n          var url = activeHash ? activeHash : window.location.pathname + window.location.search;\n\n          if (this.options.updateHistory) {\n            window.history.pushState({}, '', url);\n          } else {\n            window.history.replaceState({}, '', url);\n          }\n        } else {\n          window.location.hash = activeHash;\n        }\n      }\n\n      if (isNewActive) {\n        /**\n         * Fires when magellan is finished updating to the new active element.\n         * @event Magellan#update\n         */\n        this.$element.trigger('update.zf.magellan', [this.$active]);\n      }\n    }\n    /**\n     * Destroys an instance of Magellan and resets the url of the window.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.trigger .zf.magellan').find(\".\".concat(this.options.activeClass)).removeClass(this.options.activeClass);\n\n      if (this.options.deepLinking) {\n        var hash = this.$active[0].getAttribute('href');\n        window.location.hash.replace(hash, '');\n      }\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._deepLinkScroll);\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n    }\n  }]);\n\n  return Magellan;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n/**\n * Default settings for plugin\n */\n\n\nMagellan.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n\n  /**\n   * Class applied to the active locations link on the magellan container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  activeClass: 'is-active',\n\n  /**\n   * Allows the script to manipulate the url of the current page, and if supported, alter the history.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinking: false,\n\n  /**\n   * Update the browser history with the active link, if deep linking is enabled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 8:\n/*!*********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.magellan.js ***!\n  \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.magellan.js */\"./js/entries/plugins/foundation.magellan.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.magellan.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_smoothScroll__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.smoothScroll","./foundation.util.motion","./js/entries/plugins/foundation.magellan.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_magellan__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.magellan.js","Magellan","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","init","_init","calcPoints","id","$targets","$links","find","attr","data-resize","data-scroll","$active","scrollPos","parseInt","pageYOffset","_events","_this","body","document","html","documentElement","points","winHeight","Math","round","max","innerHeight","clientHeight","docHeight","scrollHeight","offsetHeight","each","$tar","pt","offset","top","threshold","targetPoint","push","one","deepLinking","location","hash","scrollToLoc","_updateActive","onLoadListener","on","resizeme.zf.trigger","reflow","bind","scrollme.zf.trigger","preventDefault","arrival","getAttribute","_deepLinkScroll","loc","_inTransition","animationEasing","animationDuration","newScrollPos","isScrollingUp","$oldActive","activeHash","isNewActive","url","_this2","activeIdx","visibleLinks","filter","eq","is","isNewHash","removeClass","activeClass","addClass","history","pushState","pathname","search","updateHistory","replaceState","trigger","off","concat","replace","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","el","type","split","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","8","jquery","installedModules","m","c","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 91d54133bf910ec1ba8fc4d36d21e94b41b1dacc..561c1d52d13f418c71e6044f56800859138944e4 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.offcanvas.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.offcanvas.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","OffCanvas","element","options","_this2","this","className","$element","$","extend","defaults","data","contentClasses","base","reveal","$lastTrigger","$triggers","position","$content","nested","$sticky","isInCanvas","each","index","val","push","Triggers","init","MediaQuery","_init","_events","Keyboard","register","ESCAPE","id","attr","contentId","siblings","length","first","closest","console","warn","transition","removeClass","addClass","concat","document","find","is","match","contentOverlay","overlay","createElement","overlayPosition","css","setAttribute","$overlay","insertAfter","append","revealOnClass","RegExp","RegExpEscape","revealClass","exec","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_this3","off","on","open.zf.trigger","open","bind","close.zf.trigger","close","toggle.zf.trigger","toggle","keydown.zf.offCanvas","_handleKeyboard","closeOnClick","click.zf.offCanvas","_this","onLoadListener","onLoad","atLeast","hasReveal","join","_","el","$el","topVal","parseInt","top","absoluteTopVal","scrollTop","width","stickyData","_typeof","_addContentClasses","event","lastY","touches","pageY","delta","_canScroll","preventDefault","parent","stopPropagation","elem","allowUp","allowDown","scrollHeight","clientHeight","trigger","_this4","hasClass","forceTo","scrollTo","body","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","autoFocus","one","transitionend","canvasFocus","eq","focus","trapFocus","_fixStickyElements","_this5","removeAttr","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","releaseFocus","key","handleKey","e","jquery__WEBPACK_IMPORTED_MODULE_0___default","triggers","type","split","forEach","MutationObserver","prefixes","i","Listeners","Basic","debounceGlobalListener","debounce","listener","timer","args","prototype","clearTimeout","apply","Initializers","openListener","animation","closeableListener","animateOut","fadeOut","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","Global","resizeListener","$nodes","scrollListener","namespace","not","pluginId","closeMeListener","plugins","addClosemeListener","pluginName","yetiBoxes","plugNames","error","listeners","map","name","addResizeListener","addScrollListener","addMutationEventsListener","mutationRecordsList","target","listeningElementsMutation","$target","pageYOffset","attributeName","observe","attributes","childList","elementObserver","addSimpleListeners","$document","addGlobalListeners","Object","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","a","triggersInitialized","installedModules","m","modules","c","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","n","object","property","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.offcanvas.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.offcanvas\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.offcanvas\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { OffCanvas } from '../../foundation.offcanvas';\nFoundation.plugin(OffCanvas, 'OffCanvas');\n\nexport { Foundation, OffCanvas };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n  /**\n   * Creates a new instance of an off-canvas wrapper.\n   * @class\n   * @name OffCanvas\n   * @fires OffCanvas#init\n   * @param {Object} element - jQuery object to initialize.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.className = 'OffCanvas'; // ie9 back compat\n    this.$element = element;\n    this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n    this.contentClasses = { base: [], reveal: [] };\n    this.$lastTrigger = $();\n    this.$triggers = $();\n    this.position = 'left';\n    this.$content = $();\n    this.nested = !!(this.options.nested);\n    this.$sticky = $();\n    this.isInCanvas = false;\n\n    // Defines the CSS transition/position classes of the off-canvas content container.\n    $(['push', 'overlap']).each((index, val) => {\n      this.contentClasses.base.push('has-transition-'+val);\n    });\n    $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n      this.contentClasses.base.push('has-position-'+val);\n      this.contentClasses.reveal.push('has-reveal-'+val);\n    });\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n    MediaQuery._init();\n\n    this._init();\n    this._events();\n\n    Keyboard.register('OffCanvas', {\n      'ESCAPE': 'close'\n    });\n\n  }\n\n  /**\n   * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n   * @function\n   * @private\n   */\n  _init() {\n    var id = this.$element.attr('id');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n    if (this.options.contentId) {\n      this.$content = $('#'+this.options.contentId);\n    } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n      this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n    } else {\n      this.$content = this.$element.closest('[data-off-canvas-content]').first();\n    }\n\n    if (!this.options.contentId) {\n      // Assume that the off-canvas element is nested if it isn't a sibling of the content\n      this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n    } else if (this.options.contentId && this.options.nested === null) {\n      // Warning if using content ID without setting the nested option\n      // Once the element is nested it is required to work properly in this case\n      console.warn('Remember to use the nested option if using the content ID option!');\n    }\n\n    if (this.nested === true) {\n      // Force transition overlap if nested\n      this.options.transition = 'overlap';\n      // Remove appropriate classes if already assigned in markup\n      this.$element.removeClass('is-transition-push');\n    }\n\n    this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n    // Find triggers that affect this element and add aria-expanded to them\n    this.$triggers = $(document)\n      .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n      .attr('aria-expanded', 'false')\n      .attr('aria-controls', id);\n\n    // Get position by checking for related CSS class\n    this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n    // Add an overlay over the content if necessary\n    if (this.options.contentOverlay === true) {\n      var overlay = document.createElement('div');\n      var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n      overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n      this.$overlay = $(overlay);\n      if(overlayPosition === 'is-overlay-fixed') {\n        $(this.$overlay).insertAfter(this.$element);\n      } else {\n        this.$content.append(this.$overlay);\n      }\n    }\n\n    // Get the revealOn option from the class.\n    var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n    var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n    if (revealOnClass) {\n      this.options.isRevealed = true;\n      this.options.revealOn = this.options.revealOn || revealOnClass[1];\n    }\n\n    // Ensure the `reveal-on-*` class is set.\n    if (this.options.isRevealed === true && this.options.revealOn) {\n      this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n      this._setMQChecker();\n    }\n\n    if (this.options.transitionTime) {\n      this.$element.css('transition-duration', this.options.transitionTime);\n    }\n\n    // Find fixed elements that should stay fixed while off-canvas is opened\n    this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n    if (this.$sticky.length > 0 && this.options.transition === 'push') {\n      // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n      // Limit to push transition since there's no transform scope for overlap\n      this.options.contentScroll = false;\n    }\n\n    let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n    if (inCanvasFor && inCanvasFor.length === 2) {\n      // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n      this.options.inCanvasOn = inCanvasFor[1];\n    } else if (this.options.inCanvasOn) {\n      // Ensure the CSS class is set\n      this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n    }\n\n    if (this.options.inCanvasOn) {\n      this._checkInCanvas();\n    }\n\n    // Initally remove all transition/position CSS classes from off-canvas content container.\n    this._removeContentClasses();\n  }\n\n  /**\n   * Adds event handlers to the off-canvas wrapper and the exit overlay.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('.zf.trigger .zf.offCanvas').on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': this.close.bind(this),\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n    });\n\n    if (this.options.closeOnClick === true) {\n      var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n      $target.on({'click.zf.offCanvas': this.close.bind(this)});\n    }\n\n    if (this.options.inCanvasOn) {\n      $(window).on('changed.zf.mediaquery', () => {\n        this._checkInCanvas();\n      });\n    }\n\n  }\n\n  /**\n   * Applies event listener for elements that will reveal at certain breakpoints.\n   * @private\n   */\n  _setMQChecker() {\n    var _this = this;\n\n    this.onLoadListener = onLoad($(window), function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      }\n    });\n\n    $(window).on('changed.zf.mediaquery', function () {\n      if (MediaQuery.atLeast(_this.options.revealOn)) {\n        _this.reveal(true);\n      } else {\n        _this.reveal(false);\n      }\n    });\n  }\n\n  /**\n   * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n   * @private\n   */\n  _checkInCanvas() {\n    this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n    if (this.isInCanvas === true) {\n      this.close();\n    }\n  }\n\n  /**\n   * Removes the CSS transition/position classes of the off-canvas content container.\n   * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _removeContentClasses(hasReveal) {\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.removeClass(this.contentClasses.base.join(' '));\n    } else if (hasReveal === false) {\n      this.$content.removeClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n   * Beforehand any transition/position class gets removed.\n   * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n   * @private\n   */\n  _addContentClasses(hasReveal) {\n    this._removeContentClasses(hasReveal);\n    if (typeof hasReveal !== 'boolean') {\n      this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n    } else if (hasReveal === true) {\n      this.$content.addClass(`has-reveal-${this.position}`);\n    }\n  }\n\n  /**\n   * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n   * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n   * @private\n   */\n  _fixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n\n      // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n      // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n      if ($el.css('position') === 'fixed') {\n\n        // Save current inline styling to restore it if undoing the absolute fixing\n        let topVal = parseInt($el.css('top'), 10);\n        $el.data('offCanvasSticky', { top: topVal });\n\n        let absoluteTopVal = $(document).scrollTop() + topVal;\n        $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n      }\n    });\n  }\n\n  /**\n   * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n   * This reverts the changes of _fixStickyElements()\n   * @private\n   */\n  _unfixStickyElements() {\n    this.$sticky.each((_, el) => {\n      const $el = $(el);\n      let stickyData = $el.data('offCanvasSticky');\n\n      // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n      if (typeof stickyData === 'object') {\n        $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n        $el.data('offCanvasSticky', '');\n      }\n    });\n  }\n\n  /**\n   * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n   * @param {Boolean} isRevealed - true if element should be revealed.\n   * @function\n   */\n  reveal(isRevealed) {\n    if (isRevealed) {\n      this.close();\n      this.isRevealed = true;\n      this.$element.attr('aria-hidden', 'false');\n      this.$element.off('open.zf.trigger toggle.zf.trigger');\n      this.$element.removeClass('is-closed');\n    } else {\n      this.isRevealed = false;\n      this.$element.attr('aria-hidden', 'true');\n      this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n        'open.zf.trigger': this.open.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this)\n      });\n      this.$element.addClass('is-closed');\n    }\n    this._addContentClasses(isRevealed);\n  }\n\n  /**\n   * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n   * @function\n   * @private\n   */\n  _stopScrolling(event) {\n    return false;\n  }\n\n  /**\n   * Save current finger y-position\n   * @param event\n   * @private\n   */\n  _recordScrollable(event) {\n    const elem = this;\n    elem.lastY = event.touches[0].pageY;\n  }\n\n  /**\n   * Prevent further scrolling when it hits the edges\n   * @param event\n   * @private\n   */\n  _preventDefaultAtEdges(event) {\n    const elem = this;\n    const _this = event.data;\n    const delta = elem.lastY - event.touches[0].pageY;\n    elem.lastY = event.touches[0].pageY;\n\n    if (!_this._canScroll(delta, elem)) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * Handle continuous scrolling of scrollbox\n   * Don't bubble up to _preventDefaultAtEdges\n   * @param event\n   * @private\n   */\n  _scrollboxTouchMoved(event) {\n    const elem = this;\n    const _this = event.data;\n    const parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n    const delta = elem.lastY - event.touches[0].pageY;\n    parent.lastY = elem.lastY = event.touches[0].pageY;\n\n    event.stopPropagation();\n\n    if (!_this._canScroll(delta, elem)) {\n      if (!_this._canScroll(delta, parent)) {\n        event.preventDefault();\n      } else {\n        parent.scrollTop += delta;\n      }\n    }\n  }\n\n  /**\n   * Detect possibility of scrolling\n   * @param delta\n   * @param elem\n   * @returns boolean\n   * @private\n   */\n  _canScroll(delta, elem) {\n    const up = delta < 0;\n    const down = delta > 0;\n    const allowUp = elem.scrollTop > 0;\n    const allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n    return up && allowUp || down && allowDown;\n  }\n\n  /**\n   * Opens the off-canvas menu.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   * @fires OffCanvas#opened\n   * @todo also trigger 'open' event?\n   */\n  open(event, trigger) {\n    if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n    var _this = this;\n\n    if (trigger) {\n      this.$lastTrigger = trigger;\n    }\n\n    if (this.options.forceTo === 'top') {\n      window.scrollTo(0, 0);\n    } else if (this.options.forceTo === 'bottom') {\n      window.scrollTo(0,document.body.scrollHeight);\n    }\n\n    if (this.options.transitionTime && this.options.transition !== 'overlap') {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n    } else {\n      this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n    }\n\n    this.$element.addClass('is-open').removeClass('is-closed');\n\n    this.$triggers.attr('aria-expanded', 'true');\n    this.$element.attr('aria-hidden', 'false');\n\n    this.$content.addClass('is-open-' + this.position);\n\n    // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n    if (this.options.contentScroll === false) {\n      $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n      this.$element.on('touchstart', this._recordScrollable);\n      this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n      this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n      this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n    }\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.addClass('is-closable');\n    }\n\n    if (this.options.autoFocus === true) {\n      this.$element.one(transitionend(this.$element), function() {\n        if (!_this.$element.hasClass('is-open')) {\n          return; // exit if prematurely closed\n        }\n        var canvasFocus = _this.$element.find('[data-autofocus]');\n        if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n        } else {\n            _this.$element.find('a, button').eq(0).focus();\n        }\n      });\n    }\n\n    if (this.options.trapFocus === true) {\n      this.$content.attr('tabindex', '-1');\n      Keyboard.trapFocus(this.$element);\n    }\n\n    if (this.options.transition === 'push') {\n      this._fixStickyElements();\n    }\n\n    this._addContentClasses();\n\n    /**\n     * Fires when the off-canvas menu opens.\n     * @event OffCanvas#opened\n     */\n    this.$element.trigger('opened.zf.offCanvas');\n\n    /**\n     * Fires when the off-canvas menu open transition is done.\n     * @event OffCanvas#openedEnd\n     */\n    this.$element.one(transitionend(this.$element), () => {\n      this.$element.trigger('openedEnd.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Closes the off-canvas menu.\n   * @function\n   * @param {Function} cb - optional cb to fire after closure.\n   * @fires OffCanvas#close\n   * @fires OffCanvas#closed\n   */\n  close(cb) {\n    if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n    /**\n     * Fires when the off-canvas menu closes.\n     * @event OffCanvas#close\n     */\n    this.$element.trigger('close.zf.offCanvas');\n\n    var _this = this;\n\n    this.$element.removeClass('is-open');\n\n    this.$element.attr('aria-hidden', 'true');\n\n    this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n    if (this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-visible');\n    }\n\n    if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n      this.$overlay.removeClass('is-closable');\n    }\n\n    this.$triggers.attr('aria-expanded', 'false');\n\n\n    // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n    this.$element.one(transitionend(this.$element), (e) => {\n\n      this.$element.addClass('is-closed');\n      this._removeContentClasses();\n\n      if (this.options.transition === 'push') {\n        this._unfixStickyElements();\n      }\n\n      // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n      if (this.options.contentScroll === false) {\n        $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n        this.$element.off('touchstart', this._recordScrollable);\n        this.$element.off('touchmove', this._preventDefaultAtEdges);\n        this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._scrollboxTouchMoved);\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.removeAttr('tabindex');\n        Keyboard.releaseFocus(this.$element);\n      }\n\n      /**\n       * Fires when the off-canvas menu close transition is done.\n       * @event OffCanvas#closed\n       */\n      this.$element.trigger('closed.zf.offCanvas');\n    });\n  }\n\n  /**\n   * Toggles the off-canvas menu open or closed.\n   * @function\n   * @param {Object} event - Event object passed from listener.\n   * @param {jQuery} trigger - element that triggered the off-canvas to open.\n   */\n  toggle(event, trigger) {\n    if (this.$element.hasClass('is-open')) {\n      this.close(event, trigger);\n    }\n    else {\n      this.open(event, trigger);\n    }\n  }\n\n  /**\n   * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n   * @function\n   * @private\n   */\n  _handleKeyboard(e) {\n    Keyboard.handleKey(e, 'OffCanvas', {\n      close: () => {\n        this.close();\n        this.$lastTrigger.focus();\n        return true;\n      },\n      handled: () => {\n        e.preventDefault();\n      }\n    });\n  }\n\n  /**\n   * Destroys the OffCanvas plugin.\n   * @function\n   */\n  _destroy() {\n    this.close();\n    this.$element.off('.zf.trigger .zf.offCanvas');\n    this.$overlay.off('.zf.offCanvas');\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n  }\n}\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 9);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.offcanvas.min.js","sources":["foundation.offcanvas.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.offcanvas\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.offcanvas\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 9);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.offcanvas.js\":\n/*!****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.offcanvas.js ***!\n  \\****************************************************/\n/*! exports provided: Foundation, OffCanvas */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_offcanvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.offcanvas */ \"./js/foundation.offcanvas.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OffCanvas\", function() { return _foundation_offcanvas__WEBPACK_IMPORTED_MODULE_1__[\"OffCanvas\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_1__[\"OffCanvas\"], 'OffCanvas');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.offcanvas.js\":\n/*!************************************!*\\\n  !*** ./js/foundation.offcanvas.js ***!\n  \\************************************/\n/*! exports provided: OffCanvas */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OffCanvas\", function() { return OffCanvas; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nvar OffCanvas = /*#__PURE__*/function (_Plugin) {\n  _inherits(OffCanvas, _Plugin);\n\n  var _super = _createSuper(OffCanvas);\n\n  function OffCanvas() {\n    _classCallCheck(this, OffCanvas);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(OffCanvas, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of an off-canvas wrapper.\n     * @class\n     * @name OffCanvas\n     * @fires OffCanvas#init\n     * @param {Object} element - jQuery object to initialize.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      var _this2 = this;\n\n      this.className = 'OffCanvas'; // ie9 back compat\n\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, OffCanvas.defaults, this.$element.data(), options);\n      this.contentClasses = {\n        base: [],\n        reveal: []\n      };\n      this.$lastTrigger = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.$triggers = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.position = 'left';\n      this.$content = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.nested = !!this.options.nested;\n      this.$sticky = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n      this.isInCanvas = false; // Defines the CSS transition/position classes of the off-canvas content container.\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(['push', 'overlap']).each(function (index, val) {\n        _this2.contentClasses.base.push('has-transition-' + val);\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(['left', 'right', 'top', 'bottom']).each(function (index, val) {\n        _this2.contentClasses.base.push('has-position-' + val);\n\n        _this2.contentClasses.reveal.push('has-reveal-' + val);\n      }); // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n      this._init();\n\n      this._events();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('OffCanvas', {\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var id = this.$element.attr('id');\n      this.$element.attr('aria-hidden', 'true'); // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n\n      if (this.options.contentId) {\n        this.$content = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + this.options.contentId);\n      } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n        this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n      } else {\n        this.$content = this.$element.closest('[data-off-canvas-content]').first();\n      }\n\n      if (!this.options.contentId) {\n        // Assume that the off-canvas element is nested if it isn't a sibling of the content\n        this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n      } else if (this.options.contentId && this.options.nested === null) {\n        // Warning if using content ID without setting the nested option\n        // Once the element is nested it is required to work properly in this case\n        console.warn('Remember to use the nested option if using the content ID option!');\n      }\n\n      if (this.nested === true) {\n        // Force transition overlap if nested\n        this.options.transition = 'overlap'; // Remove appropriate classes if already assigned in markup\n\n        this.$element.removeClass('is-transition-push');\n      }\n\n      this.$element.addClass(\"is-transition-\".concat(this.options.transition, \" is-closed\")); // Find triggers that affect this element and add aria-expanded to them\n\n      this.$triggers = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).find('[data-open=\"' + id + '\"], [data-close=\"' + id + '\"], [data-toggle=\"' + id + '\"]').attr('aria-expanded', 'false').attr('aria-controls', id); // Get position by checking for related CSS class\n\n      this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position; // Add an overlay over the content if necessary\n\n      if (this.options.contentOverlay === true) {\n        var overlay = document.createElement('div');\n        var overlayPosition = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n        overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n        this.$overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()(overlay);\n\n        if (overlayPosition === 'is-overlay-fixed') {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$overlay).insertAfter(this.$element);\n        } else {\n          this.$content.append(this.$overlay);\n        }\n      } // Get the revealOn option from the class.\n\n\n      var revealOnRegExp = new RegExp(Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"RegExpEscape\"])(this.options.revealClass) + '([^\\\\s]+)', 'g');\n      var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n\n      if (revealOnClass) {\n        this.options.isRevealed = true;\n        this.options.revealOn = this.options.revealOn || revealOnClass[1];\n      } // Ensure the `reveal-on-*` class is set.\n\n\n      if (this.options.isRevealed === true && this.options.revealOn) {\n        this.$element.first().addClass(\"\".concat(this.options.revealClass).concat(this.options.revealOn));\n\n        this._setMQChecker();\n      }\n\n      if (this.options.transitionTime) {\n        this.$element.css('transition-duration', this.options.transitionTime);\n      } // Find fixed elements that should stay fixed while off-canvas is opened\n\n\n      this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n\n      if (this.$sticky.length > 0 && this.options.transition === 'push') {\n        // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n        // Limit to push transition since there's no transform scope for overlap\n        this.options.contentScroll = false;\n      }\n\n      var inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n\n      if (inCanvasFor && inCanvasFor.length === 2) {\n        // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n        this.options.inCanvasOn = inCanvasFor[1];\n      } else if (this.options.inCanvasOn) {\n        // Ensure the CSS class is set\n        this.$element.addClass(\"in-canvas-for-\".concat(this.options.inCanvasOn));\n      }\n\n      if (this.options.inCanvasOn) {\n        this._checkInCanvas();\n      } // Initally remove all transition/position CSS classes from off-canvas content container.\n\n\n      this._removeContentClasses();\n    }\n    /**\n     * Adds event handlers to the off-canvas wrapper and the exit overlay.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this3 = this;\n\n      this.$element.off('.zf.trigger .zf.offCanvas').on({\n        'open.zf.trigger': this.open.bind(this),\n        'close.zf.trigger': this.close.bind(this),\n        'toggle.zf.trigger': this.toggle.bind(this),\n        'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n      });\n\n      if (this.options.closeOnClick === true) {\n        var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n        $target.on({\n          'click.zf.offCanvas': this.close.bind(this)\n        });\n      }\n\n      if (this.options.inCanvasOn) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', function () {\n          _this3._checkInCanvas();\n        });\n      }\n    }\n    /**\n     * Applies event listener for elements that will reveal at certain breakpoints.\n     * @private\n     */\n\n  }, {\n    key: \"_setMQChecker\",\n    value: function _setMQChecker() {\n      var _this = this;\n\n      this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].atLeast(_this.options.revealOn)) {\n          _this.reveal(true);\n        }\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', function () {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].atLeast(_this.options.revealOn)) {\n          _this.reveal(true);\n        } else {\n          _this.reveal(false);\n        }\n      });\n    }\n    /**\n     * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n     * @private\n     */\n\n  }, {\n    key: \"_checkInCanvas\",\n    value: function _checkInCanvas() {\n      this.isInCanvas = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].atLeast(this.options.inCanvasOn);\n\n      if (this.isInCanvas === true) {\n        this.close();\n      }\n    }\n    /**\n     * Removes the CSS transition/position classes of the off-canvas content container.\n     * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n     * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n     * @private\n     */\n\n  }, {\n    key: \"_removeContentClasses\",\n    value: function _removeContentClasses(hasReveal) {\n      if (typeof hasReveal !== 'boolean') {\n        this.$content.removeClass(this.contentClasses.base.join(' '));\n      } else if (hasReveal === false) {\n        this.$content.removeClass(\"has-reveal-\".concat(this.position));\n      }\n    }\n    /**\n     * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n     * Beforehand any transition/position class gets removed.\n     * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n     * @private\n     */\n\n  }, {\n    key: \"_addContentClasses\",\n    value: function _addContentClasses(hasReveal) {\n      this._removeContentClasses(hasReveal);\n\n      if (typeof hasReveal !== 'boolean') {\n        this.$content.addClass(\"has-transition-\".concat(this.options.transition, \" has-position-\").concat(this.position));\n      } else if (hasReveal === true) {\n        this.$content.addClass(\"has-reveal-\".concat(this.position));\n      }\n    }\n    /**\n     * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n     * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n     * @private\n     */\n\n  }, {\n    key: \"_fixStickyElements\",\n    value: function _fixStickyElements() {\n      this.$sticky.each(function (_, el) {\n        var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el); // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n        // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n\n        if ($el.css('position') === 'fixed') {\n          // Save current inline styling to restore it if undoing the absolute fixing\n          var topVal = parseInt($el.css('top'), 10);\n          $el.data('offCanvasSticky', {\n            top: topVal\n          });\n          var absoluteTopVal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).scrollTop() + topVal;\n          $el.css({\n            top: \"\".concat(absoluteTopVal, \"px\"),\n            width: '100%',\n            transition: 'none'\n          });\n        }\n      });\n    }\n    /**\n     * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n     * This reverts the changes of _fixStickyElements()\n     * @private\n     */\n\n  }, {\n    key: \"_unfixStickyElements\",\n    value: function _unfixStickyElements() {\n      this.$sticky.each(function (_, el) {\n        var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el);\n        var stickyData = $el.data('offCanvasSticky'); // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n\n        if (_typeof(stickyData) === 'object') {\n          $el.css({\n            top: \"\".concat(stickyData.top, \"px\"),\n            width: '',\n            transition: ''\n          });\n          $el.data('offCanvasSticky', '');\n        }\n      });\n    }\n    /**\n     * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n     * @param {Boolean} isRevealed - true if element should be revealed.\n     * @function\n     */\n\n  }, {\n    key: \"reveal\",\n    value: function reveal(isRevealed) {\n      if (isRevealed) {\n        this.close();\n        this.isRevealed = true;\n        this.$element.attr('aria-hidden', 'false');\n        this.$element.off('open.zf.trigger toggle.zf.trigger');\n        this.$element.removeClass('is-closed');\n      } else {\n        this.isRevealed = false;\n        this.$element.attr('aria-hidden', 'true');\n        this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n          'open.zf.trigger': this.open.bind(this),\n          'toggle.zf.trigger': this.toggle.bind(this)\n        });\n        this.$element.addClass('is-closed');\n      }\n\n      this._addContentClasses(isRevealed);\n    }\n    /**\n     * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_stopScrolling\",\n    value: function _stopScrolling() {\n      return false;\n    }\n    /**\n     * Save current finger y-position\n     * @param event\n     * @private\n     */\n\n  }, {\n    key: \"_recordScrollable\",\n    value: function _recordScrollable(event) {\n      var elem = this;\n      elem.lastY = event.touches[0].pageY;\n    }\n    /**\n     * Prevent further scrolling when it hits the edges\n     * @param event\n     * @private\n     */\n\n  }, {\n    key: \"_preventDefaultAtEdges\",\n    value: function _preventDefaultAtEdges(event) {\n      var elem = this;\n      var _this = event.data;\n      var delta = elem.lastY - event.touches[0].pageY;\n      elem.lastY = event.touches[0].pageY;\n\n      if (!_this._canScroll(delta, elem)) {\n        event.preventDefault();\n      }\n    }\n    /**\n     * Handle continuous scrolling of scrollbox\n     * Don't bubble up to _preventDefaultAtEdges\n     * @param event\n     * @private\n     */\n\n  }, {\n    key: \"_scrollboxTouchMoved\",\n    value: function _scrollboxTouchMoved(event) {\n      var elem = this;\n      var _this = event.data;\n      var parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n      var delta = elem.lastY - event.touches[0].pageY;\n      parent.lastY = elem.lastY = event.touches[0].pageY;\n      event.stopPropagation();\n\n      if (!_this._canScroll(delta, elem)) {\n        if (!_this._canScroll(delta, parent)) {\n          event.preventDefault();\n        } else {\n          parent.scrollTop += delta;\n        }\n      }\n    }\n    /**\n     * Detect possibility of scrolling\n     * @param delta\n     * @param elem\n     * @returns boolean\n     * @private\n     */\n\n  }, {\n    key: \"_canScroll\",\n    value: function _canScroll(delta, elem) {\n      var up = delta < 0;\n      var down = delta > 0;\n      var allowUp = elem.scrollTop > 0;\n      var allowDown = elem.scrollTop < elem.scrollHeight - elem.clientHeight;\n      return up && allowUp || down && allowDown;\n    }\n    /**\n     * Opens the off-canvas menu.\n     * @function\n     * @param {Object} event - Event object passed from listener.\n     * @param {jQuery} trigger - element that triggered the off-canvas to open.\n     * @fires OffCanvas#opened\n     * @todo also trigger 'open' event?\n     */\n\n  }, {\n    key: \"open\",\n    value: function open(event, trigger) {\n      var _this4 = this;\n\n      if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) {\n        return;\n      }\n\n      var _this = this;\n\n      if (trigger) {\n        this.$lastTrigger = trigger;\n      }\n\n      if (this.options.forceTo === 'top') {\n        window.scrollTo(0, 0);\n      } else if (this.options.forceTo === 'bottom') {\n        window.scrollTo(0, document.body.scrollHeight);\n      }\n\n      if (this.options.transitionTime && this.options.transition !== 'overlap') {\n        this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n      } else {\n        this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n      }\n\n      this.$element.addClass('is-open').removeClass('is-closed');\n      this.$triggers.attr('aria-expanded', 'true');\n      this.$element.attr('aria-hidden', 'false');\n      this.$content.addClass('is-open-' + this.position); // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n\n      if (this.options.contentScroll === false) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n        this.$element.on('touchstart', this._recordScrollable);\n        this.$element.on('touchmove', this, this._preventDefaultAtEdges);\n        this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n        this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this, this._scrollboxTouchMoved);\n      }\n\n      if (this.options.contentOverlay === true) {\n        this.$overlay.addClass('is-visible');\n      }\n\n      if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n        this.$overlay.addClass('is-closable');\n      }\n\n      if (this.options.autoFocus === true) {\n        this.$element.one(Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(this.$element), function () {\n          if (!_this.$element.hasClass('is-open')) {\n            return; // exit if prematurely closed\n          }\n\n          var canvasFocus = _this.$element.find('[data-autofocus]');\n\n          if (canvasFocus.length) {\n            canvasFocus.eq(0).focus();\n          } else {\n            _this.$element.find('a, button').eq(0).focus();\n          }\n        });\n      }\n\n      if (this.options.trapFocus === true) {\n        this.$content.attr('tabindex', '-1');\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n      }\n\n      if (this.options.transition === 'push') {\n        this._fixStickyElements();\n      }\n\n      this._addContentClasses();\n      /**\n       * Fires when the off-canvas menu opens.\n       * @event OffCanvas#opened\n       */\n\n\n      this.$element.trigger('opened.zf.offCanvas');\n      /**\n       * Fires when the off-canvas menu open transition is done.\n       * @event OffCanvas#openedEnd\n       */\n\n      this.$element.one(Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(this.$element), function () {\n        _this4.$element.trigger('openedEnd.zf.offCanvas');\n      });\n    }\n    /**\n     * Closes the off-canvas menu.\n     * @function\n     * @param {Function} cb - optional cb to fire after closure.\n     * @fires OffCanvas#close\n     * @fires OffCanvas#closed\n     */\n\n  }, {\n    key: \"close\",\n    value: function close() {\n      var _this5 = this;\n\n      if (!this.$element.hasClass('is-open') || this.isRevealed) {\n        return;\n      }\n      /**\n       * Fires when the off-canvas menu closes.\n       * @event OffCanvas#close\n       */\n\n\n      this.$element.trigger('close.zf.offCanvas');\n      this.$element.removeClass('is-open');\n      this.$element.attr('aria-hidden', 'true');\n      this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n      if (this.options.contentOverlay === true) {\n        this.$overlay.removeClass('is-visible');\n      }\n\n      if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n        this.$overlay.removeClass('is-closable');\n      }\n\n      this.$triggers.attr('aria-expanded', 'false'); // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n\n      this.$element.one(Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(this.$element), function () {\n        _this5.$element.addClass('is-closed');\n\n        _this5._removeContentClasses();\n\n        if (_this5.options.transition === 'push') {\n          _this5._unfixStickyElements();\n        } // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n\n\n        if (_this5.options.contentScroll === false) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').removeClass('is-off-canvas-open').off('touchmove', _this5._stopScrolling);\n\n          _this5.$element.off('touchstart', _this5._recordScrollable);\n\n          _this5.$element.off('touchmove', _this5._preventDefaultAtEdges);\n\n          _this5.$element.off('touchstart', '[data-off-canvas-scrollbox]', _this5._recordScrollable);\n\n          _this5.$element.off('touchmove', '[data-off-canvas-scrollbox]', _this5._scrollboxTouchMoved);\n        }\n\n        if (_this5.options.trapFocus === true) {\n          _this5.$content.removeAttr('tabindex');\n\n          _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this5.$element);\n        }\n        /**\n         * Fires when the off-canvas menu close transition is done.\n         * @event OffCanvas#closed\n         */\n\n\n        _this5.$element.trigger('closed.zf.offCanvas');\n      });\n    }\n    /**\n     * Toggles the off-canvas menu open or closed.\n     * @function\n     * @param {Object} event - Event object passed from listener.\n     * @param {jQuery} trigger - element that triggered the off-canvas to open.\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle(event, trigger) {\n      if (this.$element.hasClass('is-open')) {\n        this.close(event, trigger);\n      } else {\n        this.open(event, trigger);\n      }\n    }\n    /**\n     * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_handleKeyboard\",\n    value: function _handleKeyboard(e) {\n      var _this6 = this;\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'OffCanvas', {\n        close: function close() {\n          _this6.close();\n\n          _this6.$lastTrigger.focus();\n\n          return true;\n        },\n        handled: function handled() {\n          e.preventDefault();\n        }\n      });\n    }\n    /**\n     * Destroys the OffCanvas plugin.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.close();\n      this.$element.off('.zf.trigger .zf.offCanvas');\n      this.$overlay.off('.zf.offCanvas');\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n    }\n  }]);\n\n  return OffCanvas;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nOffCanvas.defaults = {\n  /**\n   * Allow the user to click outside of the menu to close it.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Adds an overlay on top of `[data-off-canvas-content]`.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentOverlay: true,\n\n  /**\n   * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  contentId: null,\n\n  /**\n   * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n   * @option\n   * @type {boolean}\n   * @default null\n   */\n  nested: null,\n\n  /**\n   * Enable/disable scrolling of the main content when an off canvas panel is open.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  contentScroll: true,\n\n  /**\n   * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n   * @option\n   * @type {string}\n   * @default null\n   */\n  transitionTime: null,\n\n  /**\n   * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n   * @option\n   * @type {string}\n   * @default push\n   */\n  transition: 'push',\n\n  /**\n   * Force the page to scroll to top or bottom on open.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  forceTo: null,\n\n  /**\n   * Allow the OffCanvas to remain open for certain breakpoints.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  isRevealed: false,\n\n  /**\n   * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  revealOn: null,\n\n  /**\n   * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n   * @option\n   * @type {?string}\n   * @default null\n   */\n  inCanvasOn: null,\n\n  /**\n   * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  autoFocus: true,\n\n  /**\n   * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n   * @option\n   * @type {string}\n   * @default reveal-for-\n   * @todo improve the regex testing for this.\n   */\n  revealClass: 'reveal-for-',\n\n  /**\n   * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  trapFocus: false\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 9:\n/*!**********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.offcanvas.js ***!\n  \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.offcanvas.js */\"./js/entries/plugins/foundation.offcanvas.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.offcanvas.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.keyboard","./foundation.util.mediaQuery","./foundation.util.motion","./js/entries/plugins/foundation.offcanvas.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_offcanvas__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.offcanvas.js","OffCanvas","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","_this2","className","$element","a","extend","defaults","data","contentClasses","base","reveal","$lastTrigger","$triggers","position","$content","nested","$sticky","isInCanvas","each","index","val","push","init","_init","_events","register","ESCAPE","id","attr","contentId","siblings","first","closest","console","warn","transition","removeClass","addClass","concat","document","find","is","match","contentOverlay","overlay","createElement","overlayPosition","css","setAttribute","$overlay","insertAfter","append","revealOnClass","RegExp","revealClass","exec","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_this3","off","on","open.zf.trigger","open","bind","close.zf.trigger","close","toggle.zf.trigger","toggle","keydown.zf.offCanvas","_handleKeyboard","closeOnClick","click.zf.offCanvas","_this","onLoadListener","atLeast","hasReveal","join","_","el","$el","topVal","parseInt","top","absoluteTopVal","scrollTop","width","stickyData","_addContentClasses","event","lastY","touches","pageY","delta","_canScroll","preventDefault","parent","stopPropagation","elem","allowUp","allowDown","scrollHeight","clientHeight","trigger","_this4","hasClass","forceTo","scrollTo","body","_stopScrolling","_recordScrollable","_preventDefaultAtEdges","_scrollboxTouchMoved","autoFocus","one","canvasFocus","eq","focus","trapFocus","_fixStickyElements","_this5","_unfixStickyElements","removeAttr","releaseFocus","_this6","handleKey","handled","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","type","split","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","error","listeners","map","name","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","9","jquery","installedModules","m","c","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 5c5c4b4d3e346760ddcafa207c129be377d7c3ce..c182314964d2ab694a821474574821626e9c9a5d 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.timer\"],\"amd\":\"./foundation.util.timer\",\"commonjs\":\"./foundation.util.timer\",\"commonjs2\":\"./foundation.util.timer\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.orbit.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.orbit.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_timer__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_orbit__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Orbit","Plugin","element","options","this","$element","$","extend","defaults","data","className","Touch","init","_init","Keyboard","register","ltr","ARROW_RIGHT","ARROW_LEFT","rtl","_reset","$wrapper","find","concat","containerClass","$slides","slideClass","$images","initActive","filter","id","GetYoDigits","attr","data-resize","length","eq","addClass","useMUI","onImagesLoaded","_prepareForOrbit","bind","bullets","_loadBullets","_events","autoPlay","geoSync","accessible","$bullets","boxOfBullets","_this","timer","Timer","duration","timerDelay","infinite","changeSlide","start","temp","max","each","jquery__WEBPACK_IMPORTED_MODULE_0___default","counter","display","test","cb","css","height","on","e","preventDefault","pauseOnHover","pause","navButtons","$controls","hasClass","nextClass","idx","$slide","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","handleKey","next","handled","target","is","focus","off","first","show","trigger","$curSlide","$firstSlide","$lastSlide","last","dirIn","isLTR","$newSlide","chosenSlide","infiniteWrap","index","_updateBullets","Motion","animateIn","animateOut","removeClass","dirOut","removeAttr","isPaused","restart","hide","$oldBullet","$othersBullets","not","$newBullet","blur","spans","activeStateDescriptor","children","toArray","map","b","every","count","detach","append","end","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","swipe","prevClass","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.orbit.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.timer\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.timer\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.orbit\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.timer\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.orbit\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.timer\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_timer__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_timer__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Orbit } from '../../foundation.orbit';\nFoundation.plugin(Orbit, 'Orbit');\n\nexport { Foundation, Orbit };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Motion } from './foundation.util.motion';\nimport { Timer } from './foundation.util.timer';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nclass Orbit extends Plugin {\n  /**\n  * Creates a new instance of an orbit carousel.\n  * @class\n  * @name Orbit\n  * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n  * @param {Object} options - Overrides to the default plugin settings.\n  */\n  _setup(element, options){\n    this.$element = element;\n    this.options = $.extend({}, Orbit.defaults, this.$element.data(), options);\n    this.className = 'Orbit'; // ie9 back compat\n\n    Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n    this._init();\n\n    Keyboard.register('Orbit', {\n      'ltr': {\n        'ARROW_RIGHT': 'next',\n        'ARROW_LEFT': 'previous'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'next',\n        'ARROW_RIGHT': 'previous'\n      }\n    });\n  }\n\n  /**\n  * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n  * @function\n  * @private\n  */\n  _init() {\n    // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n    this._reset();\n\n    this.$wrapper = this.$element.find(`.${this.options.containerClass}`);\n    this.$slides = this.$element.find(`.${this.options.slideClass}`);\n\n    var $images = this.$element.find('img'),\n        initActive = this.$slides.filter('.is-active'),\n        id = this.$element[0].id || GetYoDigits(6, 'orbit');\n\n    this.$element.attr({\n      'data-resize': id,\n      'id': id\n    });\n\n    if (!initActive.length) {\n      this.$slides.eq(0).addClass('is-active');\n    }\n\n    if (!this.options.useMUI) {\n      this.$slides.addClass('no-motionui');\n    }\n\n    if ($images.length) {\n      onImagesLoaded($images, this._prepareForOrbit.bind(this));\n    } else {\n      this._prepareForOrbit();//hehe\n    }\n\n    if (this.options.bullets) {\n      this._loadBullets();\n    }\n\n    this._events();\n\n    if (this.options.autoPlay && this.$slides.length > 1) {\n      this.geoSync();\n    }\n\n    if (this.options.accessible) { // allow wrapper to be focusable to enable arrow navigation\n      this.$wrapper.attr('tabindex', 0);\n    }\n  }\n\n  /**\n  * Creates a jQuery collection of bullets, if they are being used.\n  * @function\n  * @private\n  */\n  _loadBullets() {\n    this.$bullets = this.$element.find(`.${this.options.boxOfBullets}`).find('button');\n  }\n\n  /**\n  * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n  * @function\n  */\n  geoSync() {\n    var _this = this;\n    this.timer = new Timer(\n      this.$element,\n      {\n        duration: this.options.timerDelay,\n        infinite: false\n      },\n      function() {\n        _this.changeSlide(true);\n      });\n    this.timer.start();\n  }\n\n  /**\n  * Sets wrapper and slide heights for the orbit.\n  * @function\n  * @private\n  */\n  _prepareForOrbit() {\n    var _this = this;\n    this._setWrapperHeight();\n  }\n\n  /**\n  * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n  * @function\n  * @private\n  * @param {Function} cb - a callback function to fire when complete.\n  */\n  _setWrapperHeight(cb) {//rewrite this to `for` loop\n    var max = 0, temp, counter = 0, _this = this;\n\n    this.$slides.each(function() {\n      temp = this.getBoundingClientRect().height;\n      $(this).attr('data-slide', counter);\n\n      // hide all slides but the active one\n      if (!/mui/g.test($(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n        $(this).css({'display': 'none'});\n      }\n      max = temp > max ? temp : max;\n      counter++;\n    });\n\n    if (counter === this.$slides.length) {\n      this.$wrapper.css({'height': max}); //only change the wrapper height property once.\n      if(cb) {cb(max);} //fire callback with max height dimension.\n    }\n  }\n\n  /**\n  * Sets the max-height of each slide.\n  * @function\n  * @private\n  */\n  _setSlideHeight(height) {\n    this.$slides.each(function() {\n      $(this).css('max-height', height);\n    });\n  }\n\n  /**\n  * Adds event listeners to basically everything within the element.\n  * @function\n  * @private\n  */\n  _events() {\n    var _this = this;\n\n    //***************************************\n    //**Now using custom event - thanks to:**\n    //**      Yohai Ararat of Toronto      **\n    //***************************************\n    //\n    this.$element.off('.resizeme.zf.trigger').on({\n      'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n    })\n    if (this.$slides.length > 1) {\n\n      if (this.options.swipe) {\n        this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit')\n        .on('swipeleft.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(true);\n        }).on('swiperight.zf.orbit', function(e){\n          e.preventDefault();\n          _this.changeSlide(false);\n        });\n      }\n      //***************************************\n\n      if (this.options.autoPlay) {\n        this.$slides.on('click.zf.orbit', function() {\n          _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n          _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n        });\n\n        if (this.options.pauseOnHover) {\n          this.$element.on('mouseenter.zf.orbit', function() {\n            _this.timer.pause();\n          }).on('mouseleave.zf.orbit', function() {\n            if (!_this.$element.data('clickedOn')) {\n              _this.timer.start();\n            }\n          });\n        }\n      }\n\n      if (this.options.navButtons) {\n        var $controls = this.$element.find(`.${this.options.nextClass}, .${this.options.prevClass}`);\n        $controls.attr('tabindex', 0)\n        //also need to handle enter/return and spacebar key presses\n        .on('click.zf.orbit touchend.zf.orbit', function(e){\n\t  e.preventDefault();\n          _this.changeSlide($(this).hasClass(_this.options.nextClass));\n        });\n      }\n\n      if (this.options.bullets) {\n        this.$bullets.on('click.zf.orbit touchend.zf.orbit', function() {\n          if (/is-active/g.test(this.className)) { return false; }//if this is active, kick out of function.\n          var idx = $(this).data('slide'),\n          ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n          $slide = _this.$slides.eq(idx);\n\n          _this.changeSlide(ltr, $slide, idx);\n        });\n      }\n\n      if (this.options.accessible) {\n        this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function(e) {\n          // handle keyboard event with keyboard util\n          Keyboard.handleKey(e, 'Orbit', {\n            next: function() {\n              _this.changeSlide(true);\n            },\n            previous: function() {\n              _this.changeSlide(false);\n            },\n            handled: function() { // if bullet is focused, make sure focus moves\n              if ($(e.target).is(_this.$bullets)) {\n                _this.$bullets.filter('.is-active').focus();\n              }\n            }\n          });\n        });\n      }\n    }\n  }\n\n  /**\n   * Resets Orbit so it can be reinitialized\n   */\n  _reset() {\n    // Don't do anything if there are no slides (first run)\n    if (typeof this.$slides == 'undefined') {\n      return;\n    }\n\n    if (this.$slides.length > 1) {\n      // Remove old events\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit')\n\n      // Restart timer if autoPlay is enabled\n      if (this.options.autoPlay) {\n        this.timer.restart();\n      }\n\n      // Reset all sliddes\n      this.$slides.each(function(el) {\n        $(el).removeClass('is-active is-active is-in')\n          .removeAttr('aria-live')\n          .hide();\n      });\n\n      // Show the first slide\n      this.$slides.first().addClass('is-active').show();\n\n      // Triggers when the slide has finished animating\n      this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]);\n\n      // Select first bullet if bullets are present\n      if (this.options.bullets) {\n        this._updateBullets(0);\n      }\n    }\n  }\n\n  /**\n  * Changes the current slide to a new one.\n  * @function\n  * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n  * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n  * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n  * @fires Orbit#slidechange\n  */\n  changeSlide(isLTR, chosenSlide, idx) {\n    if (!this.$slides) {return; } // Don't freak out if we're in the middle of cleanup\n    var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n    if (/mui/g.test($curSlide[0].className)) { return false; } //if the slide is currently animating, kick out of the function\n\n    var $firstSlide = this.$slides.first(),\n    $lastSlide = this.$slides.last(),\n    dirIn = isLTR ? 'Right' : 'Left',\n    dirOut = isLTR ? 'Left' : 'Right',\n    _this = this,\n    $newSlide;\n\n    if (!chosenSlide) { //most of the time, this will be auto played or clicked from the navButtons.\n      $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n      (this.options.infiniteWrap ? $curSlide.next(`.${this.options.slideClass}`).length ? $curSlide.next(`.${this.options.slideClass}`) : $firstSlide : $curSlide.next(`.${this.options.slideClass}`))//pick next slide if moving left to right\n      :\n      (this.options.infiniteWrap ? $curSlide.prev(`.${this.options.slideClass}`).length ? $curSlide.prev(`.${this.options.slideClass}`) : $lastSlide : $curSlide.prev(`.${this.options.slideClass}`));//pick prev slide if moving right to left\n    } else {\n      $newSlide = chosenSlide;\n    }\n\n    if ($newSlide.length) {\n      /**\n      * Triggers before the next slide starts animating in and only if a next slide has been found.\n      * @event Orbit#beforeslidechange\n      */\n      this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n      if (this.options.bullets) {\n        idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n        this._updateBullets(idx);\n      }\n\n      if (this.options.useMUI && !this.$element.is(':hidden')) {\n        Motion.animateIn(\n          $newSlide.addClass('is-active'),\n          this.options[`animInFrom${dirIn}`],\n          function(){\n            $newSlide.css({'display': 'block'}).attr('aria-live', 'polite');\n        });\n\n        Motion.animateOut(\n          $curSlide.removeClass('is-active'),\n          this.options[`animOutTo${dirOut}`],\n          function(){\n            $curSlide.removeAttr('aria-live');\n            if(_this.options.autoPlay && !_this.timer.isPaused){\n              _this.timer.restart();\n            }\n            //do stuff?\n          });\n      } else {\n        $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n        $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n        if (this.options.autoPlay && !this.timer.isPaused) {\n          this.timer.restart();\n        }\n      }\n    /**\n    * Triggers when the slide has finished animating in.\n    * @event Orbit#slidechange\n    */\n      this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n    }\n  }\n\n  /**\n  * Updates the active state of the bullets, if displayed.\n  * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n  * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n  *\n  * @function\n  * @private\n  * @param {Number} idx - the index of the current slide.\n  */\n  _updateBullets(idx) {\n    var $oldBullet = this.$bullets.filter('.is-active');\n    var $othersBullets = this.$bullets.not('.is-active');\n    var $newBullet = this.$bullets.eq(idx);\n\n    $oldBullet.removeClass('is-active').blur();\n    $newBullet.addClass('is-active');\n\n    // Find the descriptor for the current slide to move it to the new slide button\n    var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last();\n\n    // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n    if (!activeStateDescriptor.length) {\n      var spans = $oldBullet.children('span');\n      var spanCountInOthersBullets = $othersBullets.toArray().map(b => $(b).children('span').length);\n\n      // If there is an exceeding span element, use it as current slide descriptor\n      if (spanCountInOthersBullets.every(count => count < spans.length)) {\n        activeStateDescriptor = spans.last();\n        activeStateDescriptor.attr('data-slide-active-label', '');\n      }\n    }\n\n    // Move the current slide descriptor to the new slide button\n    if (activeStateDescriptor.length) {\n      activeStateDescriptor.detach();\n      $newBullet.append(activeStateDescriptor);\n    }\n  }\n\n  /**\n  * Destroys the carousel and hides the element.\n  * @function\n  */\n  _destroy() {\n    this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n  }\n}\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\nexport {Orbit};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.orbit.min.js","sources":["foundation.orbit.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.timer\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.timer\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.orbit\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.timer\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.orbit\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.timer\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_timer__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 10);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.imageLoader\":\n/*!****************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n  \\****************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./foundation.util.timer\":\n/*!****************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.timer\"],\"amd\":\"./foundation.util.timer\",\"commonjs\":\"./foundation.util.timer\",\"commonjs2\":\"./foundation.util.timer\"} ***!\n  \\****************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_timer__;\n\n/***/ }),\n\n/***/ \"./foundation.util.touch\":\n/*!****************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n  \\****************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.orbit.js\":\n/*!************************************************!*\\\n  !*** ./js/entries/plugins/foundation.orbit.js ***!\n  \\************************************************/\n/*! exports provided: Foundation, Orbit */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_orbit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.orbit */ \"./js/foundation.orbit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Orbit\", function() { return _foundation_orbit__WEBPACK_IMPORTED_MODULE_1__[\"Orbit\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_orbit__WEBPACK_IMPORTED_MODULE_1__[\"Orbit\"], 'Orbit');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.orbit.js\":\n/*!********************************!*\\\n  !*** ./js/foundation.orbit.js ***!\n  \\********************************/\n/*! exports provided: Orbit */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Orbit\", function() { return Orbit; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_timer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.timer */ \"./foundation.util.timer\");\n/* harmony import */ var _foundation_util_timer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_timer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.imageLoader */ \"./foundation.util.imageLoader\");\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./foundation.util.touch */ \"./foundation.util.touch\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n/**\n * Orbit module.\n * @module foundation.orbit\n * @requires foundation.util.keyboard\n * @requires foundation.util.motion\n * @requires foundation.util.timer\n * @requires foundation.util.imageLoader\n * @requires foundation.util.touch\n */\n\nvar Orbit = /*#__PURE__*/function (_Plugin) {\n  _inherits(Orbit, _Plugin);\n\n  var _super = _createSuper(Orbit);\n\n  function Orbit() {\n    _classCallCheck(this, Orbit);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Orbit, [{\n    key: \"_setup\",\n    value:\n    /**\n    * Creates a new instance of an orbit carousel.\n    * @class\n    * @name Orbit\n    * @param {jQuery} element - jQuery object to make into an Orbit Carousel.\n    * @param {Object} options - Overrides to the default plugin settings.\n    */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Orbit.defaults, this.$element.data(), options);\n      this.className = 'Orbit'; // ie9 back compat\n\n      _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Touch init is idempotent, we just need to make sure it's initialied.\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Orbit', {\n        'ltr': {\n          'ARROW_RIGHT': 'next',\n          'ARROW_LEFT': 'previous'\n        },\n        'rtl': {\n          'ARROW_LEFT': 'next',\n          'ARROW_RIGHT': 'previous'\n        }\n      });\n    }\n    /**\n    * Initializes the plugin by creating jQuery collections, setting attributes, and starting the animation.\n    * @function\n    * @private\n    */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      // @TODO: consider discussion on PR #9278 about DOM pollution by changeSlide\n      this._reset();\n\n      this.$wrapper = this.$element.find(\".\".concat(this.options.containerClass));\n      this.$slides = this.$element.find(\".\".concat(this.options.slideClass));\n      var $images = this.$element.find('img'),\n          initActive = this.$slides.filter('.is-active'),\n          id = this.$element[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_5__[\"GetYoDigits\"])(6, 'orbit');\n      this.$element.attr({\n        'data-resize': id,\n        'id': id\n      });\n\n      if (!initActive.length) {\n        this.$slides.eq(0).addClass('is-active');\n      }\n\n      if (!this.options.useMUI) {\n        this.$slides.addClass('no-motionui');\n      }\n\n      if ($images.length) {\n        Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__[\"onImagesLoaded\"])($images, this._prepareForOrbit.bind(this));\n      } else {\n        this._prepareForOrbit(); //hehe\n\n      }\n\n      if (this.options.bullets) {\n        this._loadBullets();\n      }\n\n      this._events();\n\n      if (this.options.autoPlay && this.$slides.length > 1) {\n        this.geoSync();\n      }\n\n      if (this.options.accessible) {\n        // allow wrapper to be focusable to enable arrow navigation\n        this.$wrapper.attr('tabindex', 0);\n      }\n    }\n    /**\n    * Creates a jQuery collection of bullets, if they are being used.\n    * @function\n    * @private\n    */\n\n  }, {\n    key: \"_loadBullets\",\n    value: function _loadBullets() {\n      this.$bullets = this.$element.find(\".\".concat(this.options.boxOfBullets)).find('button');\n    }\n    /**\n    * Sets a `timer` object on the orbit, and starts the counter for the next slide.\n    * @function\n    */\n\n  }, {\n    key: \"geoSync\",\n    value: function geoSync() {\n      var _this = this;\n\n      this.timer = new _foundation_util_timer__WEBPACK_IMPORTED_MODULE_3__[\"Timer\"](this.$element, {\n        duration: this.options.timerDelay,\n        infinite: false\n      }, function () {\n        _this.changeSlide(true);\n      });\n      this.timer.start();\n    }\n    /**\n    * Sets wrapper and slide heights for the orbit.\n    * @function\n    * @private\n    */\n\n  }, {\n    key: \"_prepareForOrbit\",\n    value: function _prepareForOrbit() {\n      this._setWrapperHeight();\n    }\n    /**\n    * Calulates the height of each slide in the collection, and uses the tallest one for the wrapper height.\n    * @function\n    * @private\n    * @param {Function} cb - a callback function to fire when complete.\n    */\n\n  }, {\n    key: \"_setWrapperHeight\",\n    value: function _setWrapperHeight(cb) {\n      //rewrite this to `for` loop\n      var max = 0,\n          temp,\n          counter = 0,\n          _this = this;\n\n      this.$slides.each(function () {\n        temp = this.getBoundingClientRect().height;\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-slide', counter); // hide all slides but the active one\n\n        if (!/mui/g.test(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)[0].className) && _this.$slides.filter('.is-active')[0] !== _this.$slides.eq(counter)[0]) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).css({\n            'display': 'none'\n          });\n        }\n\n        max = temp > max ? temp : max;\n        counter++;\n      });\n\n      if (counter === this.$slides.length) {\n        this.$wrapper.css({\n          'height': max\n        }); //only change the wrapper height property once.\n\n        if (cb) {\n          cb(max);\n        } //fire callback with max height dimension.\n\n      }\n    }\n    /**\n    * Sets the max-height of each slide.\n    * @function\n    * @private\n    */\n\n  }, {\n    key: \"_setSlideHeight\",\n    value: function _setSlideHeight(height) {\n      this.$slides.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).css('max-height', height);\n      });\n    }\n    /**\n    * Adds event listeners to basically everything within the element.\n    * @function\n    * @private\n    */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this; //***************************************\n      //**Now using custom event - thanks to:**\n      //**      Yohai Ararat of Toronto      **\n      //***************************************\n      //\n\n\n      this.$element.off('.resizeme.zf.trigger').on({\n        'resizeme.zf.trigger': this._prepareForOrbit.bind(this)\n      });\n\n      if (this.$slides.length > 1) {\n        if (this.options.swipe) {\n          this.$slides.off('swipeleft.zf.orbit swiperight.zf.orbit').on('swipeleft.zf.orbit', function (e) {\n            e.preventDefault();\n\n            _this.changeSlide(true);\n          }).on('swiperight.zf.orbit', function (e) {\n            e.preventDefault();\n\n            _this.changeSlide(false);\n          });\n        } //***************************************\n\n\n        if (this.options.autoPlay) {\n          this.$slides.on('click.zf.orbit', function () {\n            _this.$element.data('clickedOn', _this.$element.data('clickedOn') ? false : true);\n\n            _this.timer[_this.$element.data('clickedOn') ? 'pause' : 'start']();\n          });\n\n          if (this.options.pauseOnHover) {\n            this.$element.on('mouseenter.zf.orbit', function () {\n              _this.timer.pause();\n            }).on('mouseleave.zf.orbit', function () {\n              if (!_this.$element.data('clickedOn')) {\n                _this.timer.start();\n              }\n            });\n          }\n        }\n\n        if (this.options.navButtons) {\n          var $controls = this.$element.find(\".\".concat(this.options.nextClass, \", .\").concat(this.options.prevClass));\n          $controls.attr('tabindex', 0) //also need to handle enter/return and spacebar key presses\n          .on('click.zf.orbit touchend.zf.orbit', function (e) {\n            e.preventDefault();\n\n            _this.changeSlide(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hasClass(_this.options.nextClass));\n          });\n        }\n\n        if (this.options.bullets) {\n          this.$bullets.on('click.zf.orbit touchend.zf.orbit', function () {\n            if (/is-active/g.test(this.className)) {\n              return false;\n            } //if this is active, kick out of function.\n\n\n            var idx = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('slide'),\n                ltr = idx > _this.$slides.filter('.is-active').data('slide'),\n                $slide = _this.$slides.eq(idx);\n\n            _this.changeSlide(ltr, $slide, idx);\n          });\n        }\n\n        if (this.options.accessible) {\n          this.$wrapper.add(this.$bullets).on('keydown.zf.orbit', function (e) {\n            // handle keyboard event with keyboard util\n            _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Orbit', {\n              next: function next() {\n                _this.changeSlide(true);\n              },\n              previous: function previous() {\n                _this.changeSlide(false);\n              },\n              handled: function handled() {\n                // if bullet is focused, make sure focus moves\n                if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).is(_this.$bullets)) {\n                  _this.$bullets.filter('.is-active').focus();\n                }\n              }\n            });\n          });\n        }\n      }\n    }\n    /**\n     * Resets Orbit so it can be reinitialized\n     */\n\n  }, {\n    key: \"_reset\",\n    value: function _reset() {\n      // Don't do anything if there are no slides (first run)\n      if (typeof this.$slides === 'undefined') {\n        return;\n      }\n\n      if (this.$slides.length > 1) {\n        // Remove old events\n        this.$element.off('.zf.orbit').find('*').off('.zf.orbit'); // Restart timer if autoPlay is enabled\n\n        if (this.options.autoPlay) {\n          this.timer.restart();\n        } // Reset all sliddes\n\n\n        this.$slides.each(function (el) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).removeClass('is-active is-active is-in').removeAttr('aria-live').hide();\n        }); // Show the first slide\n\n        this.$slides.first().addClass('is-active').show(); // Triggers when the slide has finished animating\n\n        this.$element.trigger('slidechange.zf.orbit', [this.$slides.first()]); // Select first bullet if bullets are present\n\n        if (this.options.bullets) {\n          this._updateBullets(0);\n        }\n      }\n    }\n    /**\n    * Changes the current slide to a new one.\n    * @function\n    * @param {Boolean} isLTR - if true the slide moves from right to left, if false the slide moves from left to right.\n    * @param {jQuery} chosenSlide - the jQuery element of the slide to show next, if one is selected.\n    * @param {Number} idx - the index of the new slide in its collection, if one chosen.\n    * @fires Orbit#slidechange\n    */\n\n  }, {\n    key: \"changeSlide\",\n    value: function changeSlide(isLTR, chosenSlide, idx) {\n      if (!this.$slides) {\n        return;\n      } // Don't freak out if we're in the middle of cleanup\n\n\n      var $curSlide = this.$slides.filter('.is-active').eq(0);\n\n      if (/mui/g.test($curSlide[0].className)) {\n        return false;\n      } //if the slide is currently animating, kick out of the function\n\n\n      var $firstSlide = this.$slides.first(),\n          $lastSlide = this.$slides.last(),\n          dirIn = isLTR ? 'Right' : 'Left',\n          dirOut = isLTR ? 'Left' : 'Right',\n          _this = this,\n          $newSlide;\n\n      if (!chosenSlide) {\n        //most of the time, this will be auto played or clicked from the navButtons.\n        $newSlide = isLTR ? //if wrapping enabled, check to see if there is a `next` or `prev` sibling, if not, select the first or last slide to fill in. if wrapping not enabled, attempt to select `next` or `prev`, if there's nothing there, the function will kick out on next step. CRAZY NESTED TERNARIES!!!!!\n        this.options.infiniteWrap ? $curSlide.next(\".\".concat(this.options.slideClass)).length ? $curSlide.next(\".\".concat(this.options.slideClass)) : $firstSlide : $curSlide.next(\".\".concat(this.options.slideClass)) //pick next slide if moving left to right\n        : this.options.infiniteWrap ? $curSlide.prev(\".\".concat(this.options.slideClass)).length ? $curSlide.prev(\".\".concat(this.options.slideClass)) : $lastSlide : $curSlide.prev(\".\".concat(this.options.slideClass)); //pick prev slide if moving right to left\n      } else {\n        $newSlide = chosenSlide;\n      }\n\n      if ($newSlide.length) {\n        /**\n        * Triggers before the next slide starts animating in and only if a next slide has been found.\n        * @event Orbit#beforeslidechange\n        */\n        this.$element.trigger('beforeslidechange.zf.orbit', [$curSlide, $newSlide]);\n\n        if (this.options.bullets) {\n          idx = idx || this.$slides.index($newSlide); //grab index to update bullets\n\n          this._updateBullets(idx);\n        }\n\n        if (this.options.useMUI && !this.$element.is(':hidden')) {\n          _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateIn($newSlide.addClass('is-active'), this.options[\"animInFrom\".concat(dirIn)], function () {\n            $newSlide.css({\n              'display': 'block'\n            }).attr('aria-live', 'polite');\n          });\n          _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut($curSlide.removeClass('is-active'), this.options[\"animOutTo\".concat(dirOut)], function () {\n            $curSlide.removeAttr('aria-live');\n\n            if (_this.options.autoPlay && !_this.timer.isPaused) {\n              _this.timer.restart();\n            } //do stuff?\n\n          });\n        } else {\n          $curSlide.removeClass('is-active is-in').removeAttr('aria-live').hide();\n          $newSlide.addClass('is-active is-in').attr('aria-live', 'polite').show();\n\n          if (this.options.autoPlay && !this.timer.isPaused) {\n            this.timer.restart();\n          }\n        }\n        /**\n        * Triggers when the slide has finished animating in.\n        * @event Orbit#slidechange\n        */\n\n\n        this.$element.trigger('slidechange.zf.orbit', [$newSlide]);\n      }\n    }\n    /**\n    * Updates the active state of the bullets, if displayed.\n    * Move the descriptor of the current slide `[data-slide-active-label]` to the newly active bullet.\n    * If no `[data-slide-active-label]` is set, will move the exceeding `span` element.\n    *\n    * @function\n    * @private\n    * @param {Number} idx - the index of the current slide.\n    */\n\n  }, {\n    key: \"_updateBullets\",\n    value: function _updateBullets(idx) {\n      var $oldBullet = this.$bullets.filter('.is-active');\n      var $othersBullets = this.$bullets.not('.is-active');\n      var $newBullet = this.$bullets.eq(idx);\n      $oldBullet.removeClass('is-active').blur();\n      $newBullet.addClass('is-active'); // Find the descriptor for the current slide to move it to the new slide button\n\n      var activeStateDescriptor = $oldBullet.children('[data-slide-active-label]').last(); // If not explicitely given, search for the last \"exceeding\" span element (compared to others bullets).\n\n      if (!activeStateDescriptor.length) {\n        var spans = $oldBullet.children('span');\n        var spanCountInOthersBullets = $othersBullets.toArray().map(function (b) {\n          return jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).children('span').length;\n        }); // If there is an exceeding span element, use it as current slide descriptor\n\n        if (spanCountInOthersBullets.every(function (count) {\n          return count < spans.length;\n        })) {\n          activeStateDescriptor = spans.last();\n          activeStateDescriptor.attr('data-slide-active-label', '');\n        }\n      } // Move the current slide descriptor to the new slide button\n\n\n      if (activeStateDescriptor.length) {\n        activeStateDescriptor.detach();\n        $newBullet.append(activeStateDescriptor);\n      }\n    }\n    /**\n    * Destroys the carousel and hides the element.\n    * @function\n    */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.orbit').find('*').off('.zf.orbit').end().hide();\n    }\n  }]);\n\n  return Orbit;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_5__[\"Plugin\"]);\n\nOrbit.defaults = {\n  /**\n  * Tells the JS to look for and loadBullets.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  bullets: true,\n\n  /**\n  * Tells the JS to apply event listeners to nav buttons\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  navButtons: true,\n\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-right'\n  */\n  animInFromRight: 'slide-in-right',\n\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-right'\n  */\n  animOutToRight: 'slide-out-right',\n\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-in-left'\n  *\n  */\n  animInFromLeft: 'slide-in-left',\n\n  /**\n  * motion-ui animation class to apply\n  * @option\n   * @type {string}\n  * @default 'slide-out-left'\n  */\n  animOutToLeft: 'slide-out-left',\n\n  /**\n  * Allows Orbit to automatically animate on page load.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  autoPlay: true,\n\n  /**\n  * Amount of time, in ms, between slide transitions\n  * @option\n   * @type {number}\n  * @default 5000\n  */\n  timerDelay: 5000,\n\n  /**\n  * Allows Orbit to infinitely loop through the slides\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  infiniteWrap: true,\n\n  /**\n  * Allows the Orbit slides to bind to swipe events for mobile, requires an additional util library\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  swipe: true,\n\n  /**\n  * Allows the timing function to pause animation on hover.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  pauseOnHover: true,\n\n  /**\n  * Allows Orbit to bind keyboard events to the slider, to animate frames with arrow keys\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  accessible: true,\n\n  /**\n  * Class applied to the container of Orbit\n  * @option\n   * @type {string}\n  * @default 'orbit-container'\n  */\n  containerClass: 'orbit-container',\n\n  /**\n  * Class applied to individual slides.\n  * @option\n   * @type {string}\n  * @default 'orbit-slide'\n  */\n  slideClass: 'orbit-slide',\n\n  /**\n  * Class applied to the bullet container. You're welcome.\n  * @option\n   * @type {string}\n  * @default 'orbit-bullets'\n  */\n  boxOfBullets: 'orbit-bullets',\n\n  /**\n  * Class applied to the `next` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-next'\n  */\n  nextClass: 'orbit-next',\n\n  /**\n  * Class applied to the `previous` navigation button.\n  * @option\n   * @type {string}\n  * @default 'orbit-previous'\n  */\n  prevClass: 'orbit-previous',\n\n  /**\n  * Boolean to flag the js to use motion ui classes or not. Default to true for backwards compatibility.\n  * @option\n   * @type {boolean}\n  * @default true\n  */\n  useMUI: true\n};\n\n\n/***/ }),\n\n/***/ 10:\n/*!******************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.orbit.js ***!\n  \\******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.orbit.js */\"./js/entries/plugins/foundation.orbit.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.orbit.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_timer__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.imageLoader","./foundation.util.keyboard","./foundation.util.motion","./foundation.util.timer","./foundation.util.touch","./js/entries/plugins/foundation.orbit.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_orbit__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.orbit.js","Orbit","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_timer__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_4__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_5__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","init","_init","register","ltr","ARROW_RIGHT","ARROW_LEFT","rtl","_reset","$wrapper","find","concat","containerClass","$slides","slideClass","$images","initActive","filter","id","attr","data-resize","eq","addClass","useMUI","_prepareForOrbit","bind","bullets","_loadBullets","_events","autoPlay","geoSync","accessible","$bullets","boxOfBullets","_this","timer","duration","timerDelay","infinite","changeSlide","start","_setWrapperHeight","cb","temp","max","counter","each","getBoundingClientRect","height","test","css","display","off","on","resizeme.zf.trigger","swipe","preventDefault","pauseOnHover","pause","navButtons","nextClass","prevClass","hasClass","idx","$slide","add","handleKey","next","previous","handled","is","focus","restart","el","removeClass","removeAttr","hide","first","show","trigger","_updateBullets","isLTR","chosenSlide","$curSlide","$firstSlide","$lastSlide","last","dirIn","dirOut","$newSlide","infiniteWrap","prev","index","animateIn","animateOut","isPaused","$oldBullet","$othersBullets","not","$newBullet","blur","spans","activeStateDescriptor","children","toArray","map","b","every","count","detach","append","end","animInFromRight","animOutToRight","animInFromLeft","animOutToLeft","10","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 1ea73290e4515d95f7132b24f24a8ca6e5f4c975..1bd77a3402443deff947433fbb32ae688abfc989 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.accordion\"],\"amd\":\"./foundation.accordion\",\"commonjs\":\"./foundation.accordion\",\"commonjs2\":\"./foundation.accordion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.tabs\"],\"amd\":\"./foundation.tabs\",\"commonjs\":\"./foundation.tabs\",\"commonjs2\":\"./foundation.tabs\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.responsiveAccordionTabs.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.responsiveAccordionTabs.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_accordion__","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_tabs__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","ResponsiveAccordionTabs","MenuPlugins","tabs","cssClass","Tabs","open","target","selectTab","close","toggle","accordion","Accordion","down","$","up","element","options","_classCallCheck","this","_possibleConstructorReturn","_this2","_super","call","reflow","storezfData","_assertThisInitialized","$element","data","extend","defaults","rules","currentMq","currentRule","currentPlugin","className","attr","GetYoDigits","_init","_events","MediaQuery","rulesTree","split","i","length","rule","ruleSize","rulePlugin","_getAllOptions","isEmptyObject","_checkMediaQueries","key","allOptions","hasOwnProperty","obj","keyKey","objObj","dummyPlugin","tmpPlugin","destroy","e","console","warn","concat","_changedZfMediaQueryHandler","bind","jquery__WEBPACK_IMPORTED_MODULE_0___default","on","value","_this","matchedMq","a","each","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","atLeast","fromString","toSet","tabsTitle","$liHeads","$panels","removeAttr","linkClass","children","$liHeadsA","removeClass","tabsPanel","visibility","display","height","appendTo","get","addClass","css","after","detach","$placeholder","remove","$tabsContent","insertAfter","hash","id","Object","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","replace","hasClass","tempValue","_this$currentRule","apply","Array","prototype","slice","arguments","_this$currentRule2","_this$currentRule3","installedModules","m","modules","c","name","getter","o","defineProperty","enumerable","Symbol","toStringTag","t","mode","__esModule","ns","create","n","object","property","p","s","moduleId","l"],"mappings":"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","file":"foundation.responsiveAccordionTabs.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.accordion\"), require(\"./foundation.core\"), require(\"./foundation.tabs\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.accordion\", \"./foundation.core\", \"./foundation.tabs\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveAccordionTabs\"] = factory(require(\"./foundation.accordion\"), require(\"./foundation.core\"), require(\"./foundation.tabs\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveAccordionTabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_accordion__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_tabs__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_accordion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_tabs__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","import { Foundation } from './foundation.core';\n\nimport { ResponsiveAccordionTabs } from '../../foundation.responsiveAccordionTabs';\nFoundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n\nexport { Foundation, ResponsiveAccordionTabs };\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin:   Tabs,\n    open:     (plugin, target) => plugin.selectTab(target),\n    close:    null /* not supported */,\n    toggle:   null /* not supported */,\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin:   Accordion,\n    open:     (plugin, target) => plugin.down($(target)),\n    close:    (plugin, target) => plugin.up($(target)),\n    toggle:   (plugin, target) => plugin.toggle($(target)),\n  }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n  constructor(element, options) {\n    super(element, options);\n    return this.options.reflow && this.storezfData || this;\n  }\n\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.$element.data('zfPluginBase', this);\n    this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n    this.rules = this.$element.data('responsive-accordion-tabs');\n    this.currentMq = null;\n    this.currentRule = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n    if (!this.$element.attr('id')) {\n      this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n    }\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    this._getAllOptions();\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n  }\n\n  _getAllOptions() {\n    //get all defaults and options\n    var _this = this;\n    _this.allOptions = {};\n    for (var key in MenuPlugins) {\n      if (MenuPlugins.hasOwnProperty(key)) {\n        var obj = MenuPlugins[key];\n        try {\n          var dummyPlugin = $('<ul></ul>');\n          var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n          for (var keyKey in tmpPlugin.options) {\n            if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n              var objObj = tmpPlugin.options[keyKey];\n              _this.allOptions[keyKey] = objObj;\n            }\n          }\n          tmpPlugin.destroy();\n        }\n        catch(e) {\n        }\n      }\n    }\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n    $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) {\n      //don't know why but on nested elements data zfPlugin get's lost\n      if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n      this.currentPlugin.destroy();\n    }\n    this._handleMarkup(this.rules[matchedMq].cssClass);\n    this.currentRule = this.rules[matchedMq];\n    this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n    this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n  }\n\n  _handleMarkup(toSet){\n    var _this = this, fromString = 'accordion';\n    var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n    if ($panels.length) fromString = 'tabs';\n    if (fromString === toSet) {\n      return;\n    }\n\n    var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n    var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n    this.$element.removeAttr('role');\n    var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n    var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n    if (fromString === 'tabs') {\n      $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n      $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n    } else {\n      $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n    }\n\n    $panels.css({display:'',visibility:''});\n    $liHeads.css({display:'',visibility:''});\n    if (toSet === 'accordion') {\n      $panels.each(function(key,value){\n        $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n        $('[data-tabs-content='+_this.$element.attr('id')+']').after('<div id=\"tabs-placeholder-'+_this.$element.attr('id')+'\"></div>').detach();\n        $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n        $liHeadsA.addClass('accordion-title');\n      });\n    } else if (toSet === 'tabs') {\n      var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n      var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n      if ($placeholder.length) {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n        $placeholder.remove();\n      } else {\n        $tabsContent = $('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n      }\n      $panels.each(function(key,value){\n        var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n        var hash = $liHeadsA.get(key).hash.slice(1);\n        var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n        if (hash !== id) {\n          if (hash !== '') {\n            $(value).attr('id',hash);\n          } else {\n            hash = id;\n            $(value).attr('id',hash);\n            $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n          }\n        }\n        var isActive = $($liHeads.get(key)).hasClass('is-active');\n        if (isActive) {\n          tempValue.addClass('is-active');\n        }\n      });\n      $liHeads.addClass(tabsTitle);\n    };\n  }\n\n  /**\n   * Opens the plugin pane defined by `target`.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n   * @see Accordion.down\n   * @see Tabs.selectTab\n   * @function\n   */\n  open(_target) {\n    if (this.currentRule && typeof this.currentRule.open === 'function') {\n      return this.currentRule.open(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n   * @see Accordion.up\n   * @function\n   */\n  close(_target) {\n    if (this.currentRule && typeof this.currentRule.close === 'function') {\n      return this.currentRule.close(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n   * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n   * @see Accordion.toggle\n   * @function\n   */\n  toggle(_target) {\n    if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n      return this.currentRule.toggle(this.currentPlugin, ...arguments);\n    }\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n  }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.responsiveAccordionTabs.min.js","sources":["foundation.responsiveAccordionTabs.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.accordion\"), require(\"./foundation.core\"), require(\"./foundation.tabs\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.accordion\", \"./foundation.core\", \"./foundation.tabs\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveAccordionTabs\"] = factory(require(\"./foundation.accordion\"), require(\"./foundation.core\"), require(\"./foundation.tabs\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveAccordionTabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_accordion__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_tabs__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.accordion\":\n/*!************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.accordion\"],\"amd\":\"./foundation.accordion\",\"commonjs\":\"./foundation.accordion\",\"commonjs2\":\"./foundation.accordion\"} ***!\n  \\************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_accordion__;\n\n/***/ }),\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.tabs\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.tabs\"],\"amd\":\"./foundation.tabs\",\"commonjs\":\"./foundation.tabs\",\"commonjs2\":\"./foundation.tabs\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_tabs__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.responsiveAccordionTabs.js\":\n/*!******************************************************************!*\\\n  !*** ./js/entries/plugins/foundation.responsiveAccordionTabs.js ***!\n  \\******************************************************************/\n/*! exports provided: Foundation, ResponsiveAccordionTabs */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.responsiveAccordionTabs */ \"./js/foundation.responsiveAccordionTabs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveAccordionTabs\", function() { return _foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_1__[\"ResponsiveAccordionTabs\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_1__[\"ResponsiveAccordionTabs\"], 'ResponsiveAccordionTabs');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.responsiveAccordionTabs.js\":\n/*!**************************************************!*\\\n  !*** ./js/foundation.responsiveAccordionTabs.js ***!\n  \\**************************************************/\n/*! exports provided: ResponsiveAccordionTabs */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveAccordionTabs\", function() { return ResponsiveAccordionTabs; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_accordion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.accordion */ \"./foundation.accordion\");\n/* harmony import */ var _foundation_accordion__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_accordion__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_tabs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.tabs */ \"./foundation.tabs\");\n/* harmony import */ var _foundation_tabs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_tabs__WEBPACK_IMPORTED_MODULE_4__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n // The plugin matches the plugin classes with these plugin instances.\n\nvar MenuPlugins = {\n  tabs: {\n    cssClass: 'tabs',\n    plugin: _foundation_tabs__WEBPACK_IMPORTED_MODULE_4__[\"Tabs\"],\n    open: function open(plugin, target) {\n      return plugin.selectTab(target);\n    },\n    close: null\n    /* not supported */\n    ,\n    toggle: null\n    /* not supported */\n\n  },\n  accordion: {\n    cssClass: 'accordion',\n    plugin: _foundation_accordion__WEBPACK_IMPORTED_MODULE_3__[\"Accordion\"],\n    open: function open(plugin, target) {\n      return plugin.down(jquery__WEBPACK_IMPORTED_MODULE_0___default()(target));\n    },\n    close: function close(plugin, target) {\n      return plugin.up(jquery__WEBPACK_IMPORTED_MODULE_0___default()(target));\n    },\n    toggle: function toggle(plugin, target) {\n      return plugin.toggle(jquery__WEBPACK_IMPORTED_MODULE_0___default()(target));\n    }\n  }\n};\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nvar ResponsiveAccordionTabs = /*#__PURE__*/function (_Plugin) {\n  _inherits(ResponsiveAccordionTabs, _Plugin);\n\n  var _super = _createSuper(ResponsiveAccordionTabs);\n\n  function ResponsiveAccordionTabs(element, options) {\n    var _this2;\n\n    _classCallCheck(this, ResponsiveAccordionTabs);\n\n    _this2 = _super.call(this, element, options);\n    return _possibleConstructorReturn(_this2, _this2.options.reflow && _this2.storezfData || _assertThisInitialized(_this2));\n  }\n  /**\n   * Creates a new instance of a responsive accordion tabs.\n   * @class\n   * @name ResponsiveAccordionTabs\n   * @fires ResponsiveAccordionTabs#init\n   * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n\n\n  _createClass(ResponsiveAccordionTabs, [{\n    key: \"_setup\",\n    value: function _setup(element, options) {\n      this.$element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n      this.$element.data('zfPluginBase', this);\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n      this.rules = this.$element.data('responsive-accordion-tabs');\n      this.currentMq = null;\n      this.currentRule = null;\n      this.currentPlugin = null;\n      this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n\n      if (!this.$element.attr('id')) {\n        this.$element.attr('id', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'responsiveaccordiontabs'));\n      }\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init(); // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n\n\n      if (typeof this.rules === 'string') {\n        var rulesTree = {}; // Parse rules from \"classes\" pulled from data attribute\n\n        var rules = this.rules.split(' '); // Iterate through every rule found\n\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i].split('-');\n          var ruleSize = rule.length > 1 ? rule[0] : 'small';\n          var rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n          if (MenuPlugins[rulePlugin] !== null) {\n            rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n          }\n        }\n\n        this.rules = rulesTree;\n      }\n\n      this._getAllOptions();\n\n      if (!jquery__WEBPACK_IMPORTED_MODULE_0___default.a.isEmptyObject(this.rules)) {\n        this._checkMediaQueries();\n      }\n    }\n  }, {\n    key: \"_getAllOptions\",\n    value: function _getAllOptions() {\n      //get all defaults and options\n      var _this = this;\n\n      _this.allOptions = {};\n\n      for (var key in MenuPlugins) {\n        if (MenuPlugins.hasOwnProperty(key)) {\n          var obj = MenuPlugins[key];\n\n          try {\n            var dummyPlugin = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<ul></ul>');\n            var tmpPlugin = new obj.plugin(dummyPlugin, _this.options);\n\n            for (var keyKey in tmpPlugin.options) {\n              if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n                var objObj = tmpPlugin.options[keyKey];\n                _this.allOptions[keyKey] = objObj;\n              }\n            }\n\n            tmpPlugin.destroy();\n          } catch (e) {\n            console.warn(\"Warning: Problems getting Accordion/Tab options: \".concat(e));\n          }\n        }\n      }\n    }\n    /**\n     * Initializes events for the Menu.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n    }\n    /**\n     * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_checkMediaQueries\",\n    value: function _checkMediaQueries() {\n      var matchedMq,\n          _this = this; // Iterate through each rule and find the last matching rule\n\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.rules, function (key) {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].atLeast(key)) {\n          matchedMq = key;\n        }\n      }); // No match? No dice\n\n      if (!matchedMq) return; // Plugin already initialized? We good\n\n      if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return; // Remove existing plugin-specific CSS classes\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(MenuPlugins, function (key, value) {\n        _this.$element.removeClass(value.cssClass);\n      }); // Add the CSS class for the new plugin\n\n      this.$element.addClass(this.rules[matchedMq].cssClass); // Create an instance of the new plugin\n\n      if (this.currentPlugin) {\n        //don't know why but on nested elements data zfPlugin get's lost\n        if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin', this.storezfData);\n        this.currentPlugin.destroy();\n      }\n\n      this._handleMarkup(this.rules[matchedMq].cssClass);\n\n      this.currentRule = this.rules[matchedMq];\n      this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n      this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n    }\n  }, {\n    key: \"_handleMarkup\",\n    value: function _handleMarkup(toSet) {\n      var _this = this,\n          fromString = 'accordion';\n\n      var $panels = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-tabs-content=' + this.$element.attr('id') + ']');\n      if ($panels.length) fromString = 'tabs';\n\n      if (fromString === toSet) {\n        return;\n      }\n\n      var tabsTitle = _this.allOptions.linkClass ? _this.allOptions.linkClass : 'tabs-title';\n      var tabsPanel = _this.allOptions.panelClass ? _this.allOptions.panelClass : 'tabs-panel';\n      this.$element.removeAttr('role');\n      var $liHeads = this.$element.children('.' + tabsTitle + ',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n      var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n      if (fromString === 'tabs') {\n        $panels = $panels.children('.' + tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n        $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n      } else {\n        $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n      }\n\n      $panels.css({\n        display: '',\n        visibility: ''\n      });\n      $liHeads.css({\n        display: '',\n        visibility: ''\n      });\n\n      if (toSet === 'accordion') {\n        $panels.each(function (key, value) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content', '').removeClass('is-active').css({\n            height: ''\n          });\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-tabs-content=' + _this.$element.attr('id') + ']').after('<div id=\"tabs-placeholder-' + _this.$element.attr('id') + '\"></div>').detach();\n          $liHeads.addClass('accordion-item').attr('data-accordion-item', '');\n          $liHeadsA.addClass('accordion-title');\n        });\n      } else if (toSet === 'tabs') {\n        var $tabsContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-tabs-content=' + _this.$element.attr('id') + ']');\n        var $placeholder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#tabs-placeholder-' + _this.$element.attr('id'));\n\n        if ($placeholder.length) {\n          $tabsContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"tabs-content\"></div>').insertAfter($placeholder).attr('data-tabs-content', _this.$element.attr('id'));\n          $placeholder.remove();\n        } else {\n          $tabsContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"tabs-content\"></div>').insertAfter(_this.$element).attr('data-tabs-content', _this.$element.attr('id'));\n        }\n\n        $panels.each(function (key, value) {\n          var tempValue = jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).appendTo($tabsContent).addClass(tabsPanel);\n          var hash = $liHeadsA.get(key).hash.slice(1);\n          var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).attr('id') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'accordion');\n\n          if (hash !== id) {\n            if (hash !== '') {\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).attr('id', hash);\n            } else {\n              hash = id;\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()(value).attr('id', hash);\n              jquery__WEBPACK_IMPORTED_MODULE_0___default()($liHeadsA.get(key)).attr('href', jquery__WEBPACK_IMPORTED_MODULE_0___default()($liHeadsA.get(key)).attr('href').replace('#', '') + '#' + hash);\n            }\n          }\n\n          var isActive = jquery__WEBPACK_IMPORTED_MODULE_0___default()($liHeads.get(key)).hasClass('is-active');\n\n          if (isActive) {\n            tempValue.addClass('is-active');\n          }\n        });\n        $liHeads.addClass(tabsTitle);\n      }\n\n      ;\n    }\n    /**\n     * Opens the plugin pane defined by `target`.\n     * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n     * @see Accordion.down\n     * @see Tabs.selectTab\n     * @function\n     */\n\n  }, {\n    key: \"open\",\n    value: function open() {\n      if (this.currentRule && typeof this.currentRule.open === 'function') {\n        var _this$currentRule;\n\n        return (_this$currentRule = this.currentRule).open.apply(_this$currentRule, [this.currentPlugin].concat(Array.prototype.slice.call(arguments)));\n      }\n    }\n    /**\n     * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n     * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n     * @see Accordion.up\n     * @function\n     */\n\n  }, {\n    key: \"close\",\n    value: function close() {\n      if (this.currentRule && typeof this.currentRule.close === 'function') {\n        var _this$currentRule2;\n\n        return (_this$currentRule2 = this.currentRule).close.apply(_this$currentRule2, [this.currentPlugin].concat(Array.prototype.slice.call(arguments)));\n      }\n    }\n    /**\n     * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n     * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n     * @see Accordion.toggle\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n        var _this$currentRule3;\n\n        return (_this$currentRule3 = this.currentRule).toggle.apply(_this$currentRule3, [this.currentPlugin].concat(Array.prototype.slice.call(arguments)));\n      }\n    }\n    /**\n     * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      if (this.currentPlugin) this.currentPlugin.destroy();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n    }\n  }]);\n\n  return ResponsiveAccordionTabs;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]);\n\nResponsiveAccordionTabs.defaults = {};\n\n\n/***/ }),\n\n/***/ 11:\n/*!************************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.responsiveAccordionTabs.js ***!\n  \\************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.responsiveAccordionTabs.js */\"./js/entries/plugins/foundation.responsiveAccordionTabs.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.responsiveAccordionTabs.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_accordion__","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_tabs__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.accordion","./foundation.core","./foundation.tabs","./foundation.util.mediaQuery","./js/entries/plugins/foundation.responsiveAccordionTabs.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_responsiveAccordionTabs__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.responsiveAccordionTabs.js","ResponsiveAccordionTabs","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_accordion__WEBPACK_IMPORTED_MODULE_3__","_foundation_tabs__WEBPACK_IMPORTED_MODULE_4__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","_possibleConstructorReturn","this","arguments","apply","self","TypeError","_assertThisInitialized","ReferenceError","getPrototypeOf","MenuPlugins","tabs","cssClass","open","selectTab","close","toggle","accordion","down","up","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","element","options","instance","_classCallCheck","_this2","reflow","storezfData","$element","data","a","extend","defaults","rules","currentMq","currentRule","currentPlugin","className","attr","_init","_events","rulesTree","split","rule","ruleSize","rulePlugin","_getAllOptions","isEmptyObject","_checkMediaQueries","allOptions","hasOwnProperty","keyKey","objObj","dummyPlugin","tmpPlugin","destroy","console","warn","concat","_changedZfMediaQueryHandler","bind","on","matchedMq","_this","each","atLeast","removeClass","addClass","_handleMarkup","toSet","tabsTitle","tabsPanel","$liHeads","$liHeadsA","$tabsContent","fromString","$panels","linkClass","panelClass","removeAttr","children","css","display","visibility","appendTo","get","height","after","detach","$placeholder","insertAfter","remove","tempValue","hash","slice","id","replace","hasClass","_this$currentRule","Array","_this$currentRule2","_this$currentRule3","off","11","jquery","installedModules","m","c","name","getter","toStringTag","t","mode","__esModule","ns","object","property","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 1bf37d18dfd41c4dade610f8b44de905142803f9..7c6261999c3c2d5d468a7158d9980d3edf2dbbcd 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.accordionMenu\"],\"amd\":\"./foundation.accordionMenu\",\"commonjs\":\"./foundation.accordionMenu\",\"commonjs2\":\"./foundation.accordionMenu\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.drilldown\"],\"amd\":\"./foundation.drilldown\",\"commonjs\":\"./foundation.drilldown\",\"commonjs2\":\"./foundation.drilldown\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.dropdownMenu\"],\"amd\":\"./foundation.dropdownMenu\",\"commonjs\":\"./foundation.dropdownMenu\",\"commonjs2\":\"./foundation.dropdownMenu\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.responsiveMenu.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.responsiveMenu.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_accordionMenu__","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_drilldown__","__WEBPACK_EXTERNAL_MODULE__foundation_dropdownMenu__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","ResponsiveMenu","MenuPlugins","dropdown","cssClass","DropdownMenu","drilldown","Drilldown","accordion","AccordionMenu","Plugin","element","this","$element","$","rules","data","currentMq","currentPlugin","className","_init","_events","MediaQuery","rulesTree","split","i","length","rule","ruleSize","rulePlugin","isEmptyObject","_checkMediaQueries","attr","GetYoDigits","_this","on","matchedMq","each","key","atLeast","value","removeClass","addClass","destroy","off","defaults","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.responsiveMenu.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.accordionMenu\"), require(\"./foundation.core\"), require(\"./foundation.drilldown\"), require(\"./foundation.dropdownMenu\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.accordionMenu\", \"./foundation.core\", \"./foundation.drilldown\", \"./foundation.dropdownMenu\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveMenu\"] = factory(require(\"./foundation.accordionMenu\"), require(\"./foundation.core\"), require(\"./foundation.drilldown\"), require(\"./foundation.dropdownMenu\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordionMenu\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_accordionMenu__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_drilldown__, __WEBPACK_EXTERNAL_MODULE__foundation_dropdownMenu__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_accordionMenu__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_drilldown__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_dropdownMenu__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","import { Foundation } from './foundation.core';\n\nimport { ResponsiveMenu } from '../../foundation.responsiveMenu';\nFoundation.plugin(ResponsiveMenu, 'ResponsiveMenu');\n\nexport { Foundation, ResponsiveMenu };\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: DropdownMenu\n  },\n drilldown: {\n    cssClass: 'drilldown',\n    plugin: Drilldown\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: AccordionMenu\n  }\n};\n\n  // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n  /**\n   * Creates a new instance of a responsive menu.\n   * @class\n   * @name ResponsiveMenu\n   * @fires ResponsiveMenu#init\n   * @param {jQuery} element - jQuery object to make into a dropdown menu.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.rules = this.$element.data('responsive-menu');\n    this.currentMq = null;\n    this.currentPlugin = null;\n    this.className = 'ResponsiveMenu'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n   * @function\n   * @private\n   */\n  _init() {\n\n    MediaQuery._init();\n    // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n    if (typeof this.rules === 'string') {\n      let rulesTree = {};\n\n      // Parse rules from \"classes\" pulled from data attribute\n      let rules = this.rules.split(' ');\n\n      // Iterate through every rule found\n      for (let i = 0; i < rules.length; i++) {\n        let rule = rules[i].split('-');\n        let ruleSize = rule.length > 1 ? rule[0] : 'small';\n        let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n        if (MenuPlugins[rulePlugin] !== null) {\n          rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n        }\n      }\n\n      this.rules = rulesTree;\n    }\n\n    if (!$.isEmptyObject(this.rules)) {\n      this._checkMediaQueries();\n    }\n    // Add data-mutate since children may need it.\n    this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n  }\n\n  /**\n   * Initializes events for the Menu.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    $(window).on('changed.zf.mediaquery', function() {\n      _this._checkMediaQueries();\n    });\n    // $(window).on('resize.zf.ResponsiveMenu', function() {\n    //   _this._checkMediaQueries();\n    // });\n  }\n\n  /**\n   * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n   * @function\n   * @private\n   */\n  _checkMediaQueries() {\n    var matchedMq, _this = this;\n    // Iterate through each rule and find the last matching rule\n    $.each(this.rules, function(key) {\n      if (MediaQuery.atLeast(key)) {\n        matchedMq = key;\n      }\n    });\n\n    // No match? No dice\n    if (!matchedMq) return;\n\n    // Plugin already initialized? We good\n    if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n    // Remove existing plugin-specific CSS classes\n    $.each(MenuPlugins, function(key, value) {\n      _this.$element.removeClass(value.cssClass);\n    });\n\n    // Add the CSS class for the new plugin\n    this.$element.addClass(this.rules[matchedMq].cssClass);\n\n    // Create an instance of the new plugin\n    if (this.currentPlugin) this.currentPlugin.destroy();\n    this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n  }\n\n  /**\n   * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n   * @function\n   */\n  _destroy() {\n    this.currentPlugin.destroy();\n    $(window).off('.zf.ResponsiveMenu');\n  }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.responsiveMenu.min.js","sources":["foundation.responsiveMenu.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.accordionMenu\"), require(\"./foundation.core\"), require(\"./foundation.drilldown\"), require(\"./foundation.dropdownMenu\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.accordionMenu\", \"./foundation.core\", \"./foundation.drilldown\", \"./foundation.dropdownMenu\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveMenu\"] = factory(require(\"./foundation.accordionMenu\"), require(\"./foundation.core\"), require(\"./foundation.drilldown\"), require(\"./foundation.dropdownMenu\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveMenu\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.accordionMenu\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.dropdownMenu\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_accordionMenu__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_drilldown__, __WEBPACK_EXTERNAL_MODULE__foundation_dropdownMenu__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 12);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.accordionMenu\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.accordionMenu\"],\"amd\":\"./foundation.accordionMenu\",\"commonjs\":\"./foundation.accordionMenu\",\"commonjs2\":\"./foundation.accordionMenu\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_accordionMenu__;\n\n/***/ }),\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.drilldown\":\n/*!************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.drilldown\"],\"amd\":\"./foundation.drilldown\",\"commonjs\":\"./foundation.drilldown\",\"commonjs2\":\"./foundation.drilldown\"} ***!\n  \\************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_drilldown__;\n\n/***/ }),\n\n/***/ \"./foundation.dropdownMenu\":\n/*!************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.dropdownMenu\"],\"amd\":\"./foundation.dropdownMenu\",\"commonjs\":\"./foundation.dropdownMenu\",\"commonjs2\":\"./foundation.dropdownMenu\"} ***!\n  \\************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_dropdownMenu__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.responsiveMenu.js\":\n/*!*********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.responsiveMenu.js ***!\n  \\*********************************************************/\n/*! exports provided: Foundation, ResponsiveMenu */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.responsiveMenu */ \"./js/foundation.responsiveMenu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveMenu\", function() { return _foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_1__[\"ResponsiveMenu\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_1__[\"ResponsiveMenu\"], 'ResponsiveMenu');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.responsiveMenu.js\":\n/*!*****************************************!*\\\n  !*** ./js/foundation.responsiveMenu.js ***!\n  \\*****************************************/\n/*! exports provided: ResponsiveMenu */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveMenu\", function() { return ResponsiveMenu; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.dropdownMenu */ \"./foundation.dropdownMenu\");\n/* harmony import */ var _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_drilldown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.drilldown */ \"./foundation.drilldown\");\n/* harmony import */ var _foundation_drilldown__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_drilldown__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.accordionMenu */ \"./foundation.accordionMenu\");\n/* harmony import */ var _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\nvar MenuPlugins = {\n  dropdown: {\n    cssClass: 'dropdown',\n    plugin: _foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_3__[\"DropdownMenu\"]\n  },\n  drilldown: {\n    cssClass: 'drilldown',\n    plugin: _foundation_drilldown__WEBPACK_IMPORTED_MODULE_4__[\"Drilldown\"]\n  },\n  accordion: {\n    cssClass: 'accordion-menu',\n    plugin: _foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5__[\"AccordionMenu\"]\n  }\n}; // import \"foundation.util.triggers.js\";\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nvar ResponsiveMenu = /*#__PURE__*/function (_Plugin) {\n  _inherits(ResponsiveMenu, _Plugin);\n\n  var _super = _createSuper(ResponsiveMenu);\n\n  function ResponsiveMenu() {\n    _classCallCheck(this, ResponsiveMenu);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ResponsiveMenu, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of a responsive menu.\n     * @class\n     * @name ResponsiveMenu\n     * @fires ResponsiveMenu#init\n     * @param {jQuery} element - jQuery object to make into a dropdown menu.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element) {\n      this.$element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n      this.rules = this.$element.data('responsive-menu');\n      this.currentMq = null;\n      this.currentPlugin = null;\n      this.className = 'ResponsiveMenu'; // ie9 back compat\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init(); // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n\n\n      if (typeof this.rules === 'string') {\n        var rulesTree = {}; // Parse rules from \"classes\" pulled from data attribute\n\n        var rules = this.rules.split(' '); // Iterate through every rule found\n\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i].split('-');\n          var ruleSize = rule.length > 1 ? rule[0] : 'small';\n          var rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n          if (MenuPlugins[rulePlugin] !== null) {\n            rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n          }\n        }\n\n        this.rules = rulesTree;\n      }\n\n      if (!jquery__WEBPACK_IMPORTED_MODULE_0___default.a.isEmptyObject(this.rules)) {\n        this._checkMediaQueries();\n      } // Add data-mutate since children may need it.\n\n\n      this.$element.attr('data-mutate', this.$element.attr('data-mutate') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"GetYoDigits\"])(6, 'responsive-menu'));\n    }\n    /**\n     * Initializes events for the Menu.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', function () {\n        _this._checkMediaQueries();\n      }); // $(window).on('resize.zf.ResponsiveMenu', function() {\n      //   _this._checkMediaQueries();\n      // });\n    }\n    /**\n     * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_checkMediaQueries\",\n    value: function _checkMediaQueries() {\n      var matchedMq,\n          _this = this; // Iterate through each rule and find the last matching rule\n\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(this.rules, function (key) {\n        if (_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].atLeast(key)) {\n          matchedMq = key;\n        }\n      }); // No match? No dice\n\n      if (!matchedMq) return; // Plugin already initialized? We good\n\n      if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return; // Remove existing plugin-specific CSS classes\n\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(MenuPlugins, function (key, value) {\n        _this.$element.removeClass(value.cssClass);\n      }); // Add the CSS class for the new plugin\n\n      this.$element.addClass(this.rules[matchedMq].cssClass); // Create an instance of the new plugin\n\n      if (this.currentPlugin) this.currentPlugin.destroy();\n      this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n    }\n    /**\n     * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.currentPlugin.destroy();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('.zf.ResponsiveMenu');\n    }\n  }]);\n\n  return ResponsiveMenu;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]);\n\nResponsiveMenu.defaults = {};\n\n\n/***/ }),\n\n/***/ 12:\n/*!***************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.responsiveMenu.js ***!\n  \\***************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.responsiveMenu.js */\"./js/entries/plugins/foundation.responsiveMenu.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.responsiveMenu.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_accordionMenu__","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_drilldown__","__WEBPACK_EXTERNAL_MODULE__foundation_dropdownMenu__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.accordionMenu","./foundation.core","./foundation.drilldown","./foundation.dropdownMenu","./foundation.util.mediaQuery","./js/entries/plugins/foundation.responsiveMenu.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_responsiveMenu__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.responsiveMenu.js","ResponsiveMenu","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__","_foundation_dropdownMenu__WEBPACK_IMPORTED_MODULE_3__","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_4__","_foundation_accordionMenu__WEBPACK_IMPORTED_MODULE_5__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","MenuPlugins","dropdown","cssClass","drilldown","accordion","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","$element","rules","data","currentMq","currentPlugin","className","_init","_events","rulesTree","split","rule","ruleSize","rulePlugin","a","isEmptyObject","_checkMediaQueries","attr","_this","on","matchedMq","each","atLeast","removeClass","addClass","destroy","off","defaults","12","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index e3ce0fb0b12491c3432754f01c36bc7a5234eebb..c2c560bd6066668e92afe13b98eb1ce41213f532 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.responsiveToggle.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.responsiveToggle.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","ResponsiveToggle","element","options","this","$element","$","extend","defaults","data","className","_init","_events","MediaQuery","input","targetID","console","error","$targetMenu","concat","$toggler","find","filter","target","animate","split","animationIn","animationOut","_update","_this","bind","_updateMqHandler","toggleMenu","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","atLeast","hideFor","hide","show","is","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","animateIn","trigger","triggerHandler","animateOut","toggle","key","off","jquery__WEBPACK_IMPORTED_MODULE_0___default","Plugin","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.responsiveToggle.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveToggle\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveToggle\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { ResponsiveToggle } from '../../foundation.responsiveToggle';\nFoundation.plugin(ResponsiveToggle, 'ResponsiveToggle');\n\nexport { Foundation, ResponsiveToggle };\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n  /**\n   * Creates a new instance of Tab Bar.\n   * @class\n   * @name ResponsiveToggle\n   * @fires ResponsiveToggle#init\n   * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = $(element);\n    this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n    this.className = 'ResponsiveToggle'; // ie9 back compat\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the tab bar by finding the target element, toggling element, and running update().\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var targetID = this.$element.data('responsive-toggle');\n    if (!targetID) {\n      console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n    }\n\n    this.$targetMenu = $(`#${targetID}`);\n    this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n      var target = $(this).data('toggle');\n      return (target === targetID || target === \"\");\n    });\n    this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n    // If they were set, parse the animation classes\n    if(this.options.animate) {\n      let input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n    }\n\n    this._update();\n  }\n\n  /**\n   * Adds necessary event handlers for the tab bar to work.\n   * @function\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this._updateMqHandler = this._update.bind(this);\n\n    $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n    this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n  }\n\n  /**\n   * Checks the current media query to determine if the tab bar should be visible or hidden.\n   * @function\n   * @private\n   */\n  _update() {\n    // Mobile\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      this.$element.show();\n      this.$targetMenu.hide();\n    }\n\n    // Desktop\n    else {\n      this.$element.hide();\n      this.$targetMenu.show();\n    }\n  }\n\n  /**\n   * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n   * @function\n   * @fires ResponsiveToggle#toggled\n   */\n  toggleMenu() {\n    if (!MediaQuery.atLeast(this.options.hideFor)) {\n      /**\n       * Fires when the element attached to the tab bar toggles.\n       * @event ResponsiveToggle#toggled\n       */\n      if(this.options.animate) {\n        if (this.$targetMenu.is(':hidden')) {\n          Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n            this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n          });\n        }\n        else {\n          Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n            this.$element.trigger('toggled.zf.responsiveToggle');\n          });\n        }\n      }\n      else {\n        this.$targetMenu.toggle(0);\n        this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        this.$element.trigger('toggled.zf.responsiveToggle');\n      }\n    }\n  };\n\n  _destroy() {\n    this.$element.off('.zf.responsiveToggle');\n    this.$toggler.off('.zf.responsiveToggle');\n\n    $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n  }\n}\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport { ResponsiveToggle };\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.responsiveToggle.min.js","sources":["foundation.responsiveToggle.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.responsiveToggle\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.responsiveToggle\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 13);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.responsiveToggle.js\":\n/*!***********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.responsiveToggle.js ***!\n  \\***********************************************************/\n/*! exports provided: Foundation, ResponsiveToggle */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.responsiveToggle */ \"./js/foundation.responsiveToggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveToggle\", function() { return _foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_1__[\"ResponsiveToggle\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_1__[\"ResponsiveToggle\"], 'ResponsiveToggle');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.responsiveToggle.js\":\n/*!*******************************************!*\\\n  !*** ./js/foundation.responsiveToggle.js ***!\n  \\*******************************************/\n/*! exports provided: ResponsiveToggle */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResponsiveToggle\", function() { return ResponsiveToggle; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nvar ResponsiveToggle = /*#__PURE__*/function (_Plugin) {\n  _inherits(ResponsiveToggle, _Plugin);\n\n  var _super = _createSuper(ResponsiveToggle);\n\n  function ResponsiveToggle() {\n    _classCallCheck(this, ResponsiveToggle);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ResponsiveToggle, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Tab Bar.\n     * @class\n     * @name ResponsiveToggle\n     * @fires ResponsiveToggle#init\n     * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n      this.className = 'ResponsiveToggle'; // ie9 back compat\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the tab bar by finding the target element, toggling element, and running update().\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init();\n\n      var targetID = this.$element.data('responsive-toggle');\n\n      if (!targetID) {\n        console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n      }\n\n      this.$targetMenu = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(targetID));\n      this.$toggler = this.$element.find('[data-toggle]').filter(function () {\n        var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n        return target === targetID || target === \"\";\n      });\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, this.options, this.$targetMenu.data()); // If they were set, parse the animation classes\n\n      if (this.options.animate) {\n        var input = this.options.animate.split(' ');\n        this.animationIn = input[0];\n        this.animationOut = input[1] || null;\n      }\n\n      this._update();\n    }\n    /**\n     * Adds necessary event handlers for the tab bar to work.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._updateMqHandler = this._update.bind(this);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._updateMqHandler);\n      this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n    }\n    /**\n     * Checks the current media query to determine if the tab bar should be visible or hidden.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_update\",\n    value: function _update() {\n      // Mobile\n      if (!_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].atLeast(this.options.hideFor)) {\n        this.$element.show();\n        this.$targetMenu.hide();\n      } // Desktop\n      else {\n        this.$element.hide();\n        this.$targetMenu.show();\n      }\n    }\n    /**\n     * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n     * @function\n     * @fires ResponsiveToggle#toggled\n     */\n\n  }, {\n    key: \"toggleMenu\",\n    value: function toggleMenu() {\n      var _this = this;\n\n      if (!_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].atLeast(this.options.hideFor)) {\n        /**\n         * Fires when the element attached to the tab bar toggles.\n         * @event ResponsiveToggle#toggled\n         */\n        if (this.options.animate) {\n          if (this.$targetMenu.is(':hidden')) {\n            _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateIn(this.$targetMenu, this.animationIn, function () {\n              _this.$element.trigger('toggled.zf.responsiveToggle');\n\n              _this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n            });\n          } else {\n            _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(this.$targetMenu, this.animationOut, function () {\n              _this.$element.trigger('toggled.zf.responsiveToggle');\n            });\n          }\n        } else {\n          this.$targetMenu.toggle(0);\n          this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n          this.$element.trigger('toggled.zf.responsiveToggle');\n        }\n      }\n    }\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.responsiveToggle');\n      this.$toggler.off('.zf.responsiveToggle');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._updateMqHandler);\n    }\n  }]);\n\n  return ResponsiveToggle;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n\nResponsiveToggle.defaults = {\n  /**\n   * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  hideFor: 'medium',\n\n  /**\n   * To decide if the toggle should be animated or not.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\n\n/***/ }),\n\n/***/ 13:\n/*!*****************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.responsiveToggle.js ***!\n  \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.responsiveToggle.js */\"./js/entries/plugins/foundation.responsiveToggle.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.responsiveToggle.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.mediaQuery","./foundation.util.motion","./js/entries/plugins/foundation.responsiveToggle.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_responsiveToggle__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.responsiveToggle.js","ResponsiveToggle","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","_events","input","targetID","console","error","$targetMenu","concat","$toggler","find","filter","animate","split","animationIn","animationOut","_update","_updateMqHandler","bind","on","toggleMenu","atLeast","hideFor","hide","show","_this","is","animateIn","trigger","triggerHandler","animateOut","toggle","off","13","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 5ac3ce4bf7e7898deb6f92bf36da7e9e40bdcd67..a9291495a4736f23c258632b9f7fbf24204f04ba 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.reveal.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.reveal.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_reveal__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Reveal","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Touch","init","Triggers","Keyboard","register","ESCAPE","_this2","MediaQuery","id","attr","isActive","cached","mq","current","$anchor","concat","length","aria-controls","aria-haspopup","tabindex","fullScreen","hasClass","overlay","$overlay","_makeOverlay","role","aria-hidden","data-yeti-box","data-resize","detach","appendTo","addClass","_events","deepLink","location","hash","onLoadListener","onLoad","open","additionalOverlayClasses","width","outerWidth","height","outerHeight","top","left","hOffset","parseInt","vOffset","Math","min","css","margin","_this3","_this","on","open.zf.trigger","bind","close.zf.trigger","event","target","parents","close","apply","toggle.zf.trigger","toggle","resizeme.zf.trigger","_updatePosition","closeOnClick","off","e","contains","document","_handleState","scrollTop","_this4","history","pushState","updateHistory","replaceState","$activeAnchor","activeElement","is","visibility","show","hide","multipleOpened","trigger","_disableScroll","animationIn","Motion","animateIn","focusableElements","findFocusable","focus","_addGlobalClasses","trapFocus","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","removeClass","closeOnEsc","handleKey","urlWithoutHash","finishUp","_removeGlobalClasses","releaseFocus","_enableScroll","animationOut","animateOut","hideDelay","resetOnClose","html","pathname","search","title","remove","triggers","el","type","split","forEach","MutationObserver","prefixes","i","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","call","arguments","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","_typeof","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","a","triggersInitialized","IHearYou","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","n","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.reveal.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.reveal\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.reveal\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Reveal } from '../../foundation.reveal';\nFoundation.plugin(Reveal, 'Reveal');\n\nexport { Foundation, Reveal };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n  /**\n   * Creates a new instance of Reveal.\n   * @class\n   * @name Reveal\n   * @param {jQuery} element - jQuery object to use for the modal.\n   * @param {Object} options - optional parameters.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n    this.className = 'Reveal'; // ie9 back compat\n    this._init();\n\n    // Touch and Triggers init are idempotent, just need to make sure they are initialized\n    Touch.init($);\n    Triggers.init($);\n\n    Keyboard.register('Reveal', {\n      'ESCAPE': 'close',\n    });\n  }\n\n  /**\n   * Initializes the modal by adding the overlay and close buttons, (if selected).\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    this.id = this.$element.attr('id');\n    this.isActive = false;\n    this.cached = {mq: MediaQuery.current};\n\n    this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n    this.$anchor.attr({\n      'aria-controls': this.id,\n      'aria-haspopup': 'dialog',\n      'tabindex': 0\n    });\n\n    if (this.options.fullScreen || this.$element.hasClass('full')) {\n      this.options.fullScreen = true;\n      this.options.overlay = false;\n    }\n    if (this.options.overlay && !this.$overlay) {\n      this.$overlay = this._makeOverlay(this.id);\n    }\n\n    this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n    });\n\n    if(this.$overlay) {\n      this.$element.detach().appendTo(this.$overlay);\n    } else {\n      this.$element.detach().appendTo($(this.options.appendTo));\n      this.$element.addClass('without-overlay');\n    }\n    this._events();\n    if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n      this.onLoadListener = onLoad($(window), () => this.open());\n    }\n  }\n\n  /**\n   * Creates an overlay div to display behind the modal.\n   * @private\n   */\n  _makeOverlay() {\n    var additionalOverlayClasses = '';\n\n    if (this.options.additionalOverlayClasses) {\n      additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n    }\n\n    return $('<div></div>')\n      .addClass('reveal-overlay' + additionalOverlayClasses)\n      .appendTo(this.options.appendTo);\n  }\n\n  /**\n   * Updates position of modal\n   * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n   * @private\n   */\n  _updatePosition() {\n    var width = this.$element.outerWidth();\n    var outerWidth = $(window).width();\n    var height = this.$element.outerHeight();\n    var outerHeight = $(window).height();\n    var left, top = null;\n    if (this.options.hOffset === 'auto') {\n      left = parseInt((outerWidth - width) / 2, 10);\n    } else {\n      left = parseInt(this.options.hOffset, 10);\n    }\n    if (this.options.vOffset === 'auto') {\n      if (height > outerHeight) {\n        top = parseInt(Math.min(100, outerHeight / 10), 10);\n      } else {\n        top = parseInt((outerHeight - height) / 4, 10);\n      }\n    } else if (this.options.vOffset !== null) {\n      top = parseInt(this.options.vOffset, 10);\n    }\n\n    if (top !== null) {\n      this.$element.css({top: top + 'px'});\n    }\n\n    // only worry about left if we don't have an overlay or we have a horizontal offset,\n    // otherwise we're perfectly in the middle\n    if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n      this.$element.css({left: left + 'px'});\n      this.$element.css({margin: '0px'});\n    }\n\n  }\n\n  /**\n   * Adds event handlers for the modal.\n   * @private\n   */\n  _events() {\n    var _this = this;\n\n    this.$element.on({\n      'open.zf.trigger': this.open.bind(this),\n      'close.zf.trigger': (event, $element) => {\n        if ((event.target === _this.$element[0]) ||\n            ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n          return this.close.apply(this);\n        }\n      },\n      'toggle.zf.trigger': this.toggle.bind(this),\n      'resizeme.zf.trigger': function() {\n        _this._updatePosition();\n      }\n    });\n\n    if (this.options.closeOnClick && this.options.overlay) {\n      this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) {\n              return;\n        }\n        _this.close();\n      });\n    }\n    if (this.options.deepLink) {\n      $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n    }\n  }\n\n  /**\n   * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n   * @private\n   */\n  _handleState(e) {\n    if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n    else{ this.close(); }\n  }\n\n  /**\n  * Disables the scroll when Reveal is shown to prevent the background from shifting\n  * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n  */\n  _disableScroll(scrollTop) {\n    scrollTop = scrollTop || $(window).scrollTop();\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", -scrollTop);\n    }\n  }\n\n  /**\n  * Reenables the scroll when Reveal closes\n  * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n  */\n  _enableScroll(scrollTop) {\n    scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"));\n    if ($(document).height() > $(window).height()) {\n      $(\"html\")\n        .css(\"top\", \"\");\n      $(window).scrollTop(-scrollTop);\n    }\n  }\n\n\n  /**\n   * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n   * @function\n   * @fires Reveal#closeme\n   * @fires Reveal#open\n   */\n  open() {\n    // either update or replace browser history\n    const hash = `#${this.id}`;\n    if (this.options.deepLink && window.location.hash !== hash) {\n\n      if (window.history.pushState) {\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', hash);\n        } else {\n          window.history.replaceState({}, '', hash);\n        }\n      } else {\n        window.location.hash = hash;\n      }\n    }\n\n    // Remember anchor that opened it to set focus back later, have general anchors as fallback\n    this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n    this.isActive = true;\n\n    // Make elements invisible, but remove display: none so we can get size and positioning\n    this.$element\n        .css({ 'visibility': 'hidden' })\n        .show()\n        .scrollTop(0);\n    if (this.options.overlay) {\n      this.$overlay.css({'visibility': 'hidden'}).show();\n    }\n\n    this._updatePosition();\n\n    this.$element\n      .hide()\n      .css({ 'visibility': '' });\n\n    if(this.$overlay) {\n      this.$overlay.css({'visibility': ''}).hide();\n      if(this.$element.hasClass('fast')) {\n        this.$overlay.addClass('fast');\n      } else if (this.$element.hasClass('slow')) {\n        this.$overlay.addClass('slow');\n      }\n    }\n\n\n    if (!this.options.multipleOpened) {\n      /**\n       * Fires immediately before the modal opens.\n       * Closes any other modals that are currently open\n       * @event Reveal#closeme\n       */\n      this.$element.trigger('closeme.zf.reveal', this.id);\n    }\n\n    if ($('.reveal:visible').length === 0) {\n      this._disableScroll();\n    }\n\n    var _this = this;\n\n    // Motion UI method of reveal\n    if (this.options.animationIn) {\n      function afterAnimation(){\n        _this.$element\n          .attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          })\n          .focus();\n        _this._addGlobalClasses();\n        Keyboard.trapFocus(_this.$element);\n      }\n      if (this.options.overlay) {\n        Motion.animateIn(this.$overlay, 'fade-in');\n      }\n      Motion.animateIn(this.$element, this.options.animationIn, () => {\n        if(this.$element) { // protect against object having been removed\n          this.focusableElements = Keyboard.findFocusable(this.$element);\n          afterAnimation();\n        }\n      });\n    }\n    // jQuery method of reveal\n    else {\n      if (this.options.overlay) {\n        this.$overlay.show(0);\n      }\n      this.$element.show(this.options.showDelay);\n    }\n\n    // handle accessibility\n    this.$element\n      .attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      })\n      .focus();\n    Keyboard.trapFocus(this.$element);\n\n    this._addGlobalClasses();\n\n    this._addGlobalListeners();\n\n    /**\n     * Fires when the modal has successfully opened.\n     * @event Reveal#open\n     */\n    this.$element.trigger('open.zf.reveal');\n  }\n\n  /**\n   * Adds classes and listeners on document required by open modals.\n   *\n   * The following classes are added and updated:\n   * - `.is-reveal-open` - Prevents the scroll on document\n   * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n   *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n   *                       the scrollbar disappearing when the modal opens.\n   *\n   * @private\n   */\n  _addGlobalClasses() {\n    const updateScrollbarClass = () => {\n      $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n    };\n\n    this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n    updateScrollbarClass();\n    $('html').addClass('is-reveal-open');\n  }\n\n  /**\n   * Removes classes and listeners on document that were required by open modals.\n   * @private\n   */\n  _removeGlobalClasses() {\n    this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n    $('html').removeClass('is-reveal-open');\n    $('html').removeClass('zf-has-scroll');\n  }\n\n  /**\n   * Adds extra event handlers for the body and window if necessary.\n   * @private\n   */\n  _addGlobalListeners() {\n    var _this = this;\n    if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n    this.focusableElements = Keyboard.findFocusable(this.$element);\n\n    if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n      $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n        if (e.target === _this.$element[0] ||\n          $.contains(_this.$element[0], e.target) ||\n            !$.contains(document, e.target)) { return; }\n        _this.close();\n      });\n    }\n\n    if (this.options.closeOnEsc) {\n      $(window).on('keydown.zf.reveal', function(e) {\n        Keyboard.handleKey(e, 'Reveal', {\n          close: function() {\n            if (_this.options.closeOnEsc) {\n              _this.close();\n            }\n          }\n        });\n      });\n    }\n  }\n\n  /**\n   * Closes the modal.\n   * @function\n   * @fires Reveal#closed\n   */\n  close() {\n    if (!this.isActive || !this.$element.is(':visible')) {\n      return false;\n    }\n    var _this = this;\n\n    // Motion UI method of hiding\n    if (this.options.animationOut) {\n      if (this.options.overlay) {\n        Motion.animateOut(this.$overlay, 'fade-out');\n      }\n\n      Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n    }\n    // jQuery method of hiding\n    else {\n      this.$element.hide(this.options.hideDelay);\n\n      if (this.options.overlay) {\n        this.$overlay.hide(0, finishUp);\n      }\n      else {\n        finishUp();\n      }\n    }\n\n    // Conditionals to remove extra event listeners added on open\n    if (this.options.closeOnEsc) {\n      $(window).off('keydown.zf.reveal');\n    }\n\n    if (!this.options.overlay && this.options.closeOnClick) {\n      $('body').off('click.zf.dropdown tap.zf.dropdown');\n    }\n\n    this.$element.off('keydown.zf.reveal');\n\n    function finishUp() {\n\n      // Get the current top before the modal is closed and restore the scroll after.\n      // TODO: use component properties instead of HTML properties\n      // See https://github.com/foundation/foundation-sites/pull/10786\n      var scrollTop = parseInt($(\"html\").css(\"top\"));\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n      }\n\n      Keyboard.releaseFocus(_this.$element);\n\n      _this.$element.attr('aria-hidden', true);\n\n      if ($('.reveal:visible').length  === 0) {\n        _this._enableScroll(scrollTop);\n      }\n\n      /**\n      * Fires when the modal is done closing.\n      * @event Reveal#closed\n      */\n      _this.$element.trigger('closed.zf.reveal');\n    }\n\n    /**\n    * Resets the modal content\n    * This prevents a running video to keep going in the background\n    */\n    if (this.options.resetOnClose) {\n      this.$element.html(this.$element.html());\n    }\n\n    this.isActive = false;\n    // If deepLink and we did not switched to an other modal...\n    if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n      // Remove the history hash\n      if (window.history.replaceState) {\n        const urlWithoutHash = window.location.pathname + window.location.search;\n        if (this.options.updateHistory) {\n          window.history.pushState({}, '', urlWithoutHash); // remove the hash\n        } else {\n          window.history.replaceState('', document.title, urlWithoutHash);\n        }\n      } else {\n        window.location.hash = '';\n      }\n    }\n\n    this.$activeAnchor.focus();\n  }\n\n  /**\n   * Toggles the open/closed state of a modal.\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.close();\n    } else {\n      this.open();\n    }\n  };\n\n  /**\n   * Destroys an instance of a modal.\n   * @function\n   */\n  _destroy() {\n    if (this.options.overlay) {\n      this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n      this.$overlay.hide().off().remove();\n    }\n    this.$element.hide().off();\n    this.$anchor.off('.zf');\n    $(window).off(`.zf.reveal:${this.id}`)\n    if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n    if ($('.reveal:visible').length  === 0) {\n      this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n    }\n  };\n}\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n    /**\n   * Allows the modal to append to custom div.\n   * @option\n   * @type {string}\n   * @default \"body\"\n   */\n  appendTo: \"body\",\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 14);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.reveal.min.js","sources":["foundation.reveal.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.reveal\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.reveal\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 14);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./foundation.util.touch\":\n/*!****************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n  \\****************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.reveal.js\":\n/*!*************************************************!*\\\n  !*** ./js/entries/plugins/foundation.reveal.js ***!\n  \\*************************************************/\n/*! exports provided: Foundation, Reveal */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_reveal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.reveal */ \"./js/foundation.reveal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Reveal\", function() { return _foundation_reveal__WEBPACK_IMPORTED_MODULE_1__[\"Reveal\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_reveal__WEBPACK_IMPORTED_MODULE_1__[\"Reveal\"], 'Reveal');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.reveal.js\":\n/*!*********************************!*\\\n  !*** ./js/foundation.reveal.js ***!\n  \\*********************************/\n/*! exports provided: Reveal */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Reveal\", function() { return Reveal; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./foundation.util.touch */ \"./foundation.util.touch\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nvar Reveal = /*#__PURE__*/function (_Plugin) {\n  _inherits(Reveal, _Plugin);\n\n  var _super = _createSuper(Reveal);\n\n  function Reveal() {\n    _classCallCheck(this, Reveal);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Reveal, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Reveal.\n     * @class\n     * @name Reveal\n     * @param {jQuery} element - jQuery object to use for the modal.\n     * @param {Object} options - optional parameters.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Reveal.defaults, this.$element.data(), options);\n      this.className = 'Reveal'; // ie9 back compat\n\n      this._init(); // Touch and Triggers init are idempotent, just need to make sure they are initialized\n\n\n      _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Reveal', {\n        'ESCAPE': 'close'\n      });\n    }\n    /**\n     * Initializes the modal by adding the overlay and close buttons, (if selected).\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n      this.id = this.$element.attr('id');\n      this.isActive = false;\n      this.cached = {\n        mq: _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].current\n      };\n      this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat(this.id, \"\\\"]\"));\n      this.$anchor.attr({\n        'aria-controls': this.id,\n        'aria-haspopup': 'dialog',\n        'tabindex': 0\n      });\n\n      if (this.options.fullScreen || this.$element.hasClass('full')) {\n        this.options.fullScreen = true;\n        this.options.overlay = false;\n      }\n\n      if (this.options.overlay && !this.$overlay) {\n        this.$overlay = this._makeOverlay(this.id);\n      }\n\n      this.$element.attr({\n        'role': 'dialog',\n        'aria-hidden': true,\n        'data-yeti-box': this.id,\n        'data-resize': this.id\n      });\n\n      if (this.$overlay) {\n        this.$element.detach().appendTo(this.$overlay);\n      } else {\n        this.$element.detach().appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo));\n        this.$element.addClass('without-overlay');\n      }\n\n      this._events();\n\n      if (this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n        this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n          return _this2.open();\n        });\n      }\n    }\n    /**\n     * Creates an overlay div to display behind the modal.\n     * @private\n     */\n\n  }, {\n    key: \"_makeOverlay\",\n    value: function _makeOverlay() {\n      var additionalOverlayClasses = '';\n\n      if (this.options.additionalOverlayClasses) {\n        additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n      }\n\n      return jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div></div>').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);\n    }\n    /**\n     * Updates position of modal\n     * TODO:  Figure out if we actually need to cache these values or if it doesn't matter\n     * @private\n     */\n\n  }, {\n    key: \"_updatePosition\",\n    value: function _updatePosition() {\n      var width = this.$element.outerWidth();\n      var outerWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).width();\n      var height = this.$element.outerHeight();\n      var outerHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height();\n      var left,\n          top = null;\n\n      if (this.options.hOffset === 'auto') {\n        left = parseInt((outerWidth - width) / 2, 10);\n      } else {\n        left = parseInt(this.options.hOffset, 10);\n      }\n\n      if (this.options.vOffset === 'auto') {\n        if (height > outerHeight) {\n          top = parseInt(Math.min(100, outerHeight / 10), 10);\n        } else {\n          top = parseInt((outerHeight - height) / 4, 10);\n        }\n      } else if (this.options.vOffset !== null) {\n        top = parseInt(this.options.vOffset, 10);\n      }\n\n      if (top !== null) {\n        this.$element.css({\n          top: top + 'px'\n        });\n      } // only worry about left if we don't have an overlay or we have a horizontal offset,\n      // otherwise we're perfectly in the middle\n\n\n      if (!this.$overlay || this.options.hOffset !== 'auto') {\n        this.$element.css({\n          left: left + 'px'\n        });\n        this.$element.css({\n          margin: '0px'\n        });\n      }\n    }\n    /**\n     * Adds event handlers for the modal.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this3 = this;\n\n      var _this = this;\n\n      this.$element.on({\n        'open.zf.trigger': this.open.bind(this),\n        'close.zf.trigger': function closeZfTrigger(event, $element) {\n          if (event.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('[data-closable]')[0] === $element) {\n            // only close reveal when it's explicitly called\n            return _this3.close.apply(_this3);\n          }\n        },\n        'toggle.zf.trigger': this.toggle.bind(this),\n        'resizeme.zf.trigger': function resizemeZfTrigger() {\n          _this._updatePosition();\n        }\n      });\n\n      if (this.options.closeOnClick && this.options.overlay) {\n        this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n          if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n            return;\n          }\n\n          _this.close();\n        });\n      }\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"hashchange.zf.reveal:\".concat(this.id), this._handleState.bind(this));\n      }\n    }\n    /**\n     * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n     * @private\n     */\n\n  }, {\n    key: \"_handleState\",\n    value: function _handleState() {\n      if (window.location.hash === '#' + this.id && !this.isActive) {\n        this.open();\n      } else {\n        this.close();\n      }\n    }\n    /**\n    * Disables the scroll when Reveal is shown to prevent the background from shifting\n    * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n    */\n\n  }, {\n    key: \"_disableScroll\",\n    value: function _disableScroll(scrollTop) {\n      scrollTop = scrollTop || jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop();\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", -scrollTop);\n      }\n    }\n    /**\n    * Reenables the scroll when Reveal closes\n    * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n    */\n\n  }, {\n    key: \"_enableScroll\",\n    value: function _enableScroll(scrollTop) {\n      scrollTop = scrollTop || parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"), 10);\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", \"\");\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop(-scrollTop);\n      }\n    }\n    /**\n     * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n     * @function\n     * @fires Reveal#closeme\n     * @fires Reveal#open\n     */\n\n  }, {\n    key: \"open\",\n    value: function open() {\n      var _this4 = this;\n\n      // either update or replace browser history\n      var hash = \"#\".concat(this.id);\n\n      if (this.options.deepLink && window.location.hash !== hash) {\n        if (window.history.pushState) {\n          if (this.options.updateHistory) {\n            window.history.pushState({}, '', hash);\n          } else {\n            window.history.replaceState({}, '', hash);\n          }\n        } else {\n          window.location.hash = hash;\n        }\n      } // Remember anchor that opened it to set focus back later, have general anchors as fallback\n\n\n      this.$activeAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement).is(this.$anchor) ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement) : this.$anchor;\n      this.isActive = true; // Make elements invisible, but remove display: none so we can get size and positioning\n\n      this.$element.css({\n        'visibility': 'hidden'\n      }).show().scrollTop(0);\n\n      if (this.options.overlay) {\n        this.$overlay.css({\n          'visibility': 'hidden'\n        }).show();\n      }\n\n      this._updatePosition();\n\n      this.$element.hide().css({\n        'visibility': ''\n      });\n\n      if (this.$overlay) {\n        this.$overlay.css({\n          'visibility': ''\n        }).hide();\n\n        if (this.$element.hasClass('fast')) {\n          this.$overlay.addClass('fast');\n        } else if (this.$element.hasClass('slow')) {\n          this.$overlay.addClass('slow');\n        }\n      }\n\n      if (!this.options.multipleOpened) {\n        /**\n         * Fires immediately before the modal opens.\n         * Closes any other modals that are currently open\n         * @event Reveal#closeme\n         */\n        this.$element.trigger('closeme.zf.reveal', this.id);\n      }\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n        this._disableScroll();\n      }\n\n      var _this = this; // Motion UI method of reveal\n\n\n      if (this.options.animationIn) {\n        var afterAnimation = function afterAnimation() {\n          _this.$element.attr({\n            'aria-hidden': false,\n            'tabindex': -1\n          }).focus();\n\n          _this._addGlobalClasses();\n\n          _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(_this.$element);\n        };\n\n        if (this.options.overlay) {\n          _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$overlay, 'fade-in');\n        }\n\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$element, this.options.animationIn, function () {\n          if (_this4.$element) {\n            // protect against object having been removed\n            _this4.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(_this4.$element);\n            afterAnimation();\n          }\n        });\n      } // jQuery method of reveal\n      else {\n        if (this.options.overlay) {\n          this.$overlay.show(0);\n        }\n\n        this.$element.show(this.options.showDelay);\n      } // handle accessibility\n\n\n      this.$element.attr({\n        'aria-hidden': false,\n        'tabindex': -1\n      }).focus();\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n\n      this._addGlobalClasses();\n\n      this._addGlobalListeners();\n      /**\n       * Fires when the modal has successfully opened.\n       * @event Reveal#open\n       */\n\n\n      this.$element.trigger('open.zf.reveal');\n    }\n    /**\n     * Adds classes and listeners on document required by open modals.\n     *\n     * The following classes are added and updated:\n     * - `.is-reveal-open` - Prevents the scroll on document\n     * - `.zf-has-scroll`  - Displays a disabled scrollbar on document if required like if the\n     *                       scroll was not disabled. This prevent a \"shift\" of the page content due\n     *                       the scrollbar disappearing when the modal opens.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_addGlobalClasses\",\n    value: function _addGlobalClasses() {\n      var updateScrollbarClass = function updateScrollbarClass() {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').toggleClass('zf-has-scroll', !!(jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()));\n      };\n\n      this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function () {\n        return updateScrollbarClass();\n      });\n      updateScrollbarClass();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('is-reveal-open');\n    }\n    /**\n     * Removes classes and listeners on document that were required by open modals.\n     * @private\n     */\n\n  }, {\n    key: \"_removeGlobalClasses\",\n    value: function _removeGlobalClasses() {\n      this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('is-reveal-open');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('zf-has-scroll');\n    }\n    /**\n     * Adds extra event handlers for the body and window if necessary.\n     * @private\n     */\n\n  }, {\n    key: \"_addGlobalListeners\",\n    value: function _addGlobalListeners() {\n      var _this = this;\n\n      if (!this.$element) {\n        return;\n      } // If we're in the middle of cleanup, don't freak out\n\n\n      this.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(this.$element);\n\n      if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n          if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n            return;\n          }\n\n          _this.close();\n        });\n      }\n\n      if (this.options.closeOnEsc) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('keydown.zf.reveal', function (e) {\n          _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Reveal', {\n            close: function close() {\n              if (_this.options.closeOnEsc) {\n                _this.close();\n              }\n            }\n          });\n        });\n      }\n    }\n    /**\n     * Closes the modal.\n     * @function\n     * @fires Reveal#closed\n     */\n\n  }, {\n    key: \"close\",\n    value: function close() {\n      if (!this.isActive || !this.$element.is(':visible')) {\n        return false;\n      }\n\n      var _this = this; // Motion UI method of hiding\n\n\n      if (this.options.animationOut) {\n        if (this.options.overlay) {\n          _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$overlay, 'fade-out');\n        }\n\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$element, this.options.animationOut, finishUp);\n      } // jQuery method of hiding\n      else {\n        this.$element.hide(this.options.hideDelay);\n\n        if (this.options.overlay) {\n          this.$overlay.hide(0, finishUp);\n        } else {\n          finishUp();\n        }\n      } // Conditionals to remove extra event listeners added on open\n\n\n      if (this.options.closeOnEsc) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('keydown.zf.reveal');\n      }\n\n      if (!this.options.overlay && this.options.closeOnClick) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('click.zf.dropdown tap.zf.dropdown');\n      }\n\n      this.$element.off('keydown.zf.reveal');\n\n      function finishUp() {\n        // Get the current top before the modal is closed and restore the scroll after.\n        // TODO: use component properties instead of HTML properties\n        // See https://github.com/foundation/foundation-sites/pull/10786\n        var scrollTop = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"), 10);\n\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n          _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n        }\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this.$element);\n\n        _this.$element.attr('aria-hidden', true);\n\n        if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n          _this._enableScroll(scrollTop);\n        }\n        /**\n        * Fires when the modal is done closing.\n        * @event Reveal#closed\n        */\n\n\n        _this.$element.trigger('closed.zf.reveal');\n      }\n      /**\n      * Resets the modal content\n      * This prevents a running video to keep going in the background\n      */\n\n\n      if (this.options.resetOnClose) {\n        this.$element.html(this.$element.html());\n      }\n\n      this.isActive = false; // If deepLink and we did not switched to an other modal...\n\n      if (_this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n        // Remove the history hash\n        if (window.history.replaceState) {\n          var urlWithoutHash = window.location.pathname + window.location.search;\n\n          if (this.options.updateHistory) {\n            window.history.pushState({}, '', urlWithoutHash); // remove the hash\n          } else {\n            window.history.replaceState('', document.title, urlWithoutHash);\n          }\n        } else {\n          window.location.hash = '';\n        }\n      }\n\n      this.$activeAnchor.focus();\n    }\n    /**\n     * Toggles the open/closed state of a modal.\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.isActive) {\n        this.close();\n      } else {\n        this.open();\n      }\n    }\n  }, {\n    key: \"_destroy\",\n    value:\n    /**\n     * Destroys an instance of a modal.\n     * @function\n     */\n    function _destroy() {\n      if (this.options.overlay) {\n        this.$element.appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n\n        this.$overlay.hide().off().remove();\n      }\n\n      this.$element.hide().off();\n      this.$anchor.off('.zf');\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\".zf.reveal:\".concat(this.id));\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n      if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n        this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n      }\n    }\n  }]);\n\n  return Reveal;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nReveal.defaults = {\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationIn: '',\n\n  /**\n   * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  animationOut: '',\n\n  /**\n   * Time, in ms, to delay the opening of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  showDelay: 0,\n\n  /**\n   * Time, in ms, to delay the closing of a modal after a click if no animation used.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hideDelay: 0,\n\n  /**\n   * Allows a click on the body/overlay to close the modal.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnClick: true,\n\n  /**\n   * Allows the modal to close if the user presses the `ESCAPE` key.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  closeOnEsc: true,\n\n  /**\n   * If true, allows multiple modals to be displayed at once.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  multipleOpened: false,\n\n  /**\n   * Distance, in pixels, the modal should push down from the top of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  vOffset: 'auto',\n\n  /**\n   * Distance, in pixels, the modal should push in from the side of the screen.\n   * @option\n   * @type {number|string}\n   * @default auto\n   */\n  hOffset: 'auto',\n\n  /**\n   * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  fullScreen: false,\n\n  /**\n   * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  overlay: true,\n\n  /**\n   * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  resetOnClose: false,\n\n  /**\n   * Link the location hash to the modal.\n   * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open modal\n   * @option\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n  * Allows the modal to append to custom div.\n  * @option\n  * @type {string}\n  * @default \"body\"\n  */\n  appendTo: \"body\",\n\n  /**\n   * Allows adding additional class names to the reveal overlay.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  additionalOverlayClasses: ''\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 14:\n/*!*******************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.reveal.js ***!\n  \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.reveal.js */\"./js/entries/plugins/foundation.reveal.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.reveal.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.keyboard","./foundation.util.mediaQuery","./foundation.util.motion","./foundation.util.touch","./js/entries/plugins/foundation.reveal.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_reveal__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.reveal.js","Reveal","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","init","register","ESCAPE","_this2","id","attr","isActive","cached","mq","current","$anchor","concat","aria-controls","aria-haspopup","tabindex","fullScreen","hasClass","overlay","$overlay","_makeOverlay","role","aria-hidden","data-yeti-box","data-resize","detach","appendTo","addClass","_events","deepLink","location","hash","onLoadListener","open","additionalOverlayClasses","width","outerWidth","height","outerHeight","top","left","hOffset","parseInt","vOffset","Math","min","css","margin","_this3","_this","on","open.zf.trigger","bind","close.zf.trigger","event","parents","close","toggle.zf.trigger","toggle","resizeme.zf.trigger","_updatePosition","closeOnClick","off","contains","document","_handleState","scrollTop","_this4","history","pushState","updateHistory","replaceState","$activeAnchor","activeElement","is","visibility","show","hide","multipleOpened","trigger","_disableScroll","animationIn","animateIn","focusableElements","findFocusable","focus","_addGlobalClasses","trapFocus","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","removeClass","closeOnEsc","handleKey","urlWithoutHash","finishUp","_removeGlobalClasses","releaseFocus","_enableScroll","animationOut","animateOut","hideDelay","resetOnClose","html","pathname","search","title","remove","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","el","type","split","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","14","jquery","installedModules","m","c","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 706a59ca090a0f7e8dc2856e9708c715aa289189..0f26d8f902f8e86fe98ab94921745988d84d5671 100644 (file)
@@ -797,7 +797,7 @@ var Slider = /*#__PURE__*/function (_Plugin) {
       $handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e) {
         var _$handle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
             idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,
-            oldValue = parseFloat(_this.inputs.eq(idx).val()),
+            oldValue = parseFloat($handle.attr('aria-valuenow')),
             newValue; // handle keyboard event with keyboard util
 
 
index 1453e239dd4a3cfd99e7348b2ecfd8c7d6facd57..d8aab57c3de9ca2e574fb1f51171f989ca832b22 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Slider","element","options","$element","$","extend","defaults","data","className","initialized","Touch","init","Triggers","_init","Keyboard","register","inputs","find","handles","$handle","eq","$input","length","attr","$fill","css","vertical","disabled","hasClass","disabledClass","addClass","add","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_events","_setHandlePos","val","value","pctOfBar","percent","start","end","positionValueFunction","_logTransform","_powTransform","toFixed","parseFloat","baseLog","nonLinearBase","Math","pow","$hndl","location","cb","isDbl","index","h2Val","step","h1Val","_this","vert","hOrW","lOrT","handleDim","getBoundingClientRect","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","floor","style","handlePos","isNaN","initialStart","moveTime","Move","one","trigger","clearTimeout","timeout","setTimeout","changedDelay","idx","initVal","initialEnd","id","GetYoDigits","e","preventDefault","param","direction","eventOffset","pageY","pageX","barDim","windowScroll","window","scrollTop","scrollLeft","elemOffset","offset","clientY","eventFromBar","barXY","offsetPct","_value","Rtl","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","left","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","off","on","keyCode","call","clickSelect","target","is","draggable","addTouch","$body","currentTarget","ev","removeClass","_$handle","oldValue","newValue","handleKey","decrease","increase","decreaseFast","increaseFast","min","max","handled","Plugin","invertVertical","frac","num","dir","clickPos","abs","position","base","log","MutationObserver","prefixes","i","triggers","el","type","split","forEach","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","plugins","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","concat","console","error","listeners","map","name","join","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","arguments","apply","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","__","onLoad","triggersInitialized","IHearYou"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,8D;;;;;;;;;;;ACAA,uE;;;;;;;;;;;ACAA,qE;;;;;;;;;;;ACAA,oE;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACAA,2DAAU,CAACC,MAAX,CAAkBC,yDAAlB,EAA0B,QAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEMA,M;;;;;;;;;;;;;;AACJ;AACF;AACA;AACA;AACA;AACA;AACA;AACE,oBAAOC,OAAP,EAAgBC,OAAhB,EAAyB;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAeE,6CAAC,CAACC,MAAF,CAAS,EAAT,EAAaL,MAAM,CAACM,QAApB,EAA8B,KAAKH,QAAL,CAAcI,IAAd,EAA9B,EAAoDL,OAApD,CAAf;AACA,WAAKM,SAAL,GAAiB,QAAjB,CAHuB,CAGI;;AAC3B,WAAKC,WAAL,GAAmB,KAAnB,CAJuB,CAMzB;;AACEC,kEAAK,CAACC,IAAN,CAAWP,6CAAX;AACAQ,wEAAQ,CAACD,IAAT,CAAcP,6CAAd;;AAEA,WAAKS,KAAL;;AAEAC,wEAAQ,CAACC,QAAT,CAAkB,QAAlB,EAA4B;AAC1B,eAAO;AACL,yBAAe,UADV;AAEL,sBAAY,UAFP;AAGL,wBAAc,UAHT;AAIL,wBAAc,UAJT;AAKL,+BAAqB,cALhB;AAML,4BAAkB,cANb;AAOL,8BAAoB,cAPf;AAQL,8BAAoB,cARf;AASL,kBAAQ,KATH;AAUL,iBAAO;AAVF,SADmB;AAa1B,eAAO;AACL,wBAAc,UADT;AAEL,yBAAe,UAFV;AAGL,8BAAoB,cAHf;AAIL,+BAAqB;AAJhB;AAbmB,OAA5B;AAoBD;AAED;AACF;AACA;AACA;AACA;;;;WACE,iBAAQ;AACN,WAAKC,MAAL,GAAc,KAAKb,QAAL,CAAcc,IAAd,CAAmB,OAAnB,CAAd;AACA,WAAKC,OAAL,GAAe,KAAKf,QAAL,CAAcc,IAAd,CAAmB,sBAAnB,CAAf;AAEA,WAAKE,OAAL,GAAe,KAAKD,OAAL,CAAaE,EAAb,CAAgB,CAAhB,CAAf;AACA,WAAKC,MAAL,GAAc,KAAKL,MAAL,CAAYM,MAAZ,GAAqB,KAAKN,MAAL,CAAYI,EAAZ,CAAe,CAAf,CAArB,GAAyChB,6CAAC,YAAK,KAAKe,OAAL,CAAaI,IAAb,CAAkB,eAAlB,CAAL,EAAxD;AACA,WAAKC,KAAL,GAAa,KAAKrB,QAAL,CAAcc,IAAd,CAAmB,oBAAnB,EAAyCQ,GAAzC,CAA6C,KAAKvB,OAAL,CAAawB,QAAb,GAAwB,QAAxB,GAAmC,OAAhF,EAAyF,CAAzF,CAAb;;AAEA,UAAI,KAAKxB,OAAL,CAAayB,QAAb,IAAyB,KAAKxB,QAAL,CAAcyB,QAAd,CAAuB,KAAK1B,OAAL,CAAa2B,aAApC,CAA7B,EAAiF;AAC/E,aAAK3B,OAAL,CAAayB,QAAb,GAAwB,IAAxB;AACA,aAAKxB,QAAL,CAAc2B,QAAd,CAAuB,KAAK5B,OAAL,CAAa2B,aAApC;AACD;;AACD,UAAI,CAAC,KAAKb,MAAL,CAAYM,MAAjB,EAAyB;AACvB,aAAKN,MAAL,GAAcZ,6CAAC,GAAG2B,GAAJ,CAAQ,KAAKV,MAAb,CAAd;AACA,aAAKnB,OAAL,CAAa8B,OAAb,GAAuB,IAAvB;AACD;;AAED,WAAKC,YAAL,CAAkB,CAAlB;;AAEA,UAAI,KAAKf,OAAL,CAAa,CAAb,CAAJ,EAAqB;AACnB,aAAKhB,OAAL,CAAagC,WAAb,GAA2B,IAA3B;AACA,aAAKC,QAAL,GAAgB,KAAKjB,OAAL,CAAaE,EAAb,CAAgB,CAAhB,CAAhB;AACA,aAAKgB,OAAL,GAAe,KAAKpB,MAAL,CAAYM,MAAZ,GAAqB,CAArB,GAAyB,KAAKN,MAAL,CAAYI,EAAZ,CAAe,CAAf,CAAzB,GAA6ChB,6CAAC,YAAK,KAAK+B,QAAL,CAAcZ,IAAd,CAAmB,eAAnB,CAAL,EAA7D;;AAEA,YAAI,CAAC,KAAKP,MAAL,CAAY,CAAZ,CAAL,EAAqB;AACnB,eAAKA,MAAL,GAAc,KAAKA,MAAL,CAAYe,GAAZ,CAAgB,KAAKK,OAArB,CAAd;AACD,SAPkB,CASnB;;;AACA,aAAKH,YAAL,CAAkB,CAAlB;AACD,OA9BK,CAgCN;;;AACA,WAAKI,UAAL;;AAEA,WAAKC,OAAL;;AACA,WAAK7B,WAAL,GAAmB,IAAnB;AACD;;;WAED,sBAAa;AAAA;;AACX,UAAG,KAAKS,OAAL,CAAa,CAAb,CAAH,EAAoB;AAClB,aAAKqB,aAAL,CAAmB,KAAKpB,OAAxB,EAAiC,KAAKH,MAAL,CAAYI,EAAZ,CAAe,CAAf,EAAkBoB,GAAlB,EAAjC,EAA0D,YAAM;AAC9D,gBAAI,CAACD,aAAL,CAAmB,MAAI,CAACJ,QAAxB,EAAkC,MAAI,CAACnB,MAAL,CAAYI,EAAZ,CAAe,CAAf,EAAkBoB,GAAlB,EAAlC;AACD,SAFD;AAGD,OAJD,MAIO;AACL,aAAKD,aAAL,CAAmB,KAAKpB,OAAxB,EAAiC,KAAKH,MAAL,CAAYI,EAAZ,CAAe,CAAf,EAAkBoB,GAAlB,EAAjC;AACD;AACF;;;WAED,mBAAU;AACR,WAAKH,UAAL;AACD;AACD;AACF;AACA;AACA;AACA;;;;WACE,mBAAUI,KAAV,EAAiB;AACf,UAAIC,QAAQ,GAAGC,OAAO,CAACF,KAAK,GAAG,KAAKvC,OAAL,CAAa0C,KAAtB,EAA6B,KAAK1C,OAAL,CAAa2C,GAAb,GAAmB,KAAK3C,OAAL,CAAa0C,KAA7D,CAAtB;;AAEA,cAAO,KAAK1C,OAAL,CAAa4C,qBAApB;AACA,aAAK,KAAL;AACEJ,kBAAQ,GAAG,KAAKK,aAAL,CAAmBL,QAAnB,CAAX;AACA;;AACF,aAAK,KAAL;AACEA,kBAAQ,GAAG,KAAKM,aAAL,CAAmBN,QAAnB,CAAX;AACA;AANF;;AASA,aAAOA,QAAQ,CAACO,OAAT,CAAiB,CAAjB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,gBAAOP,QAAP,EAAiB;AACf,cAAO,KAAKxC,OAAL,CAAa4C,qBAApB;AACA,aAAK,KAAL;AACEJ,kBAAQ,GAAG,KAAKM,aAAL,CAAmBN,QAAnB,CAAX;AACA;;AACF,aAAK,KAAL;AACEA,kBAAQ,GAAG,KAAKK,aAAL,CAAmBL,QAAnB,CAAX;AACA;AANF;;AASA,UAAID,KAAJ;;AACA,UAAI,KAAKvC,OAAL,CAAawB,QAAjB,EAA2B;AACzB;AACA;AACAe,aAAK,GAAGS,UAAU,CAAC,KAAKhD,OAAL,CAAa2C,GAAd,CAAV,GAA+BH,QAAQ,IAAI,KAAKxC,OAAL,CAAa0C,KAAb,GAAqB,KAAK1C,OAAL,CAAa2C,GAAtC,CAA/C;AACD,OAJD,MAIO;AACLJ,aAAK,GAAG,CAAC,KAAKvC,OAAL,CAAa2C,GAAb,GAAmB,KAAK3C,OAAL,CAAa0C,KAAjC,IAA0CF,QAA1C,GAAqDQ,UAAU,CAAC,KAAKhD,OAAL,CAAa0C,KAAd,CAAvE;AACD;;AAED,aAAOH,KAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,uBAAcA,KAAd,EAAqB;AACnB,aAAOU,OAAO,CAAC,KAAKjD,OAAL,CAAakD,aAAd,EAA+BX,KAAK,IAAE,KAAKvC,OAAL,CAAakD,aAAb,GAA2B,CAA7B,CAAN,GAAuC,CAArE,CAAd;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,uBAAcX,KAAd,EAAqB;AACnB,aAAO,CAACY,IAAI,CAACC,GAAL,CAAS,KAAKpD,OAAL,CAAakD,aAAtB,EAAqCX,KAArC,IAA8C,CAA/C,KAAqD,KAAKvC,OAAL,CAAakD,aAAb,GAA6B,CAAlF,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,uBAAcG,KAAd,EAAqBC,QAArB,EAA+BC,EAA/B,EAAmC;AACjC;AACA,UAAI,KAAKtD,QAAL,CAAcyB,QAAd,CAAuB,KAAK1B,OAAL,CAAa2B,aAApC,CAAJ,EAAwD;AACtD;AACD,OAJgC,CAKjC;;;AACA2B,cAAQ,GAAGN,UAAU,CAACM,QAAD,CAArB,CANiC,CAMD;AAEhC;;AACA,UAAIA,QAAQ,GAAG,KAAKtD,OAAL,CAAa0C,KAA5B,EAAmC;AAAEY,gBAAQ,GAAG,KAAKtD,OAAL,CAAa0C,KAAxB;AAAgC,OAArE,MACK,IAAIY,QAAQ,GAAG,KAAKtD,OAAL,CAAa2C,GAA5B,EAAiC;AAAEW,gBAAQ,GAAG,KAAKtD,OAAL,CAAa2C,GAAxB;AAA8B;;AAEtE,UAAIa,KAAK,GAAG,KAAKxD,OAAL,CAAagC,WAAzB;;AAEA,UAAIwB,KAAJ,EAAW;AAAE;AACX,YAAI,KAAKxC,OAAL,CAAayC,KAAb,CAAmBJ,KAAnB,MAA8B,CAAlC,EAAqC;AACnC,cAAIK,KAAK,GAAGV,UAAU,CAAC,KAAKf,QAAL,CAAcZ,IAAd,CAAmB,eAAnB,CAAD,CAAtB;AACAiC,kBAAQ,GAAGA,QAAQ,IAAII,KAAZ,GAAoBA,KAAK,GAAG,KAAK1D,OAAL,CAAa2D,IAAzC,GAAgDL,QAA3D;AACD,SAHD,MAGO;AACL,cAAIM,KAAK,GAAGZ,UAAU,CAAC,KAAK/B,OAAL,CAAaI,IAAb,CAAkB,eAAlB,CAAD,CAAtB;AACAiC,kBAAQ,GAAGA,QAAQ,IAAIM,KAAZ,GAAoBA,KAAK,GAAG,KAAK5D,OAAL,CAAa2D,IAAzC,GAAgDL,QAA3D;AACD;AACF;;AAED,UAAIO,KAAK,GAAG,IAAZ;AAAA,UACIC,IAAI,GAAG,KAAK9D,OAAL,CAAawB,QADxB;AAAA,UAEIuC,IAAI,GAAGD,IAAI,GAAG,QAAH,GAAc,OAF7B;AAAA,UAGIE,IAAI,GAAGF,IAAI,GAAG,KAAH,GAAW,MAH1B;AAAA,UAIIG,SAAS,GAAGZ,KAAK,CAAC,CAAD,CAAL,CAASa,qBAAT,GAAiCH,IAAjC,CAJhB;AAAA,UAKII,OAAO,GAAG,KAAKlE,QAAL,CAAc,CAAd,EAAiBiE,qBAAjB,GAAyCH,IAAzC,CALd;AAAA,UAMI;AACAvB,cAAQ,GAAG,KAAK4B,SAAL,CAAed,QAAf,CAPf;AAAA,UAQI;AACAe,cAAQ,GAAG,CAACF,OAAO,GAAGF,SAAX,IAAwBzB,QATvC;AAAA,UAUI;AACA8B,cAAQ,GAAG,CAAC7B,OAAO,CAAC4B,QAAD,EAAWF,OAAX,CAAP,GAA6B,GAA9B,EAAmCpB,OAAnC,CAA2C,KAAK/C,OAAL,CAAauE,OAAxD,CAXf,CAxBiC,CAoC7B;;;AACAjB,cAAQ,GAAGN,UAAU,CAACM,QAAQ,CAACP,OAAT,CAAiB,KAAK/C,OAAL,CAAauE,OAA9B,CAAD,CAArB,CArC6B,CAsC7B;;AACJ,UAAIhD,GAAG,GAAG,EAAV;;AAEA,WAAKiD,UAAL,CAAgBnB,KAAhB,EAAuBC,QAAvB,EAzCiC,CA2CjC;;;AACA,UAAIE,KAAJ,EAAW;AACT,YAAIiB,UAAU,GAAG,KAAKzD,OAAL,CAAayC,KAAb,CAAmBJ,KAAnB,MAA8B,CAA/C;AAAA,YACI;AACAqB,WAFJ;AAAA,YAGI;AACAC,iBAAS,GAAIxB,IAAI,CAACyB,KAAL,CAAWnC,OAAO,CAACwB,SAAD,EAAYE,OAAZ,CAAP,GAA8B,GAAzC,CAJjB,CADS,CAMT;;AACA,YAAIM,UAAJ,EAAgB;AACd;AACAlD,aAAG,CAACyC,IAAD,CAAH,aAAeM,QAAf,OAFc,CAGd;;AACAI,aAAG,GAAG1B,UAAU,CAAC,KAAKf,QAAL,CAAc,CAAd,EAAiB4C,KAAjB,CAAuBb,IAAvB,CAAD,CAAV,GAA2CM,QAA3C,GAAsDK,SAA5D,CAJc,CAKd;AACA;;AACA,cAAIpB,EAAE,IAAI,OAAOA,EAAP,KAAc,UAAxB,EAAoC;AAAEA,cAAE;AAAK,WAP/B,CAO+B;;AAC9C,SARD,MAQO;AACL;AACA,cAAIuB,SAAS,GAAG9B,UAAU,CAAC,KAAK/B,OAAL,CAAa,CAAb,EAAgB4D,KAAhB,CAAsBb,IAAtB,CAAD,CAA1B,CAFK,CAGL;AACA;;AACAU,aAAG,GAAGJ,QAAQ,IAAIS,KAAK,CAACD,SAAD,CAAL,GAAmB,CAAC,KAAK9E,OAAL,CAAagF,YAAb,GAA4B,KAAKhF,OAAL,CAAa0C,KAA1C,KAAkD,CAAC,KAAK1C,OAAL,CAAa2C,GAAb,GAAiB,KAAK3C,OAAL,CAAa0C,KAA/B,IAAsC,GAAxF,CAAnB,GAAkHoC,SAAtH,CAAR,GAA2IH,SAAjJ;AACD,SArBQ,CAsBT;;;AACApD,WAAG,eAAQwC,IAAR,EAAH,aAAwBW,GAAxB;AACD,OApEgC,CAsEjC;;;AACA,UAAIO,QAAQ,GAAG,KAAKhF,QAAL,CAAcI,IAAd,CAAmB,UAAnB,IAAiC,OAAK,EAAtC,GAA2C,KAAKL,OAAL,CAAaiF,QAAvE;AAEAC,0EAAI,CAACD,QAAD,EAAW5B,KAAX,EAAkB,YAAW;AAC/B;AACA;AACA;AACA,YAAI0B,KAAK,CAACT,QAAD,CAAT,EAAqB;AACnBjB,eAAK,CAAC9B,GAAN,CAAUyC,IAAV,YAAmBxB,QAAQ,GAAG,GAA9B;AACD,SAFD,MAGK;AACHa,eAAK,CAAC9B,GAAN,CAAUyC,IAAV,YAAmBM,QAAnB;AACD;;AAED,YAAI,CAACT,KAAK,CAAC7D,OAAN,CAAcgC,WAAnB,EAAgC;AAC9B;AACA6B,eAAK,CAACvC,KAAN,CAAYC,GAAZ,CAAgBwC,IAAhB,YAAyBvB,QAAQ,GAAG,GAApC;AACD,SAHD,MAGO;AACL;AACAqB,eAAK,CAACvC,KAAN,CAAYC,GAAZ,CAAgBA,GAAhB;AACD;AACF,OAlBG,CAAJ;;AAoBA,UAAI,KAAKhB,WAAT,EAAsB;AACpB,aAAKN,QAAL,CAAckF,GAAd,CAAkB,qBAAlB,EAAyC,YAAW;AAClD;AACR;AACA;AACA;AACQtB,eAAK,CAAC5D,QAAN,CAAemF,OAAf,CAAuB,iBAAvB,EAA0C,CAAC/B,KAAD,CAA1C;AACD,SAND;AAOA;AACN;AACA;AACA;;AACMgC,oBAAY,CAACxB,KAAK,CAACyB,OAAP,CAAZ;AACAzB,aAAK,CAACyB,OAAN,GAAgBC,UAAU,CAAC,YAAU;AACnC1B,eAAK,CAAC5D,QAAN,CAAemF,OAAf,CAAuB,mBAAvB,EAA4C,CAAC/B,KAAD,CAA5C;AACD,SAFyB,EAEvBQ,KAAK,CAAC7D,OAAN,CAAcwF,YAFS,CAA1B;AAGD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,sBAAaC,GAAb,EAAkB;AAChB,UAAIC,OAAO,GAAID,GAAG,KAAK,CAAR,GAAY,KAAKzF,OAAL,CAAagF,YAAzB,GAAwC,KAAKhF,OAAL,CAAa2F,UAApE;AACA,UAAIC,EAAE,GAAG,KAAK9E,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBpE,IAApB,CAAyB,IAAzB,KAAkCwE,0EAAW,CAAC,CAAD,EAAI,QAAJ,CAAtD;AACA,WAAK/E,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBpE,IAApB,CAAyB;AACvB,cAAMuE,EADiB;AAEvB,eAAO,KAAK5F,OAAL,CAAa2C,GAFG;AAGvB,eAAO,KAAK3C,OAAL,CAAa0C,KAHG;AAIvB,gBAAQ,KAAK1C,OAAL,CAAa2D;AAJE,OAAzB;AAMA,WAAK7C,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBnD,GAApB,CAAwBoD,OAAxB;AACA,WAAK1E,OAAL,CAAaE,EAAb,CAAgBuE,GAAhB,EAAqBpE,IAArB,CAA0B;AACxB,gBAAQ,QADgB;AAExB,yBAAiBuE,EAFO;AAGxB,yBAAiB,KAAK5F,OAAL,CAAa2C,GAHN;AAIxB,yBAAiB,KAAK3C,OAAL,CAAa0C,KAJN;AAKxB,yBAAiBgD,OALO;AAMxB,4BAAoB,KAAK1F,OAAL,CAAawB,QAAb,GAAwB,UAAxB,GAAqC,YANjC;AAOxB,oBAAY;AAPY,OAA1B;AASD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAWP,OAAX,EAAoBqB,GAApB,EAAyB;AACvB,UAAImD,GAAG,GAAG,KAAKzF,OAAL,CAAagC,WAAb,GAA2B,KAAKhB,OAAL,CAAayC,KAAb,CAAmBxC,OAAnB,CAA3B,GAAyD,CAAnE;AACA,WAAKH,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBnD,GAApB,CAAwBA,GAAxB;AACArB,aAAO,CAACI,IAAR,CAAa,eAAb,EAA8BiB,GAA9B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAawD,CAAb,EAAgB7E,OAAhB,EAAyBqB,GAAzB,EAA8B;AAC5B,UAAIC,KAAJ;;AACA,UAAI,CAACD,GAAL,EAAU;AAAC;AACTwD,SAAC,CAACC,cAAF;;AACA,YAAIlC,KAAK,GAAG,IAAZ;AAAA,YACIrC,QAAQ,GAAG,KAAKxB,OAAL,CAAawB,QAD5B;AAAA,YAEIwE,KAAK,GAAGxE,QAAQ,GAAG,QAAH,GAAc,OAFlC;AAAA,YAGIyE,SAAS,GAAGzE,QAAQ,GAAG,KAAH,GAAW,MAHnC;AAAA,YAII0E,WAAW,GAAG1E,QAAQ,GAAGsE,CAAC,CAACK,KAAL,GAAaL,CAAC,CAACM,KAJzC;AAAA,YAKIC,MAAM,GAAG,KAAKpG,QAAL,CAAc,CAAd,EAAiBiE,qBAAjB,GAAyC8B,KAAzC,CALb;AAAA,YAMIM,YAAY,GAAG9E,QAAQ,GAAGtB,6CAAC,CAACqG,MAAD,CAAD,CAAUC,SAAV,EAAH,GAA2BtG,6CAAC,CAACqG,MAAD,CAAD,CAAUE,UAAV,EANtD;;AAQA,YAAIC,UAAU,GAAG,KAAKzG,QAAL,CAAc0G,MAAd,GAAuBV,SAAvB,CAAjB,CAVQ,CAYR;AACA;;AACA,YAAIH,CAAC,CAACc,OAAF,KAAcd,CAAC,CAACK,KAApB,EAA2B;AAAED,qBAAW,GAAGA,WAAW,GAAGI,YAA5B;AAA2C;;AACxE,YAAIO,YAAY,GAAGX,WAAW,GAAGQ,UAAjC;AACA,YAAII,KAAJ;;AACA,YAAID,YAAY,GAAG,CAAnB,EAAsB;AACpBC,eAAK,GAAG,CAAR;AACD,SAFD,MAEO,IAAID,YAAY,GAAGR,MAAnB,EAA2B;AAChCS,eAAK,GAAGT,MAAR;AACD,SAFM,MAEA;AACLS,eAAK,GAAGD,YAAR;AACD;;AACD,YAAIE,SAAS,GAAGtE,OAAO,CAACqE,KAAD,EAAQT,MAAR,CAAvB;AAEA9D,aAAK,GAAG,KAAKyE,MAAL,CAAYD,SAAZ,CAAR,CA1BQ,CA4BR;;AACA,YAAIE,kEAAG,MAAM,CAAC,KAAKjH,OAAL,CAAawB,QAA3B,EAAqC;AAACe,eAAK,GAAG,KAAKvC,OAAL,CAAa2C,GAAb,GAAmBJ,KAA3B;AAAkC;;AAExEA,aAAK,GAAGsB,KAAK,CAACqD,YAAN,CAAmB,IAAnB,EAAyB3E,KAAzB,CAAR;;AAEA,YAAI,CAACtB,OAAL,EAAc;AAAC;AACb,cAAIkG,YAAY,GAAGC,WAAW,CAAC,KAAKnG,OAAN,EAAegF,SAAf,EAA0Ba,KAA1B,EAAiCd,KAAjC,CAA9B;AAAA,cACIqB,YAAY,GAAGD,WAAW,CAAC,KAAKnF,QAAN,EAAgBgE,SAAhB,EAA2Ba,KAA3B,EAAkCd,KAAlC,CAD9B;AAEI/E,iBAAO,GAAGkG,YAAY,IAAIE,YAAhB,GAA+B,KAAKpG,OAApC,GAA8C,KAAKgB,QAA7D;AACL;AAEF,OAvCD,MAuCO;AAAC;AACNM,aAAK,GAAG,KAAK2E,YAAL,CAAkB,IAAlB,EAAwB5E,GAAxB,CAAR;AACD;;AAED,WAAKD,aAAL,CAAmBpB,OAAnB,EAA4BsB,KAA5B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAatB,OAAb,EAAsBsB,KAAtB,EAA6B;AAC3B,UAAID,GAAJ;AAAA,UACEqB,IAAI,GAAG,KAAK3D,OAAL,CAAa2D,IADtB;AAAA,UAEE2D,GAAG,GAAGtE,UAAU,CAACW,IAAI,GAAC,CAAN,CAFlB;AAAA,UAGE4D,IAHF;AAAA,UAGQC,WAHR;AAAA,UAGqBC,OAHrB;;AAIA,UAAI,CAAC,CAACxG,OAAN,EAAe;AACbqB,WAAG,GAAGU,UAAU,CAAC/B,OAAO,CAACI,IAAR,CAAa,eAAb,CAAD,CAAhB;AACD,OAFD,MAGK;AACHiB,WAAG,GAAGC,KAAN;AACD;;AACD,UAAID,GAAG,IAAI,CAAX,EAAc;AACZiF,YAAI,GAAGjF,GAAG,GAAGqB,IAAb;AACD,OAFD,MAEO;AACL4D,YAAI,GAAG5D,IAAI,GAAIrB,GAAG,GAAGqB,IAArB;AACD;;AACD6D,iBAAW,GAAGlF,GAAG,GAAGiF,IAApB;AACAE,aAAO,GAAGD,WAAW,GAAG7D,IAAxB;;AACA,UAAI4D,IAAI,KAAK,CAAb,EAAgB;AACd,eAAOjF,GAAP;AACD;;AACDA,SAAG,GAAGA,GAAG,IAAIkF,WAAW,GAAGF,GAArB,GAA2BG,OAA3B,GAAqCD,WAA3C;AACA,aAAOlF,GAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,mBAAU;AACR,WAAKoF,gBAAL,CAAsB,KAAKzG,OAA3B;;AACA,UAAG,KAAKD,OAAL,CAAa,CAAb,CAAH,EAAoB;AAClB,aAAK0G,gBAAL,CAAsB,KAAKzF,QAA3B;AACD;AACF;AAGD;AACF;AACA;AACA;AACA;AACA;;;;WACE,0BAAiBhB,OAAjB,EAA0B;AACxB,UAAI4C,KAAK,GAAG,IAAZ;AAAA,UACI8D,SADJ;;AAGE,UAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAS9B,CAAT,EAAY;AACpC,YAAML,GAAG,GAAG5B,KAAK,CAAC/C,MAAN,CAAa2C,KAAb,CAAmBvD,6CAAC,CAAC,IAAD,CAApB,CAAZ;;AACA2D,aAAK,CAACgE,YAAN,CAAmB/B,CAAnB,EAAsBjC,KAAK,CAAC7C,OAAN,CAAcE,EAAd,CAAiBuE,GAAjB,CAAtB,EAA6CvF,6CAAC,CAAC,IAAD,CAAD,CAAQoC,GAAR,EAA7C;AACD,OAHD,CAJsB,CAStB;AACA;AACA;;;AACA,WAAKxB,MAAL,CAAYgH,GAAZ,CAAgB,iBAAhB,EAAmCC,EAAnC,CAAsC,iBAAtC,EAAyD,UAAUjC,CAAV,EAAa;AACpE,YAAGA,CAAC,CAACkC,OAAF,KAAc,EAAjB,EAAqBJ,iBAAiB,CAACK,IAAlB,CAAuB,IAAvB,EAA6BnC,CAA7B;AACtB,OAFD;AAIA,WAAKhF,MAAL,CAAYgH,GAAZ,CAAgB,kBAAhB,EAAoCC,EAApC,CAAuC,kBAAvC,EAA2DH,iBAA3D;;AAEA,UAAI,KAAK5H,OAAL,CAAakI,WAAjB,EAA8B;AAC5B,aAAKjI,QAAL,CAAc6H,GAAd,CAAkB,iBAAlB,EAAqCC,EAArC,CAAwC,iBAAxC,EAA2D,UAASjC,CAAT,EAAY;AACrE,cAAIjC,KAAK,CAAC5D,QAAN,CAAeI,IAAf,CAAoB,UAApB,CAAJ,EAAqC;AAAE,mBAAO,KAAP;AAAe;;AAEtD,cAAI,CAACH,6CAAC,CAAC4F,CAAC,CAACqC,MAAH,CAAD,CAAYC,EAAZ,CAAe,sBAAf,CAAL,EAA6C;AAC3C,gBAAIvE,KAAK,CAAC7D,OAAN,CAAcgC,WAAlB,EAA+B;AAC7B6B,mBAAK,CAACgE,YAAN,CAAmB/B,CAAnB;AACD,aAFD,MAEO;AACLjC,mBAAK,CAACgE,YAAN,CAAmB/B,CAAnB,EAAsBjC,KAAK,CAAC5C,OAA5B;AACD;AACF;AACF,SAVD;AAWD;;AAEH,UAAI,KAAKjB,OAAL,CAAaqI,SAAjB,EAA4B;AAC1B,aAAKrH,OAAL,CAAasH,QAAb;AAEA,YAAIC,KAAK,GAAGrI,6CAAC,CAAC,MAAD,CAAb;AACAe,eAAO,CACJ6G,GADH,CACO,qBADP,EAEGC,EAFH,CAEM,qBAFN,EAE6B,UAASjC,CAAT,EAAY;AACrC7E,iBAAO,CAACW,QAAR,CAAiB,aAAjB;;AACAiC,eAAK,CAACvC,KAAN,CAAYM,QAAZ,CAAqB,aAArB,EAFqC,CAED;;;AACpCiC,eAAK,CAAC5D,QAAN,CAAeI,IAAf,CAAoB,UAApB,EAAgC,IAAhC;;AAEAsH,mBAAS,GAAGzH,6CAAC,CAAC4F,CAAC,CAAC0C,aAAH,CAAb;AAEAD,eAAK,CAACR,EAAN,CAAS,qBAAT,EAAgC,UAASU,EAAT,EAAa;AAC3CA,cAAE,CAAC1C,cAAH;;AACAlC,iBAAK,CAACgE,YAAN,CAAmBY,EAAnB,EAAuBd,SAAvB;AAED,WAJD,EAIGI,EAJH,CAIM,mBAJN,EAI2B,UAASU,EAAT,EAAa;AACtC5E,iBAAK,CAACgE,YAAN,CAAmBY,EAAnB,EAAuBd,SAAvB;;AAEA1G,mBAAO,CAACyH,WAAR,CAAoB,aAApB;;AACA7E,iBAAK,CAACvC,KAAN,CAAYoH,WAAZ,CAAwB,aAAxB;;AACA7E,iBAAK,CAAC5D,QAAN,CAAeI,IAAf,CAAoB,UAApB,EAAgC,KAAhC;;AAEAkI,iBAAK,CAACT,GAAN,CAAU,uCAAV;AACD,WAZD;AAaH,SAtBD,EAuBA;AAvBA,SAwBCC,EAxBD,CAwBI,2CAxBJ,EAwBiD,UAASjC,CAAT,EAAY;AAC3DA,WAAC,CAACC,cAAF;AACD,SA1BD;AA2BD;;AAED9E,aAAO,CAAC6G,GAAR,CAAY,mBAAZ,EAAiCC,EAAjC,CAAoC,mBAApC,EAAyD,UAASjC,CAAT,EAAY;AACnE,YAAI6C,QAAQ,GAAGzI,6CAAC,CAAC,IAAD,CAAhB;AAAA,YACIuF,GAAG,GAAG5B,KAAK,CAAC7D,OAAN,CAAcgC,WAAd,GAA4B6B,KAAK,CAAC7C,OAAN,CAAcyC,KAAd,CAAoBkF,QAApB,CAA5B,GAA4D,CADtE;AAAA,YAEIC,QAAQ,GAAG5F,UAAU,CAACa,KAAK,CAAC/C,MAAN,CAAaI,EAAb,CAAgBuE,GAAhB,EAAqBnD,GAArB,EAAD,CAFzB;AAAA,YAGIuG,QAHJ,CADmE,CAMnE;;;AACAjI,0EAAQ,CAACkI,SAAT,CAAmBhD,CAAnB,EAAsB,QAAtB,EAAgC;AAC9BiD,kBAAQ,EAAE,oBAAW;AACnBF,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAApC;AACD,WAH6B;AAI9BqF,kBAAQ,EAAE,oBAAW;AACnBH,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAApC;AACD,WAN6B;AAO9BsF,sBAAY,EAAE,wBAAW;AACvBJ,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAAd,GAAqB,EAA3C;AACD,WAT6B;AAU9BuF,sBAAY,EAAE,wBAAW;AACvBL,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAAd,GAAqB,EAA3C;AACD,WAZ6B;AAa9BwF,aAAG,EAAE,eAAW;AACdN,oBAAQ,GAAGhF,KAAK,CAAC7D,OAAN,CAAc0C,KAAzB;AACD,WAf6B;AAgB9B0G,aAAG,EAAE,eAAW;AACdP,oBAAQ,GAAGhF,KAAK,CAAC7D,OAAN,CAAc2C,GAAzB;AACD,WAlB6B;AAmB9B0G,iBAAO,EAAE,mBAAW;AAAE;AACpBvD,aAAC,CAACC,cAAF;;AACAlC,iBAAK,CAACxB,aAAN,CAAoBsG,QAApB,EAA8BE,QAA9B;AACD;AAtB6B,SAAhC;AAwBA;AACN;AACA;AACA;AACK,OAnCD;AAoCD;AAED;AACF;AACA;;;;WACE,oBAAW;AACT,WAAK7H,OAAL,CAAa8G,GAAb,CAAiB,YAAjB;AACA,WAAKhH,MAAL,CAAYgH,GAAZ,CAAgB,YAAhB;AACA,WAAK7H,QAAL,CAAc6H,GAAd,CAAkB,YAAlB;AAEAzC,kBAAY,CAAC,KAAKC,OAAN,CAAZ;AACD;;;;EApiBkBgE,6D;;AAuiBrBxJ,MAAM,CAACM,QAAP,GAAkB;AAChB;AACF;AACA;AACA;AACA;AACA;AACEsC,OAAK,EAAE,CAPS;;AAQhB;AACF;AACA;AACA;AACA;AACA;AACEC,KAAG,EAAE,GAdW;;AAehB;AACF;AACA;AACA;AACA;AACA;AACEgB,MAAI,EAAE,CArBU;;AAsBhB;AACF;AACA;AACA;AACA;AACA;AACEqB,cAAY,EAAE,CA5BE;;AA6BhB;AACF;AACA;AACA;AACA;AACA;AACEW,YAAU,EAAE,GAnCI;;AAoChB;AACF;AACA;AACA;AACA;AACA;AACE7D,SAAO,EAAE,KA1CO;;AA2ChB;AACF;AACA;AACA;AACA;AACA;AACEoG,aAAW,EAAE,IAjDG;;AAkDhB;AACF;AACA;AACA;AACA;AACA;AACE1G,UAAQ,EAAE,KAxDM;;AAyDhB;AACF;AACA;AACA;AACA;AACA;AACE6G,WAAS,EAAE,IA/DK;;AAgEhB;AACF;AACA;AACA;AACA;AACA;AACE5G,UAAQ,EAAE,KAtEM;;AAuEhB;AACF;AACA;AACA;AACA;AACA;AACEO,aAAW,EAAE,KA7EG;;AA8EhB;AACF;AACA;AACE;;AACA;AACF;AACA;AACA;AACA;AACA;AACEuC,SAAO,EAAE,CAxFO;;AAyFhB;AACF;AACA;AACE;;AACA;AACF;AACA;AACA;AACA;AACA;AACEU,UAAQ,EAAE,GAnGM;AAmGF;;AACd;AACF;AACA;AACA;AACA;AACA;AACEtD,eAAa,EAAE,UA1GC;;AA2GhB;AACF;AACA;AACA;A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","file":"foundation.slider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.slider\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.slider\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Slider } from '../../foundation.slider';\nFoundation.plugin(Slider, 'Slider');\n\nexport { Foundation, Slider };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Slider","element","options","$element","$","extend","defaults","data","className","initialized","Touch","init","Triggers","_init","Keyboard","register","inputs","find","handles","$handle","eq","$input","length","attr","$fill","css","vertical","disabled","hasClass","disabledClass","addClass","add","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_events","_setHandlePos","val","value","pctOfBar","percent","start","end","positionValueFunction","_logTransform","_powTransform","toFixed","parseFloat","baseLog","nonLinearBase","Math","pow","$hndl","location","cb","isDbl","index","h2Val","step","h1Val","_this","vert","hOrW","lOrT","handleDim","getBoundingClientRect","elemDim","_pctOfBar","pxToMove","movement","decimal","_setValues","isLeftHndl","dim","handlePct","floor","style","handlePos","isNaN","initialStart","moveTime","Move","one","trigger","clearTimeout","timeout","setTimeout","changedDelay","idx","initVal","initialEnd","id","GetYoDigits","e","preventDefault","param","direction","eventOffset","pageY","pageX","barDim","windowScroll","window","scrollTop","scrollLeft","elemOffset","offset","clientY","eventFromBar","barXY","offsetPct","_value","Rtl","_adjustValue","firstHndlPos","absPosition","secndHndlPos","div","left","previousVal","nextVal","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","off","on","keyCode","call","clickSelect","target","is","draggable","addTouch","$body","currentTarget","ev","removeClass","_$handle","oldValue","newValue","handleKey","decrease","increase","decreaseFast","increaseFast","min","max","handled","Plugin","invertVertical","frac","num","dir","clickPos","abs","position","base","log","MutationObserver","prefixes","i","triggers","el","type","split","forEach","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","plugins","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","concat","console","error","listeners","map","name","join","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","slice","arguments","apply","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","__","onLoad","triggersInitialized","IHearYou"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,8D;;;;;;;;;;;ACAA,uE;;;;;;;;;;;ACAA,qE;;;;;;;;;;;ACAA,oE;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AACAA,2DAAU,CAACC,MAAX,CAAkBC,yDAAlB,EAA0B,QAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEMA,M;;;;;;;;;;;;;;AACJ;AACF;AACA;AACA;AACA;AACA;AACA;AACE,oBAAOC,OAAP,EAAgBC,OAAhB,EAAyB;AACvB,WAAKC,QAAL,GAAgBF,OAAhB;AACA,WAAKC,OAAL,GAAeE,6CAAC,CAACC,MAAF,CAAS,EAAT,EAAaL,MAAM,CAACM,QAApB,EAA8B,KAAKH,QAAL,CAAcI,IAAd,EAA9B,EAAoDL,OAApD,CAAf;AACA,WAAKM,SAAL,GAAiB,QAAjB,CAHuB,CAGI;;AAC3B,WAAKC,WAAL,GAAmB,KAAnB,CAJuB,CAMzB;;AACEC,kEAAK,CAACC,IAAN,CAAWP,6CAAX;AACAQ,wEAAQ,CAACD,IAAT,CAAcP,6CAAd;;AAEA,WAAKS,KAAL;;AAEAC,wEAAQ,CAACC,QAAT,CAAkB,QAAlB,EAA4B;AAC1B,eAAO;AACL,yBAAe,UADV;AAEL,sBAAY,UAFP;AAGL,wBAAc,UAHT;AAIL,wBAAc,UAJT;AAKL,+BAAqB,cALhB;AAML,4BAAkB,cANb;AAOL,8BAAoB,cAPf;AAQL,8BAAoB,cARf;AASL,kBAAQ,KATH;AAUL,iBAAO;AAVF,SADmB;AAa1B,eAAO;AACL,wBAAc,UADT;AAEL,yBAAe,UAFV;AAGL,8BAAoB,cAHf;AAIL,+BAAqB;AAJhB;AAbmB,OAA5B;AAoBD;AAED;AACF;AACA;AACA;AACA;;;;WACE,iBAAQ;AACN,WAAKC,MAAL,GAAc,KAAKb,QAAL,CAAcc,IAAd,CAAmB,OAAnB,CAAd;AACA,WAAKC,OAAL,GAAe,KAAKf,QAAL,CAAcc,IAAd,CAAmB,sBAAnB,CAAf;AAEA,WAAKE,OAAL,GAAe,KAAKD,OAAL,CAAaE,EAAb,CAAgB,CAAhB,CAAf;AACA,WAAKC,MAAL,GAAc,KAAKL,MAAL,CAAYM,MAAZ,GAAqB,KAAKN,MAAL,CAAYI,EAAZ,CAAe,CAAf,CAArB,GAAyChB,6CAAC,YAAK,KAAKe,OAAL,CAAaI,IAAb,CAAkB,eAAlB,CAAL,EAAxD;AACA,WAAKC,KAAL,GAAa,KAAKrB,QAAL,CAAcc,IAAd,CAAmB,oBAAnB,EAAyCQ,GAAzC,CAA6C,KAAKvB,OAAL,CAAawB,QAAb,GAAwB,QAAxB,GAAmC,OAAhF,EAAyF,CAAzF,CAAb;;AAEA,UAAI,KAAKxB,OAAL,CAAayB,QAAb,IAAyB,KAAKxB,QAAL,CAAcyB,QAAd,CAAuB,KAAK1B,OAAL,CAAa2B,aAApC,CAA7B,EAAiF;AAC/E,aAAK3B,OAAL,CAAayB,QAAb,GAAwB,IAAxB;AACA,aAAKxB,QAAL,CAAc2B,QAAd,CAAuB,KAAK5B,OAAL,CAAa2B,aAApC;AACD;;AACD,UAAI,CAAC,KAAKb,MAAL,CAAYM,MAAjB,EAAyB;AACvB,aAAKN,MAAL,GAAcZ,6CAAC,GAAG2B,GAAJ,CAAQ,KAAKV,MAAb,CAAd;AACA,aAAKnB,OAAL,CAAa8B,OAAb,GAAuB,IAAvB;AACD;;AAED,WAAKC,YAAL,CAAkB,CAAlB;;AAEA,UAAI,KAAKf,OAAL,CAAa,CAAb,CAAJ,EAAqB;AACnB,aAAKhB,OAAL,CAAagC,WAAb,GAA2B,IAA3B;AACA,aAAKC,QAAL,GAAgB,KAAKjB,OAAL,CAAaE,EAAb,CAAgB,CAAhB,CAAhB;AACA,aAAKgB,OAAL,GAAe,KAAKpB,MAAL,CAAYM,MAAZ,GAAqB,CAArB,GAAyB,KAAKN,MAAL,CAAYI,EAAZ,CAAe,CAAf,CAAzB,GAA6ChB,6CAAC,YAAK,KAAK+B,QAAL,CAAcZ,IAAd,CAAmB,eAAnB,CAAL,EAA7D;;AAEA,YAAI,CAAC,KAAKP,MAAL,CAAY,CAAZ,CAAL,EAAqB;AACnB,eAAKA,MAAL,GAAc,KAAKA,MAAL,CAAYe,GAAZ,CAAgB,KAAKK,OAArB,CAAd;AACD,SAPkB,CASnB;;;AACA,aAAKH,YAAL,CAAkB,CAAlB;AACD,OA9BK,CAgCN;;;AACA,WAAKI,UAAL;;AAEA,WAAKC,OAAL;;AACA,WAAK7B,WAAL,GAAmB,IAAnB;AACD;;;WAED,sBAAa;AAAA;;AACX,UAAG,KAAKS,OAAL,CAAa,CAAb,CAAH,EAAoB;AAClB,aAAKqB,aAAL,CAAmB,KAAKpB,OAAxB,EAAiC,KAAKH,MAAL,CAAYI,EAAZ,CAAe,CAAf,EAAkBoB,GAAlB,EAAjC,EAA0D,YAAM;AAC9D,gBAAI,CAACD,aAAL,CAAmB,MAAI,CAACJ,QAAxB,EAAkC,MAAI,CAACnB,MAAL,CAAYI,EAAZ,CAAe,CAAf,EAAkBoB,GAAlB,EAAlC;AACD,SAFD;AAGD,OAJD,MAIO;AACL,aAAKD,aAAL,CAAmB,KAAKpB,OAAxB,EAAiC,KAAKH,MAAL,CAAYI,EAAZ,CAAe,CAAf,EAAkBoB,GAAlB,EAAjC;AACD;AACF;;;WAED,mBAAU;AACR,WAAKH,UAAL;AACD;AACD;AACF;AACA;AACA;AACA;;;;WACE,mBAAUI,KAAV,EAAiB;AACf,UAAIC,QAAQ,GAAGC,OAAO,CAACF,KAAK,GAAG,KAAKvC,OAAL,CAAa0C,KAAtB,EAA6B,KAAK1C,OAAL,CAAa2C,GAAb,GAAmB,KAAK3C,OAAL,CAAa0C,KAA7D,CAAtB;;AAEA,cAAO,KAAK1C,OAAL,CAAa4C,qBAApB;AACA,aAAK,KAAL;AACEJ,kBAAQ,GAAG,KAAKK,aAAL,CAAmBL,QAAnB,CAAX;AACA;;AACF,aAAK,KAAL;AACEA,kBAAQ,GAAG,KAAKM,aAAL,CAAmBN,QAAnB,CAAX;AACA;AANF;;AASA,aAAOA,QAAQ,CAACO,OAAT,CAAiB,CAAjB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,gBAAOP,QAAP,EAAiB;AACf,cAAO,KAAKxC,OAAL,CAAa4C,qBAApB;AACA,aAAK,KAAL;AACEJ,kBAAQ,GAAG,KAAKM,aAAL,CAAmBN,QAAnB,CAAX;AACA;;AACF,aAAK,KAAL;AACEA,kBAAQ,GAAG,KAAKK,aAAL,CAAmBL,QAAnB,CAAX;AACA;AANF;;AASA,UAAID,KAAJ;;AACA,UAAI,KAAKvC,OAAL,CAAawB,QAAjB,EAA2B;AACzB;AACA;AACAe,aAAK,GAAGS,UAAU,CAAC,KAAKhD,OAAL,CAAa2C,GAAd,CAAV,GAA+BH,QAAQ,IAAI,KAAKxC,OAAL,CAAa0C,KAAb,GAAqB,KAAK1C,OAAL,CAAa2C,GAAtC,CAA/C;AACD,OAJD,MAIO;AACLJ,aAAK,GAAG,CAAC,KAAKvC,OAAL,CAAa2C,GAAb,GAAmB,KAAK3C,OAAL,CAAa0C,KAAjC,IAA0CF,QAA1C,GAAqDQ,UAAU,CAAC,KAAKhD,OAAL,CAAa0C,KAAd,CAAvE;AACD;;AAED,aAAOH,KAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,uBAAcA,KAAd,EAAqB;AACnB,aAAOU,OAAO,CAAC,KAAKjD,OAAL,CAAakD,aAAd,EAA+BX,KAAK,IAAE,KAAKvC,OAAL,CAAakD,aAAb,GAA2B,CAA7B,CAAN,GAAuC,CAArE,CAAd;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,uBAAcX,KAAd,EAAqB;AACnB,aAAO,CAACY,IAAI,CAACC,GAAL,CAAS,KAAKpD,OAAL,CAAakD,aAAtB,EAAqCX,KAArC,IAA8C,CAA/C,KAAqD,KAAKvC,OAAL,CAAakD,aAAb,GAA6B,CAAlF,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,uBAAcG,KAAd,EAAqBC,QAArB,EAA+BC,EAA/B,EAAmC;AACjC;AACA,UAAI,KAAKtD,QAAL,CAAcyB,QAAd,CAAuB,KAAK1B,OAAL,CAAa2B,aAApC,CAAJ,EAAwD;AACtD;AACD,OAJgC,CAKjC;;;AACA2B,cAAQ,GAAGN,UAAU,CAACM,QAAD,CAArB,CANiC,CAMD;AAEhC;;AACA,UAAIA,QAAQ,GAAG,KAAKtD,OAAL,CAAa0C,KAA5B,EAAmC;AAAEY,gBAAQ,GAAG,KAAKtD,OAAL,CAAa0C,KAAxB;AAAgC,OAArE,MACK,IAAIY,QAAQ,GAAG,KAAKtD,OAAL,CAAa2C,GAA5B,EAAiC;AAAEW,gBAAQ,GAAG,KAAKtD,OAAL,CAAa2C,GAAxB;AAA8B;;AAEtE,UAAIa,KAAK,GAAG,KAAKxD,OAAL,CAAagC,WAAzB;;AAEA,UAAIwB,KAAJ,EAAW;AAAE;AACX,YAAI,KAAKxC,OAAL,CAAayC,KAAb,CAAmBJ,KAAnB,MAA8B,CAAlC,EAAqC;AACnC,cAAIK,KAAK,GAAGV,UAAU,CAAC,KAAKf,QAAL,CAAcZ,IAAd,CAAmB,eAAnB,CAAD,CAAtB;AACAiC,kBAAQ,GAAGA,QAAQ,IAAII,KAAZ,GAAoBA,KAAK,GAAG,KAAK1D,OAAL,CAAa2D,IAAzC,GAAgDL,QAA3D;AACD,SAHD,MAGO;AACL,cAAIM,KAAK,GAAGZ,UAAU,CAAC,KAAK/B,OAAL,CAAaI,IAAb,CAAkB,eAAlB,CAAD,CAAtB;AACAiC,kBAAQ,GAAGA,QAAQ,IAAIM,KAAZ,GAAoBA,KAAK,GAAG,KAAK5D,OAAL,CAAa2D,IAAzC,GAAgDL,QAA3D;AACD;AACF;;AAED,UAAIO,KAAK,GAAG,IAAZ;AAAA,UACIC,IAAI,GAAG,KAAK9D,OAAL,CAAawB,QADxB;AAAA,UAEIuC,IAAI,GAAGD,IAAI,GAAG,QAAH,GAAc,OAF7B;AAAA,UAGIE,IAAI,GAAGF,IAAI,GAAG,KAAH,GAAW,MAH1B;AAAA,UAIIG,SAAS,GAAGZ,KAAK,CAAC,CAAD,CAAL,CAASa,qBAAT,GAAiCH,IAAjC,CAJhB;AAAA,UAKII,OAAO,GAAG,KAAKlE,QAAL,CAAc,CAAd,EAAiBiE,qBAAjB,GAAyCH,IAAzC,CALd;AAAA,UAMI;AACAvB,cAAQ,GAAG,KAAK4B,SAAL,CAAed,QAAf,CAPf;AAAA,UAQI;AACAe,cAAQ,GAAG,CAACF,OAAO,GAAGF,SAAX,IAAwBzB,QATvC;AAAA,UAUI;AACA8B,cAAQ,GAAG,CAAC7B,OAAO,CAAC4B,QAAD,EAAWF,OAAX,CAAP,GAA6B,GAA9B,EAAmCpB,OAAnC,CAA2C,KAAK/C,OAAL,CAAauE,OAAxD,CAXf,CAxBiC,CAoC7B;;;AACAjB,cAAQ,GAAGN,UAAU,CAACM,QAAQ,CAACP,OAAT,CAAiB,KAAK/C,OAAL,CAAauE,OAA9B,CAAD,CAArB,CArC6B,CAsC7B;;AACJ,UAAIhD,GAAG,GAAG,EAAV;;AAEA,WAAKiD,UAAL,CAAgBnB,KAAhB,EAAuBC,QAAvB,EAzCiC,CA2CjC;;;AACA,UAAIE,KAAJ,EAAW;AACT,YAAIiB,UAAU,GAAG,KAAKzD,OAAL,CAAayC,KAAb,CAAmBJ,KAAnB,MAA8B,CAA/C;AAAA,YACI;AACAqB,WAFJ;AAAA,YAGI;AACAC,iBAAS,GAAIxB,IAAI,CAACyB,KAAL,CAAWnC,OAAO,CAACwB,SAAD,EAAYE,OAAZ,CAAP,GAA8B,GAAzC,CAJjB,CADS,CAMT;;AACA,YAAIM,UAAJ,EAAgB;AACd;AACAlD,aAAG,CAACyC,IAAD,CAAH,aAAeM,QAAf,OAFc,CAGd;;AACAI,aAAG,GAAG1B,UAAU,CAAC,KAAKf,QAAL,CAAc,CAAd,EAAiB4C,KAAjB,CAAuBb,IAAvB,CAAD,CAAV,GAA2CM,QAA3C,GAAsDK,SAA5D,CAJc,CAKd;AACA;;AACA,cAAIpB,EAAE,IAAI,OAAOA,EAAP,KAAc,UAAxB,EAAoC;AAAEA,cAAE;AAAK,WAP/B,CAO+B;;AAC9C,SARD,MAQO;AACL;AACA,cAAIuB,SAAS,GAAG9B,UAAU,CAAC,KAAK/B,OAAL,CAAa,CAAb,EAAgB4D,KAAhB,CAAsBb,IAAtB,CAAD,CAA1B,CAFK,CAGL;AACA;;AACAU,aAAG,GAAGJ,QAAQ,IAAIS,KAAK,CAACD,SAAD,CAAL,GAAmB,CAAC,KAAK9E,OAAL,CAAagF,YAAb,GAA4B,KAAKhF,OAAL,CAAa0C,KAA1C,KAAkD,CAAC,KAAK1C,OAAL,CAAa2C,GAAb,GAAiB,KAAK3C,OAAL,CAAa0C,KAA/B,IAAsC,GAAxF,CAAnB,GAAkHoC,SAAtH,CAAR,GAA2IH,SAAjJ;AACD,SArBQ,CAsBT;;;AACApD,WAAG,eAAQwC,IAAR,EAAH,aAAwBW,GAAxB;AACD,OApEgC,CAsEjC;;;AACA,UAAIO,QAAQ,GAAG,KAAKhF,QAAL,CAAcI,IAAd,CAAmB,UAAnB,IAAiC,OAAK,EAAtC,GAA2C,KAAKL,OAAL,CAAaiF,QAAvE;AAEAC,0EAAI,CAACD,QAAD,EAAW5B,KAAX,EAAkB,YAAW;AAC/B;AACA;AACA;AACA,YAAI0B,KAAK,CAACT,QAAD,CAAT,EAAqB;AACnBjB,eAAK,CAAC9B,GAAN,CAAUyC,IAAV,YAAmBxB,QAAQ,GAAG,GAA9B;AACD,SAFD,MAGK;AACHa,eAAK,CAAC9B,GAAN,CAAUyC,IAAV,YAAmBM,QAAnB;AACD;;AAED,YAAI,CAACT,KAAK,CAAC7D,OAAN,CAAcgC,WAAnB,EAAgC;AAC9B;AACA6B,eAAK,CAACvC,KAAN,CAAYC,GAAZ,CAAgBwC,IAAhB,YAAyBvB,QAAQ,GAAG,GAApC;AACD,SAHD,MAGO;AACL;AACAqB,eAAK,CAACvC,KAAN,CAAYC,GAAZ,CAAgBA,GAAhB;AACD;AACF,OAlBG,CAAJ;;AAoBA,UAAI,KAAKhB,WAAT,EAAsB;AACpB,aAAKN,QAAL,CAAckF,GAAd,CAAkB,qBAAlB,EAAyC,YAAW;AAClD;AACR;AACA;AACA;AACQtB,eAAK,CAAC5D,QAAN,CAAemF,OAAf,CAAuB,iBAAvB,EAA0C,CAAC/B,KAAD,CAA1C;AACD,SAND;AAOA;AACN;AACA;AACA;;AACMgC,oBAAY,CAACxB,KAAK,CAACyB,OAAP,CAAZ;AACAzB,aAAK,CAACyB,OAAN,GAAgBC,UAAU,CAAC,YAAU;AACnC1B,eAAK,CAAC5D,QAAN,CAAemF,OAAf,CAAuB,mBAAvB,EAA4C,CAAC/B,KAAD,CAA5C;AACD,SAFyB,EAEvBQ,KAAK,CAAC7D,OAAN,CAAcwF,YAFS,CAA1B;AAGD;AACF;AAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,sBAAaC,GAAb,EAAkB;AAChB,UAAIC,OAAO,GAAID,GAAG,KAAK,CAAR,GAAY,KAAKzF,OAAL,CAAagF,YAAzB,GAAwC,KAAKhF,OAAL,CAAa2F,UAApE;AACA,UAAIC,EAAE,GAAG,KAAK9E,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBpE,IAApB,CAAyB,IAAzB,KAAkCwE,0EAAW,CAAC,CAAD,EAAI,QAAJ,CAAtD;AACA,WAAK/E,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBpE,IAApB,CAAyB;AACvB,cAAMuE,EADiB;AAEvB,eAAO,KAAK5F,OAAL,CAAa2C,GAFG;AAGvB,eAAO,KAAK3C,OAAL,CAAa0C,KAHG;AAIvB,gBAAQ,KAAK1C,OAAL,CAAa2D;AAJE,OAAzB;AAMA,WAAK7C,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBnD,GAApB,CAAwBoD,OAAxB;AACA,WAAK1E,OAAL,CAAaE,EAAb,CAAgBuE,GAAhB,EAAqBpE,IAArB,CAA0B;AACxB,gBAAQ,QADgB;AAExB,yBAAiBuE,EAFO;AAGxB,yBAAiB,KAAK5F,OAAL,CAAa2C,GAHN;AAIxB,yBAAiB,KAAK3C,OAAL,CAAa0C,KAJN;AAKxB,yBAAiBgD,OALO;AAMxB,4BAAoB,KAAK1F,OAAL,CAAawB,QAAb,GAAwB,UAAxB,GAAqC,YANjC;AAOxB,oBAAY;AAPY,OAA1B;AASD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBAAWP,OAAX,EAAoBqB,GAApB,EAAyB;AACvB,UAAImD,GAAG,GAAG,KAAKzF,OAAL,CAAagC,WAAb,GAA2B,KAAKhB,OAAL,CAAayC,KAAb,CAAmBxC,OAAnB,CAA3B,GAAyD,CAAnE;AACA,WAAKH,MAAL,CAAYI,EAAZ,CAAeuE,GAAf,EAAoBnD,GAApB,CAAwBA,GAAxB;AACArB,aAAO,CAACI,IAAR,CAAa,eAAb,EAA8BiB,GAA9B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAawD,CAAb,EAAgB7E,OAAhB,EAAyBqB,GAAzB,EAA8B;AAC5B,UAAIC,KAAJ;;AACA,UAAI,CAACD,GAAL,EAAU;AAAC;AACTwD,SAAC,CAACC,cAAF;;AACA,YAAIlC,KAAK,GAAG,IAAZ;AAAA,YACIrC,QAAQ,GAAG,KAAKxB,OAAL,CAAawB,QAD5B;AAAA,YAEIwE,KAAK,GAAGxE,QAAQ,GAAG,QAAH,GAAc,OAFlC;AAAA,YAGIyE,SAAS,GAAGzE,QAAQ,GAAG,KAAH,GAAW,MAHnC;AAAA,YAII0E,WAAW,GAAG1E,QAAQ,GAAGsE,CAAC,CAACK,KAAL,GAAaL,CAAC,CAACM,KAJzC;AAAA,YAKIC,MAAM,GAAG,KAAKpG,QAAL,CAAc,CAAd,EAAiBiE,qBAAjB,GAAyC8B,KAAzC,CALb;AAAA,YAMIM,YAAY,GAAG9E,QAAQ,GAAGtB,6CAAC,CAACqG,MAAD,CAAD,CAAUC,SAAV,EAAH,GAA2BtG,6CAAC,CAACqG,MAAD,CAAD,CAAUE,UAAV,EANtD;;AAQA,YAAIC,UAAU,GAAG,KAAKzG,QAAL,CAAc0G,MAAd,GAAuBV,SAAvB,CAAjB,CAVQ,CAYR;AACA;;AACA,YAAIH,CAAC,CAACc,OAAF,KAAcd,CAAC,CAACK,KAApB,EAA2B;AAAED,qBAAW,GAAGA,WAAW,GAAGI,YAA5B;AAA2C;;AACxE,YAAIO,YAAY,GAAGX,WAAW,GAAGQ,UAAjC;AACA,YAAII,KAAJ;;AACA,YAAID,YAAY,GAAG,CAAnB,EAAsB;AACpBC,eAAK,GAAG,CAAR;AACD,SAFD,MAEO,IAAID,YAAY,GAAGR,MAAnB,EAA2B;AAChCS,eAAK,GAAGT,MAAR;AACD,SAFM,MAEA;AACLS,eAAK,GAAGD,YAAR;AACD;;AACD,YAAIE,SAAS,GAAGtE,OAAO,CAACqE,KAAD,EAAQT,MAAR,CAAvB;AAEA9D,aAAK,GAAG,KAAKyE,MAAL,CAAYD,SAAZ,CAAR,CA1BQ,CA4BR;;AACA,YAAIE,kEAAG,MAAM,CAAC,KAAKjH,OAAL,CAAawB,QAA3B,EAAqC;AAACe,eAAK,GAAG,KAAKvC,OAAL,CAAa2C,GAAb,GAAmBJ,KAA3B;AAAkC;;AAExEA,aAAK,GAAGsB,KAAK,CAACqD,YAAN,CAAmB,IAAnB,EAAyB3E,KAAzB,CAAR;;AAEA,YAAI,CAACtB,OAAL,EAAc;AAAC;AACb,cAAIkG,YAAY,GAAGC,WAAW,CAAC,KAAKnG,OAAN,EAAegF,SAAf,EAA0Ba,KAA1B,EAAiCd,KAAjC,CAA9B;AAAA,cACIqB,YAAY,GAAGD,WAAW,CAAC,KAAKnF,QAAN,EAAgBgE,SAAhB,EAA2Ba,KAA3B,EAAkCd,KAAlC,CAD9B;AAEI/E,iBAAO,GAAGkG,YAAY,IAAIE,YAAhB,GAA+B,KAAKpG,OAApC,GAA8C,KAAKgB,QAA7D;AACL;AAEF,OAvCD,MAuCO;AAAC;AACNM,aAAK,GAAG,KAAK2E,YAAL,CAAkB,IAAlB,EAAwB5E,GAAxB,CAAR;AACD;;AAED,WAAKD,aAAL,CAAmBpB,OAAnB,EAA4BsB,KAA5B;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,sBAAatB,OAAb,EAAsBsB,KAAtB,EAA6B;AAC3B,UAAID,GAAJ;AAAA,UACEqB,IAAI,GAAG,KAAK3D,OAAL,CAAa2D,IADtB;AAAA,UAEE2D,GAAG,GAAGtE,UAAU,CAACW,IAAI,GAAC,CAAN,CAFlB;AAAA,UAGE4D,IAHF;AAAA,UAGQC,WAHR;AAAA,UAGqBC,OAHrB;;AAIA,UAAI,CAAC,CAACxG,OAAN,EAAe;AACbqB,WAAG,GAAGU,UAAU,CAAC/B,OAAO,CAACI,IAAR,CAAa,eAAb,CAAD,CAAhB;AACD,OAFD,MAGK;AACHiB,WAAG,GAAGC,KAAN;AACD;;AACD,UAAID,GAAG,IAAI,CAAX,EAAc;AACZiF,YAAI,GAAGjF,GAAG,GAAGqB,IAAb;AACD,OAFD,MAEO;AACL4D,YAAI,GAAG5D,IAAI,GAAIrB,GAAG,GAAGqB,IAArB;AACD;;AACD6D,iBAAW,GAAGlF,GAAG,GAAGiF,IAApB;AACAE,aAAO,GAAGD,WAAW,GAAG7D,IAAxB;;AACA,UAAI4D,IAAI,KAAK,CAAb,EAAgB;AACd,eAAOjF,GAAP;AACD;;AACDA,SAAG,GAAGA,GAAG,IAAIkF,WAAW,GAAGF,GAArB,GAA2BG,OAA3B,GAAqCD,WAA3C;AACA,aAAOlF,GAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,mBAAU;AACR,WAAKoF,gBAAL,CAAsB,KAAKzG,OAA3B;;AACA,UAAG,KAAKD,OAAL,CAAa,CAAb,CAAH,EAAoB;AAClB,aAAK0G,gBAAL,CAAsB,KAAKzF,QAA3B;AACD;AACF;AAGD;AACF;AACA;AACA;AACA;AACA;;;;WACE,0BAAiBhB,OAAjB,EAA0B;AACxB,UAAI4C,KAAK,GAAG,IAAZ;AAAA,UACI8D,SADJ;;AAGE,UAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAS9B,CAAT,EAAY;AACpC,YAAML,GAAG,GAAG5B,KAAK,CAAC/C,MAAN,CAAa2C,KAAb,CAAmBvD,6CAAC,CAAC,IAAD,CAApB,CAAZ;;AACA2D,aAAK,CAACgE,YAAN,CAAmB/B,CAAnB,EAAsBjC,KAAK,CAAC7C,OAAN,CAAcE,EAAd,CAAiBuE,GAAjB,CAAtB,EAA6CvF,6CAAC,CAAC,IAAD,CAAD,CAAQoC,GAAR,EAA7C;AACD,OAHD,CAJsB,CAStB;AACA;AACA;;;AACA,WAAKxB,MAAL,CAAYgH,GAAZ,CAAgB,iBAAhB,EAAmCC,EAAnC,CAAsC,iBAAtC,EAAyD,UAAUjC,CAAV,EAAa;AACpE,YAAGA,CAAC,CAACkC,OAAF,KAAc,EAAjB,EAAqBJ,iBAAiB,CAACK,IAAlB,CAAuB,IAAvB,EAA6BnC,CAA7B;AACtB,OAFD;AAIA,WAAKhF,MAAL,CAAYgH,GAAZ,CAAgB,kBAAhB,EAAoCC,EAApC,CAAuC,kBAAvC,EAA2DH,iBAA3D;;AAEA,UAAI,KAAK5H,OAAL,CAAakI,WAAjB,EAA8B;AAC5B,aAAKjI,QAAL,CAAc6H,GAAd,CAAkB,iBAAlB,EAAqCC,EAArC,CAAwC,iBAAxC,EAA2D,UAASjC,CAAT,EAAY;AACrE,cAAIjC,KAAK,CAAC5D,QAAN,CAAeI,IAAf,CAAoB,UAApB,CAAJ,EAAqC;AAAE,mBAAO,KAAP;AAAe;;AAEtD,cAAI,CAACH,6CAAC,CAAC4F,CAAC,CAACqC,MAAH,CAAD,CAAYC,EAAZ,CAAe,sBAAf,CAAL,EAA6C;AAC3C,gBAAIvE,KAAK,CAAC7D,OAAN,CAAcgC,WAAlB,EAA+B;AAC7B6B,mBAAK,CAACgE,YAAN,CAAmB/B,CAAnB;AACD,aAFD,MAEO;AACLjC,mBAAK,CAACgE,YAAN,CAAmB/B,CAAnB,EAAsBjC,KAAK,CAAC5C,OAA5B;AACD;AACF;AACF,SAVD;AAWD;;AAEH,UAAI,KAAKjB,OAAL,CAAaqI,SAAjB,EAA4B;AAC1B,aAAKrH,OAAL,CAAasH,QAAb;AAEA,YAAIC,KAAK,GAAGrI,6CAAC,CAAC,MAAD,CAAb;AACAe,eAAO,CACJ6G,GADH,CACO,qBADP,EAEGC,EAFH,CAEM,qBAFN,EAE6B,UAASjC,CAAT,EAAY;AACrC7E,iBAAO,CAACW,QAAR,CAAiB,aAAjB;;AACAiC,eAAK,CAACvC,KAAN,CAAYM,QAAZ,CAAqB,aAArB,EAFqC,CAED;;;AACpCiC,eAAK,CAAC5D,QAAN,CAAeI,IAAf,CAAoB,UAApB,EAAgC,IAAhC;;AAEAsH,mBAAS,GAAGzH,6CAAC,CAAC4F,CAAC,CAAC0C,aAAH,CAAb;AAEAD,eAAK,CAACR,EAAN,CAAS,qBAAT,EAAgC,UAASU,EAAT,EAAa;AAC3CA,cAAE,CAAC1C,cAAH;;AACAlC,iBAAK,CAACgE,YAAN,CAAmBY,EAAnB,EAAuBd,SAAvB;AAED,WAJD,EAIGI,EAJH,CAIM,mBAJN,EAI2B,UAASU,EAAT,EAAa;AACtC5E,iBAAK,CAACgE,YAAN,CAAmBY,EAAnB,EAAuBd,SAAvB;;AAEA1G,mBAAO,CAACyH,WAAR,CAAoB,aAApB;;AACA7E,iBAAK,CAACvC,KAAN,CAAYoH,WAAZ,CAAwB,aAAxB;;AACA7E,iBAAK,CAAC5D,QAAN,CAAeI,IAAf,CAAoB,UAApB,EAAgC,KAAhC;;AAEAkI,iBAAK,CAACT,GAAN,CAAU,uCAAV;AACD,WAZD;AAaH,SAtBD,EAuBA;AAvBA,SAwBCC,EAxBD,CAwBI,2CAxBJ,EAwBiD,UAASjC,CAAT,EAAY;AAC3DA,WAAC,CAACC,cAAF;AACD,SA1BD;AA2BD;;AAED9E,aAAO,CAAC6G,GAAR,CAAY,mBAAZ,EAAiCC,EAAjC,CAAoC,mBAApC,EAAyD,UAASjC,CAAT,EAAY;AACnE,YAAI6C,QAAQ,GAAGzI,6CAAC,CAAC,IAAD,CAAhB;AAAA,YACIuF,GAAG,GAAG5B,KAAK,CAAC7D,OAAN,CAAcgC,WAAd,GAA4B6B,KAAK,CAAC7C,OAAN,CAAcyC,KAAd,CAAoBkF,QAApB,CAA5B,GAA4D,CADtE;AAAA,YAEIC,QAAQ,GAAG5F,UAAU,CAAC/B,OAAO,CAACI,IAAR,CAAa,eAAb,CAAD,CAFzB;AAAA,YAGIwH,QAHJ,CADmE,CAMnE;;;AACAjI,0EAAQ,CAACkI,SAAT,CAAmBhD,CAAnB,EAAsB,QAAtB,EAAgC;AAC9BiD,kBAAQ,EAAE,oBAAW;AACnBF,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAApC;AACD,WAH6B;AAI9BqF,kBAAQ,EAAE,oBAAW;AACnBH,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAApC;AACD,WAN6B;AAO9BsF,sBAAY,EAAE,wBAAW;AACvBJ,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAAd,GAAqB,EAA3C;AACD,WAT6B;AAU9BuF,sBAAY,EAAE,wBAAW;AACvBL,oBAAQ,GAAGD,QAAQ,GAAG/E,KAAK,CAAC7D,OAAN,CAAc2D,IAAd,GAAqB,EAA3C;AACD,WAZ6B;AAa9BwF,aAAG,EAAE,eAAW;AACdN,oBAAQ,GAAGhF,KAAK,CAAC7D,OAAN,CAAc0C,KAAzB;AACD,WAf6B;AAgB9B0G,aAAG,EAAE,eAAW;AACdP,oBAAQ,GAAGhF,KAAK,CAAC7D,OAAN,CAAc2C,GAAzB;AACD,WAlB6B;AAmB9B0G,iBAAO,EAAE,mBAAW;AAAE;AACpBvD,aAAC,CAACC,cAAF;;AACAlC,iBAAK,CAACxB,aAAN,CAAoBsG,QAApB,EAA8BE,QAA9B;AACD;AAtB6B,SAAhC;AAwBA;AACN;AACA;AACA;AACK,OAnCD;AAoCD;AAED;AACF;AACA;;;;WACE,oBAAW;AACT,WAAK7H,OAAL,CAAa8G,GAAb,CAAiB,YAAjB;AACA,WAAKhH,MAAL,CAAYgH,GAAZ,CAAgB,YAAhB;AACA,WAAK7H,QAAL,CAAc6H,GAAd,CAAkB,YAAlB;AAEAzC,kBAAY,CAAC,KAAKC,OAAN,CAAZ;AACD;;;;EApiBkBgE,6D;;AAuiBrBxJ,MAAM,CAACM,QAAP,GAAkB;AAChB;AACF;AACA;AACA;AACA;AACA;AACEsC,OAAK,EAAE,CAPS;;AAQhB;AACF;AACA;AACA;AACA;AACA;AACEC,KAAG,EAAE,GAdW;;AAehB;AACF;AACA;AACA;AACA;AACA;AACEgB,MAAI,EAAE,CArBU;;AAsBhB;AACF;AACA;AACA;AACA;AACA;AACEqB,cAAY,EAAE,CA5BE;;AA6BhB;AACF;AACA;AACA;AACA;AACA;AACEW,YAAU,EAAE,GAnCI;;AAoChB;AACF;AACA;AACA;AACA;AACA;AACE7D,SAAO,EAAE,KA1CO;;AA2ChB;AACF;AACA;AACA;AACA;AACA;AACEoG,aAAW,EAAE,IAjDG;;AAkDhB;AACF;AACA;AACA;AACA;AACA;AACE1G,UAAQ,EAAE,KAxDM;;AAyDhB;AACF;AACA;AACA;AACA;AACA;AACE6G,WAAS,EAAE,IA/DK;;AAgEhB;AACF;AACA;AACA;AACA;AACA;AACE5G,UAAQ,EAAE,KAtEM;;AAuEhB;AACF;AACA;AACA;AACA;AACA;AACEO,aAAW,EAAE,KA7EG;;AA8EhB;AACF;AACA;AACE;;AACA;AACF;AACA;AACA;AACA;AACA;AACEuC,SAAO,EAAE,CAxFO;;AAyFhB;AACF;AACA;AACE;;AACA;AACF;AACA;AACA;AACA;AACA;AACEU,UAAQ,EAAE,GAnGM;AAmGF;;AACd;AACF;AACA;AACA;AACA;AACA;AACEtD,eAAa,EAAE,UA1GC;;AA2GhB;AACF;AACA;AACA;AACA;AACA;AACE4H,gBAAc,EAAE,KAjHA;;AAkHhB;AACF;AACA;AACA;AACA;AACA;AACE/D,cAAY,EAAE,GAxHE;;AAyHhB;AACF;AACA;AACA;AACA;AACA;AACEtC,eAAa,EAAE,CA/HC;;AAgIhB;AACF;AACA;AACA;AACA;AACA;AACEN,uBAAqB,EAAE;AAtIP,CAAlB;;AAyIA,SAASH,OAAT,CAAiB+G,IAAjB,EAAuBC,GAAvB,EAA4B;AAC1B,SAAQD,IAAI,GAAGC,GAAf;AACD;;AACD,SAASrC,WAAT,CAAqBnG,OAArB,EAA8ByI,GAA9B,EAAmCC,QAAnC,EAA6C3D,KAA7C,EAAoD;AAClD,SAAO7C,IAAI,CAACyG,GAAL,CAAU3I,OAAO,CAAC4I,QAAR,GAAmBH,GAAnB,IAA2BzI,OAAO,CAAC+E,KAAD,CAAP,KAAmB,CAA/C,GAAqD2D,QAA9D,CAAP;AACD;;AACD,SAAS1G,OAAT,CAAiB6G,IAAjB,EAAuBvH,KAAvB,EAA8B;AAC5B,SAAOY,IAAI,CAAC4G,GAAL,CAASxH,KAAT,IAAgBY,IAAI,CAAC4G,GAAL,CAASD,IAAT,CAAvB;AACD;;;;;;;;;;;;;;;;;;;;;;;;AC3sBD;AACA;AACA;;AAEA,IAAME,gBAAgB,GAAI,YAAY;AACpC,MAAIC,QAAQ,GAAG,CAAC,QAAD,EAAW,KAAX,EAAkB,GAAlB,EAAuB,IAAvB,EAA6B,EAA7B,CAAf;;AACA,OAAK,IAAIC,CAAC,GAAC,CAAX,EAAcA,CAAC,GAAGD,QAAQ,CAAC7I,MAA3B,EAAmC8I,CAAC,EAApC,EAAwC;AACtC,QAAI,UAAGD,QAAQ,CAACC,CAAD,CAAX,yBAAoC3D,MAAxC,EAAgD;AAC9C,aAAOA,MAAM,WAAI0D,QAAQ,CAACC,CAAD,CAAZ,sBAAb;AACD;AACF;;AACD,SAAO,KAAP;AACD,CARwB,EAAzB;;AAUA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,EAAD,EAAKC,IAAL,EAAc;AAC7BD,IAAE,CAAC/J,IAAH,CAAQgK,IAAR,EAAcC,KAAd,CAAoB,GAApB,EAAyBC,OAAzB,CAAiC,UAAA3E,EAAE,EAAI;AACrC1F,iDAAC,YAAK0F,EAAL,EAAD,CAAayE,IAAI,KAAK,OAAT,GAAmB,SAAnB,GAA+B,gBAA5C,YAAiEA,IAAjE,kBAAoF,CAACD,EAAD,CAApF;AACD,GAFD;AAGD,CAJD;;AAMA,IAAI1J,QAAQ,GAAG;AACb8J,WAAS,EAAE;AACTC,SAAK,EAAE,EADE;AAETC,UAAM,EAAE;AAFC,GADE;AAKbC,cAAY,EAAE;AALD,CAAf;AAQAjK,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,GAA4B;AAC1BG,cAAY,EAAE,wBAAW;AACvBT,YAAQ,CAACjK,6CAAC,CAAC,IAAD,CAAF,EAAU,MAAV,CAAR;AACD,GAHyB;AAI1B2K,eAAa,EAAE,yBAAW;AACxB,QAAIjF,EAAE,GAAG1F,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,OAAb,CAAT;;AACA,QAAIuF,EAAJ,EAAQ;AACNuE,cAAQ,CAACjK,6CAAC,CAAC,IAAD,CAAF,EAAU,OAAV,CAAR;AACD,KAFD,MAGK;AACHA,mDAAC,CAAC,IAAD,CAAD,CAAQkF,OAAR,CAAgB,kBAAhB;AACD;AACF,GAZyB;AAa1B0F,gBAAc,EAAE,0BAAW;AACzB,QAAIlF,EAAE,GAAG1F,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,QAAb,CAAT;;AACA,QAAIuF,EAAJ,EAAQ;AACNuE,cAAQ,CAACjK,6CAAC,CAAC,IAAD,CAAF,EAAU,QAAV,CAAR;AACD,KAFD,MAEO;AACLA,mDAAC,CAAC,IAAD,CAAD,CAAQkF,OAAR,CAAgB,mBAAhB;AACD;AACF,GApByB;AAqB1B2F,mBAAiB,EAAE,2BAASjF,CAAT,EAAY;AAC7B,QAAIkF,SAAS,GAAG9K,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,UAAb,CAAhB,CAD6B,CAG7B;;AACAyF,KAAC,CAACmF,eAAF;;AAEA,QAAGD,SAAS,KAAK,EAAjB,EAAoB;AAClBE,oEAAM,CAACC,UAAP,CAAkBjL,6CAAC,CAAC,IAAD,CAAnB,EAA2B8K,SAA3B,EAAsC,YAAW;AAC/C9K,qDAAC,CAAC,IAAD,CAAD,CAAQkF,OAAR,CAAgB,WAAhB;AACD,OAFD;AAGD,KAJD,MAIK;AACHlF,mDAAC,CAAC,IAAD,CAAD,CAAQkL,OAAR,GAAkBhG,OAAlB,CAA0B,WAA1B;AACD;AACF,GAlCyB;AAmC1BiG,qBAAmB,EAAE,+BAAW;AAC9B,QAAIzF,EAAE,GAAG1F,6CAAC,CAAC,IAAD,CAAD,CAAQG,IAAR,CAAa,cAAb,CAAT;AACAH,iDAAC,YAAK0F,EAAL,EAAD,CAAY0F,cAAZ,CAA2B,mBAA3B,EAAgD,CAACpL,6CAAC,CAAC,IAAD,CAAF,CAAhD;AACD;AAtCyB,CAA5B,C,CAyCA;;AACAQ,QAAQ,CAACiK,YAAT,CAAsBY,eAAtB,GAAwC,UAACC,KAAD,EAAW;AACjDA,OAAK,CAAC1D,GAAN,CAAU,kBAAV,EAA8BpH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBG,YAAvD;AACAY,OAAK,CAACzD,EAAN,CAAS,kBAAT,EAA6B,aAA7B,EAA4CrH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBG,YAArE;AACD,CAHD,C,CAKA;AACA;;;AACAlK,QAAQ,CAACiK,YAAT,CAAsBc,gBAAtB,GAAyC,UAACD,KAAD,EAAW;AAClDA,OAAK,CAAC1D,GAAN,CAAU,kBAAV,EAA8BpH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBI,aAAvD;AACAW,OAAK,CAACzD,EAAN,CAAS,kBAAT,EAA6B,cAA7B,EAA6CrH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBI,aAAtE;AACD,CAHD,C,CAKA;;;AACAnK,QAAQ,CAACiK,YAAT,CAAsBe,iBAAtB,GAA0C,UAACF,KAAD,EAAW;AACnDA,OAAK,CAAC1D,GAAN,CAAU,kBAAV,EAA8BpH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBK,cAAvD;AACAU,OAAK,CAACzD,EAAN,CAAS,kBAAT,EAA6B,eAA7B,EAA8CrH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBK,cAAvE;AACD,CAHD,C,CAKA;;;AACApK,QAAQ,CAACiK,YAAT,CAAsBgB,oBAAtB,GAA6C,UAACH,KAAD,EAAW;AACtDA,OAAK,CAAC1D,GAAN,CAAU,kBAAV,EAA8BpH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBM,iBAAvD;AACAS,OAAK,CAACzD,EAAN,CAAS,kBAAT,EAA6B,mCAA7B,EAAkErH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBM,iBAA3F;AACD,CAHD,C,CAKA;;;AACArK,QAAQ,CAACiK,YAAT,CAAsBiB,sBAAtB,GAA+C,UAACJ,KAAD,EAAW;AACxDA,OAAK,CAAC1D,GAAN,CAAU,kCAAV,EAA8CpH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBY,mBAAvE;AACAG,OAAK,CAACzD,EAAN,CAAS,kCAAT,EAA6C,qBAA7C,EAAoErH,QAAQ,CAAC8J,SAAT,CAAmBC,KAAnB,CAAyBY,mBAA7F;AACD,CAHD,C,CAOA;;;AACA3K,QAAQ,CAAC8J,SAAT,CAAmBE,MAAnB,GAA6B;AAC3BmB,gBAAc,EAAE,wBAASC,MAAT,EAAiB;AAC/B,QAAG,CAAC9B,gBAAJ,EAAqB;AAAC;AACpB8B,YAAM,CAACC,IAAP,CAAY,YAAU;AACpB7L,qDAAC,CAAC,IAAD,CAAD,CAAQoL,cAAR,CAAuB,qBAAvB;AACD,OAFD;AAGD,KAL8B,CAM/B;;;AACAQ,UAAM,CAACzK,IAAP,CAAY,aAAZ,EAA2B,QAA3B;AACD,GAT0B;AAU3B2K,gBAAc,EAAE,wBAASF,MAAT,EAAiB;AAC/B,QAAG,CAAC9B,gBAAJ,EAAqB;AAAC;AACpB8B,YAAM,CAACC,IAAP,CAAY,YAAU;AACpB7L,qDAAC,CAAC,IAAD,CAAD,CAAQoL,cAAR,CAAuB,qBAAvB;AACD,OAFD;AAGD,KAL8B,CAM/B;;;AACAQ,UAAM,CAACzK,IAAP,CAAY,aAAZ,EAA2B,QAA3B;AACD,GAlB0B;AAmB3B4K,iBAAe,EAAE,yBAASnG,CAAT,EAAYoG,QAAZ,EAAqB;AACpC,QAAIrM,MAAM,GAAGiG,CAAC,CAACqG,SAAF,CAAY7B,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAb;AACA,QAAI8B,OAAO,GAAGlM,6CAAC,iBAAUL,MAAV,OAAD,CAAsBwM,GAAtB,4BAA6CH,QAA7C,SAAd;AAEAE,WAAO,CAACL,IAAR,CAAa,YAAU;AACrB,UAAIlI,KAAK,GAAG3D,6CAAC,CAAC,IAAD,CAAb;;AACA2D,WAAK,CAACyH,cAAN,CAAqB,kBAArB,EAAyC,CAACzH,KAAD,CAAzC;AACD,KAHD;AAID;AA3B0B,CAA7B,C,CA8BA;;AACAnD,QAAQ,CAACiK,YAAT,CAAsB2B,kBAAtB,GAA2C,UAASC,UAAT,EAAqB;AAC9D,MAAIC,SAAS,GAAGtM,6CAAC,CAAC,iBAAD,CAAjB;AAAA,MACIuM,SAAS,GAAG,CAAC,UAAD,EAAa,SAAb,EAAwB,QAAxB,CADhB;;AAGA,MAAGF,UAAH,EAAc;AACZ,QAAG,OAAOA,UAAP,KAAsB,QAAzB,EAAkC;AAChCE,eAAS,CAACC,IAAV,CAAeH,UAAf;AACD,KAFD,MAEM,IAAG,QAAOA,UAAP,MAAsB,QAAtB,IAAkC,OAAOA,UAAU,CAAC,CAAD,CAAjB,KAAyB,QAA9D,EAAuE;AAC3EE,eAAS,GAAGA,SAAS,CAACE,MAAV,CAAiBJ,UAAjB,CAAZ;AACD,KAFK,MAED;AACHK,aAAO,CAACC,KAAR,CAAc,8BAAd;AACD;AACF;;AACD,MAAGL,SAAS,CAACpL,MAAb,EAAoB;AAClB,QAAI0L,SAAS,GAAGL,SAAS,CAACM,GAAV,CAAc,UAACC,IAAD,EAAU;AACtC,kCAAqBA,IAArB;AACD,KAFe,EAEbC,IAFa,CAER,GAFQ,CAAhB;AAIA/M,iDAAC,CAACqG,MAAD,CAAD,CAAUuB,GAAV,CAAcgF,SAAd,EAAyB/E,EAAzB,CAA4B+E,SAA5B,EAAuCpM,QAAQ,CAAC8J,SAAT,CAAmBE,MAAnB,CAA0BuB,eAAjE;AACD;AACF,CApBD;;AAsBA,SAASiB,sBAAT,CAAgCC,QAAhC,EAA0C/H,OAA1C,EAAmDgI,QAAnD,EAA6D;AAC3D,MAAIC,KAAJ;AAAA,MAAWC,IAAI,GAAGC,KAAK,CAACC,SAAN,CAAgBC,KAAhB,CAAsBxF,IAAtB,CAA2ByF,SAA3B,EAAsC,CAAtC,CAAlB;AACAxN,+CAAC,CAACqG,MAAD,CAAD,CAAUwB,EAAV,CAAa3C,OAAb,EAAsB,YAAW;AAC/B,QAAIiI,KAAJ,EAAW;AAAEhI,kBAAY,CAACgI,KAAD,CAAZ;AAAsB;;AACnCA,SAAK,GAAG9H,UAAU,CAAC,YAAU;AAC3B6H,cAAQ,CAACO,KAAT,CAAe,IAAf,EAAqBL,IAArB;AACD,KAFiB,EAEfH,QAAQ,IAAI,EAFG,CAAlB,CAF+B,CAIX;AACrB,GALD;AAMD;;AAEDzM,QAAQ,CAACiK,YAAT,CAAsBiD,iBAAtB,GAA0C,UAAST,QAAT,EAAkB;AAC1D,MAAIrB,MAAM,GAAG5L,6CAAC,CAAC,eAAD,CAAd;;AACA,MAAG4L,MAAM,CAAC1K,MAAV,EAAiB;AACf8L,0BAAsB,CAACC,QAAD,EAAW,mBAAX,EAAgCzM,QAAQ,CAAC8J,SAAT,CAAmBE,MAAnB,CAA0BmB,cAA1D,EAA0EC,MAA1E,CAAtB;AACD;AACF,CALD;;AAOApL,QAAQ,CAACiK,YAAT,CAAsBkD,iBAAtB,GAA0C,UAASV,QAAT,EAAkB;AAC1D,MAAIrB,MAAM,GAAG5L,6CAAC,CAAC,eAAD,CAAd;;AACA,MAAG4L,MAAM,CAAC1K,MAAV,EAAiB;AACf8L,0BAAsB,CAACC,QAAD,EAAW,mBAAX,EAAgCzM,QAAQ,CAAC8J,SAAT,CAAmBE,MAAnB,CAA0BsB,cAA1D,EAA0EF,MAA1E,CAAtB;AACD;AACF,CALD;;AAOApL,QAAQ,CAACiK,YAAT,CAAsBmD,yBAAtB,GAAkD,UAAStC,KAAT,EAAgB;AAChE,MAAG,CAACxB,gBAAJ,EAAqB;AAAE,WAAO,KAAP;AAAe;;AACtC,MAAI8B,MAAM,GAAGN,KAAK,CAACzK,IAAN,CAAW,6CAAX,CAAb,CAFgE,CAIhE;;AACA,MAAIgN,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAUC,mBAAV,EAA+B;AAC7D,QAAIC,OAAO,GAAG/N,6CAAC,CAAC8N,mBAAmB,CAAC,CAAD,CAAnB,CAAuB7F,MAAxB,CAAf,CAD6D,CAG7D;;AACA,YAAQ6F,mBAAmB,CAAC,CAAD,CAAnB,CAAuB3D,IAA/B;AACE,WAAK,YAAL;AACE,YAAI4D,OAAO,CAAC5M,IAAR,CAAa,aAAb,MAAgC,QAAhC,IAA4C2M,mBAAmB,CAAC,CAAD,CAAnB,CAAuBE,aAAvB,KAAyC,aAAzF,EAAwG;AACtGD,iBAAO,CAAC3C,cAAR,CAAuB,qBAAvB,EAA8C,CAAC2C,OAAD,EAAU1H,MAAM,CAAC4H,WAAjB,CAA9C;AACD;;AACD,YAAIF,OAAO,CAAC5M,IAAR,CAAa,aAAb,MAAgC,QAAhC,IAA4C2M,mBAAmB,CAAC,CAAD,CAAnB,CAAuBE,aAAvB,KAAyC,aAAzF,EAAwG;AACtGD,iBAAO,CAAC3C,cAAR,CAAuB,qBAAvB,EAA8C,CAAC2C,OAAD,CAA9C;AACA;;AACF,YAAID,mBAAmB,CAAC,CAAD,CAAnB,CAAuBE,aAAvB,KAAyC,OAA7C,EAAsD;AACpDD,iBAAO,CAACG,OAAR,CAAgB,eAAhB,EAAiC/M,IAAjC,CAAsC,aAAtC,EAAoD,QAApD;AACA4M,iBAAO,CAACG,OAAR,CAAgB,eAAhB,EAAiC9C,cAAjC,CAAgD,qBAAhD,EAAuE,CAAC2C,OAAO,CAACG,OAAR,CAAgB,eAAhB,CAAD,CAAvE;AACD;;AACD;;AAEF,WAAK,WAAL;AACEH,eAAO,CAACG,OAAR,CAAgB,eAAhB,EAAiC/M,IAAjC,CAAsC,aAAtC,EAAoD,QAApD;AACA4M,eAAO,CAACG,OAAR,CAAgB,eAAhB,EAAiC9C,cAAjC,CAAgD,qBAAhD,EAAuE,CAAC2C,OAAO,CAACG,OAAR,CAAgB,eAAhB,CAAD,CAAvE;AACA;;AAEF;AACE,eAAO,KAAP;AACF;AArBF;AAuBD,GA3BD;;AA6BA,MAAItC,MAAM,CAAC1K,MAAX,EAAmB;AACjB;AACA,SAAK,IAAI8I,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI4B,MAAM,CAAC1K,MAAP,GAAgB,CAArC,EAAwC8I,CAAC,EAAzC,EAA6C;AAC3C,UAAImE,eAAe,GAAG,IAAIrE,gBAAJ,CAAqB+D,yBAArB,CAAtB;AACAM,qBAAe,CAACC,OAAhB,CAAwBxC,MAAM,CAAC5B,CAAD,CAA9B,EAAmC;AAAEqE,kBAAU,EAAE,IAAd;AAAoBC,iBAAS,EAAE,IAA/B;AAAqCC,qBAAa,EAAE,KAApD;AAA2DC,eAAO,EAAE,IAApE;AAA0EC,uBAAe,EAAE,CAAC,aAAD,EAAgB,OAAhB;AAA3F,OAAnC;AACD;AACF;AACF,CAzCD;;AA2CAjO,QAAQ,CAACiK,YAAT,CAAsBiE,kBAAtB,GAA2C,YAAW;AACpD,MAAIC,SAAS,GAAG3O,6CAAC,CAAC4O,QAAD,CAAjB;AAEApO,UAAQ,CAACiK,YAAT,CAAsBY,eAAtB,CAAsCsD,SAAtC;AACAnO,UAAQ,CAACiK,YAAT,CAAsBc,gBAAtB,CAAuCoD,SAAvC;AACAnO,UAAQ,CAACiK,YAAT,CAAsBe,iBAAtB,CAAwCmD,SAAxC;AACAnO,UAAQ,CAACiK,YAAT,CAAsBgB,oBAAtB,CAA2CkD,SAA3C;AACAnO,UAAQ,CAACiK,YAAT,CAAsBiB,sBAAtB,CAA6CiD,SAA7C;AAED,CATD;;AAWAnO,QAAQ,CAACiK,YAAT,CAAsBoE,kBAAtB,GAA2C,YAAW;AACpD,MAAIF,SAAS,GAAG3O,6CAAC,CAAC4O,QAAD,CAAjB;AACApO,UAAQ,CAACiK,YAAT,CAAsBmD,yBAAtB,CAAgDe,SAAhD;AACAnO,UAAQ,CAACiK,YAAT,CAAsBiD,iBAAtB,CAAwC,GAAxC;AACAlN,UAAQ,CAACiK,YAAT,CAAsBkD,iBAAtB;AACAnN,UAAQ,CAACiK,YAAT,CAAsB2B,kBAAtB;AACD,CAND;;AASA5L,QAAQ,CAACD,IAAT,GAAgB,UAAUuO,EAAV,EAAcpP,UAAd,EAA0B;AACxCqP,uEAAM,CAAC/O,6CAAC,CAACqG,MAAD,CAAF,EAAY,YAAY;AAC5B,QAAIrG,6CAAC,CAACgP,mBAAF,KAA0B,IAA9B,EAAoC;AAClCxO,cAAQ,CAACiK,YAAT,CAAsBiE,kBAAtB;AACAlO,cAAQ,CAACiK,YAAT,CAAsBoE,kBAAtB;AACA7O,mDAAC,CAACgP,mBAAF,GAAwB,IAAxB;AACD;AACF,GANK,CAAN;;AAQA,MAAGtP,UAAH,EAAe;AACbA,cAAU,CAACc,QAAX,GAAsBA,QAAtB,CADa,CAEb;;AACAd,cAAU,CAACuP,QAAX,GAAsBzO,QAAQ,CAACiK,YAAT,CAAsBoE,kBAA5C;AACD;AACF,CAdD;;;;;;;;;;;;;;;;;;;;;;;;;ACnPA,oD","file":"foundation.slider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.slider\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.slider\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Slider } from '../../foundation.slider';\nFoundation.plugin(Slider, 'Slider');\n\nexport { Foundation, Slider };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n    this.initialized = false;\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increaseFast',\n        'SHIFT_ARROW_UP': 'increaseFast',\n        'SHIFT_ARROW_DOWN': 'decreaseFast',\n        'SHIFT_ARROW_LEFT': 'decreaseFast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increaseFast',\n        'SHIFT_ARROW_RIGHT': 'decreaseFast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n    this.initialized = true;\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  Math.floor(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n    if (this.initialized) {\n      this.$element.one('finished.zf.animate', function() {\n        /**\n         * Fires when the handle is done moving.\n         * @event Slider#moved\n         */\n        _this.$element.trigger('moved.zf.slider', [$hndl]);\n      });\n      /**\n       * Fires when the value has not been change for a given time.\n       * @event Slider#changed\n       */\n      clearTimeout(_this.timeout);\n      _this.timeout = setTimeout(function(){\n        _this.$element.trigger('changed.zf.slider', [$hndl]);\n      }, _this.options.changedDelay);\n    }\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, previousVal, nextVal;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    previousVal = val - left;\n    nextVal = previousVal + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= previousVal + div ? nextVal : previousVal;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(ev) {\n            ev.preventDefault();\n            _this._handleEvent(ev, curHandle);\n\n          }).on('mouseup.zf.slider', function(ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat($handle.attr('aria-valuenow')),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decreaseFast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increaseFast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n})();\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).on(trigger, function() {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
index e2367d9523f388a41b8fc6e032b34e6c36524ee1..0ff5462f364fa7f00b58943f316d4145f991746d 100644 (file)
@@ -1,2 +1,2 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("./foundation.util.keyboard"),require("./foundation.util.motion"),require("./foundation.util.touch"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.keyboard","./foundation.util.motion","./foundation.util.touch","jquery"],e):"object"==typeof exports?exports["foundation.slider"]=e(require("./foundation.core"),require("./foundation.util.keyboard"),require("./foundation.util.motion"),require("./foundation.util.touch"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.slider"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],t.__FOUNDATION_EXTERNAL__["foundation.util.motion"],t.__FOUNDATION_EXTERNAL__["foundation.util.touch"],t.jQuery))}(window,function(i,n,o,s,r){return l={"./foundation.core":function(t,e){t.exports=i},"./foundation.util.keyboard":function(t,e){t.exports=n},"./foundation.util.motion":function(t,e){t.exports=o},"./foundation.util.touch":function(t,e){t.exports=s},"./js/entries/plugins/foundation.slider.js":function(t,e,i){"use strict";i.r(e);var n=i("./foundation.core");i.d(e,"Foundation",function(){return n.Foundation});var o=i("./js/foundation.slider.js");i.d(e,"Slider",function(){return o.Slider}),n.Foundation.plugin(o.Slider,"Slider")},"./js/foundation.slider.js":function(t,e,i){"use strict";i.r(e),i.d(e,"Slider",function(){return n});var e=i("jquery"),u=i.n(e),r=i("./foundation.util.keyboard"),h=i("./foundation.util.motion"),d=i("./foundation.core"),s=i("./foundation.util.touch"),a=i("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(i){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(i);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,n?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var n=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,d["Plugin"]);var t,e,i,n=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),n.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=u.a.extend({},o.defaults,this.$element.data(),e),this.className="Slider",this.initialized=!1,s.Touch.init(u.a),a.Triggers.init(u.a),this._init(),r.Keyboard.register("Slider",{ltr:{ARROW_RIGHT:"increase",ARROW_UP:"increase",ARROW_DOWN:"decrease",ARROW_LEFT:"decrease",SHIFT_ARROW_RIGHT:"increaseFast",SHIFT_ARROW_UP:"increaseFast",SHIFT_ARROW_DOWN:"decreaseFast",SHIFT_ARROW_LEFT:"decreaseFast",HOME:"min",END:"max"},rtl:{ARROW_LEFT:"increase",ARROW_RIGHT:"decrease",SHIFT_ARROW_LEFT:"increaseFast",SHIFT_ARROW_RIGHT:"decreaseFast"}})}},{key:"_init",value:function(){this.inputs=this.$element.find("input"),this.handles=this.$element.find("[data-slider-handle]"),this.$handle=this.handles.eq(0),this.$input=this.inputs.length?this.inputs.eq(0):u()("#".concat(this.$handle.attr("aria-controls"))),this.$fill=this.$element.find("[data-slider-fill]").css(this.options.vertical?"height":"width",0),(this.options.disabled||this.$element.hasClass(this.options.disabledClass))&&(this.options.disabled=!0,this.$element.addClass(this.options.disabledClass)),this.inputs.length||(this.inputs=u()().add(this.$input),this.options.binding=!0),this._setInitAttr(0),this.handles[1]&&(this.options.doubleSided=!0,this.$handle2=this.handles.eq(1),this.$input2=1<this.inputs.length?this.inputs.eq(1):u()("#".concat(this.$handle2.attr("aria-controls"))),this.inputs[1]||(this.inputs=this.inputs.add(this.$input2)),this._setInitAttr(1)),this.setHandles(),this._events(),this.initialized=!0}},{key:"setHandles",value:function(){var t=this;this.handles[1]?this._setHandlePos(this.$handle,this.inputs.eq(0).val(),function(){t._setHandlePos(t.$handle2,t.inputs.eq(1).val())}):this._setHandlePos(this.$handle,this.inputs.eq(0).val())}},{key:"_reflow",value:function(){this.setHandles()}},{key:"_pctOfBar",value:function(t){var e=(t-this.options.start)/(this.options.end-this.options.start);switch(this.options.positionValueFunction){case"pow":e=this._logTransform(e);break;case"log":e=this._powTransform(e)}return e.toFixed(2)}},{key:"_value",value:function(t){switch(this.options.positionValueFunction){case"pow":t=this._powTransform(t);break;case"log":t=this._logTransform(t)}var e=this.options.vertical?parseFloat(this.options.end)+t*(this.options.start-this.options.end):(this.options.end-this.options.start)*t+parseFloat(this.options.start);return e}},{key:"_logTransform",value:function(t){return e=this.options.nonLinearBase,t=t*(this.options.nonLinearBase-1)+1,Math.log(t)/Math.log(e);var e}},{key:"_powTransform",value:function(t){return(Math.pow(this.options.nonLinearBase,t)-1)/(this.options.nonLinearBase-1)}},{key:"_setHandlePos",value:function(t,e,i){var n,o,s,r,a,l,u,d,c,f;this.$element.hasClass(this.options.disabledClass)||((e=parseFloat(e))<this.options.start?e=this.options.start:e>this.options.end&&(e=this.options.end),(d=this.options.doubleSided)&&(e=0===this.handles.index(t)?(c=parseFloat(this.$handle2.attr("aria-valuenow")))<=e?c-this.options.step:e:e<=(r=parseFloat(this.$handle.attr("aria-valuenow")))?r+this.options.step:e),c=(n=this).options.vertical,o=c?"height":"width",s=c?"top":"left",r=t[0].getBoundingClientRect()[o],c=this.$element[0].getBoundingClientRect()[o],a=this._pctOfBar(e),l=((c-r)*a/c*100).toFixed(this.options.decimal),e=parseFloat(e.toFixed(this.options.decimal)),u={},this._setValues(t,e),d&&(d=0===this.handles.index(t),c=Math.floor(r/c*100),d?(u[s]="".concat(l,"%"),f=parseFloat(this.$handle2[0].style[s])-l+c,i&&"function"==typeof i&&i()):(i=parseFloat(this.$handle[0].style[s]),f=l-(isNaN(i)?(this.options.initialStart-this.options.start)/((this.options.end-this.options.start)/100):i)+c),u["min-".concat(o)]="".concat(f,"%")),f=this.$element.data("dragging")?1e3/60:this.options.moveTime,Object(h.Move)(f,t,function(){isNaN(l)?t.css(s,"".concat(100*a,"%")):t.css(s,"".concat(l,"%")),n.options.doubleSided?n.$fill.css(u):n.$fill.css(o,"".concat(100*a,"%"))}),this.initialized&&(this.$element.one("finished.zf.animate",function(){n.$element.trigger("moved.zf.slider",[t])}),clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.$element.trigger("changed.zf.slider",[t])},n.options.changedDelay)))}},{key:"_setInitAttr",value:function(t){var e=0===t?this.options.initialStart:this.options.initialEnd,i=this.inputs.eq(t).attr("id")||Object(d.GetYoDigits)(6,"slider");this.inputs.eq(t).attr({id:i,max:this.options.end,min:this.options.start,step:this.options.step}),this.inputs.eq(t).val(e),this.handles.eq(t).attr({role:"slider","aria-controls":i,"aria-valuemax":this.options.end,"aria-valuemin":this.options.start,"aria-valuenow":e,"aria-orientation":this.options.vertical?"vertical":"horizontal",tabindex:0})}},{key:"_setValues",value:function(t,e){var i=this.options.doubleSided?this.handles.index(t):0;this.inputs.eq(i).val(e),t.attr("aria-valuenow",e)}},{key:"_handleEvent",value:function(t,e,i){var n,o,s,r,a,l;i?l=this._adjustValue(null,i):(t.preventDefault(),n=(a=this.options.vertical)?"height":"width",o=a?"top":"left",s=a?t.pageY:t.pageX,r=this.$element[0].getBoundingClientRect()[n],i=a?u()(window).scrollTop():u()(window).scrollLeft(),a=this.$element.offset()[o],t.clientY===t.pageY&&(s+=i),l=this._value((a=(a=s-a)<0?0:r<a?r:a)/r),Object(d.rtl)()&&!this.options.vertical&&(l=this.options.end-l),l=this._adjustValue(null,l),e=e||(g(this.$handle,o,a,n)<=g(this.$handle2,o,a,n)?this.$handle:this.$handle2)),this._setHandlePos(e,l)}},{key:"_adjustValue",value:function(t,e){var i=this.options.step,n=parseFloat(i/2),o=t?parseFloat(t.attr("aria-valuenow")):e,t=0<=o?o%i:i+o%i,e=o-t;return 0===t?o:o=e+n<=o?e+i:e}},{key:"_events",value:function(){this._eventsForHandle(this.$handle),this.handles[1]&&this._eventsForHandle(this.$handle2)}},{key:"_eventsForHandle",value:function(e){function i(t){var e=s.inputs.index(u()(this));s._handleEvent(t,s.handles.eq(e),u()(this).val())}var n,o,s=this;this.inputs.off("keyup.zf.slider").on("keyup.zf.slider",function(t){13===t.keyCode&&i.call(this,t)}),this.inputs.off("change.zf.slider").on("change.zf.slider",i),this.options.clickSelect&&this.$element.off("click.zf.slider").on("click.zf.slider",function(t){return!s.$element.data("dragging")&&void(u()(t.target).is("[data-slider-handle]")||(s.options.doubleSided?s._handleEvent(t):s._handleEvent(t,s.$handle)))}),this.options.draggable&&(this.handles.addTouch(),o=u()("body"),e.off("mousedown.zf.slider").on("mousedown.zf.slider",function(t){e.addClass("is-dragging"),s.$fill.addClass("is-dragging"),s.$element.data("dragging",!0),n=u()(t.currentTarget),o.on("mousemove.zf.slider",function(t){t.preventDefault(),s._handleEvent(t,n)}).on("mouseup.zf.slider",function(t){s._handleEvent(t,n),e.removeClass("is-dragging"),s.$fill.removeClass("is-dragging"),s.$element.data("dragging",!1),o.off("mousemove.zf.slider mouseup.zf.slider")})}).on("selectstart.zf.slider touchmove.zf.slider",function(t){t.preventDefault()})),e.off("keydown.zf.slider").on("keydown.zf.slider",function(t){var e,i=u()(this),n=s.options.doubleSided?s.handles.index(i):0,o=parseFloat(s.inputs.eq(n).val());r.Keyboard.handleKey(t,"Slider",{decrease:function(){e=o-s.options.step},increase:function(){e=o+s.options.step},decreaseFast:function(){e=o-10*s.options.step},increaseFast:function(){e=o+10*s.options.step},min:function(){e=s.options.start},max:function(){e=s.options.end},handled:function(){t.preventDefault(),s._setHandlePos(i,e)}})})}},{key:"_destroy",value:function(){this.handles.off(".zf.slider"),this.inputs.off(".zf.slider"),this.$element.off(".zf.slider"),clearTimeout(this.timeout)}}])&&l(t.prototype,e),i&&l(t,i),o}();function g(t,e,i,n){return Math.abs(t.position()[e]+t[n]()/2-i)}n.defaults={start:0,end:100,step:1,initialStart:0,initialEnd:100,binding:!1,clickSelect:!0,vertical:!1,draggable:!0,disabled:!1,doubleSided:!1,decimal:2,moveTime:200,disabledClass:"disabled",invertVertical:!1,changedDelay:500,nonLinearBase:5,positionValueFunction:"linear"}},"./js/foundation.util.triggers.js":function(t,e,i){"use strict";i.r(e),i.d(e,"Triggers",function(){return u});var e=i("jquery"),s=i.n(e),n=i("./foundation.core"),o=i("./foundation.util.motion");function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(e,i){e.data(i).split(" ").forEach(function(t){s()("#".concat(t))["close"===i?"trigger":"triggerHandler"]("".concat(i,".zf.trigger"),[e])})}var l=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),u={Listeners:{Basic:{},Global:{}},Initializers:{}};function d(t,e,i){var n,o=Array.prototype.slice.call(arguments,3);s()(window).on(e,function(){n&&clearTimeout(n),n=setTimeout(function(){i.apply(null,o)},t||10)})}u.Listeners.Basic={openListener:function(){a(s()(this),"open")},closeListener:function(){s()(this).data("close")?a(s()(this),"close"):s()(this).trigger("close.zf.trigger")},toggleListener:function(){s()(this).data("toggle")?a(s()(this),"toggle"):s()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){var e=s()(this).data("closable");t.stopPropagation(),""!==e?o.Motion.animateOut(s()(this),e,function(){s()(this).trigger("closed.zf")}):s()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=s()(this).data("toggle-focus");s()("#".concat(t)).triggerHandler("toggle.zf.trigger",[s()(this)])}},u.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",u.Listeners.Basic.openListener)},u.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",u.Listeners.Basic.closeListener)},u.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",u.Listeners.Basic.toggleListener)},u.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",u.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",u.Listeners.Basic.closeableListener)},u.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",u.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",u.Listeners.Basic.toggleFocusListener)},u.Listeners.Global={resizeListener:function(t){l||t.each(function(){s()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){l||t.each(function(){s()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){t=t.namespace.split(".")[0];s()("[data-".concat(t,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=s()(this);t.triggerHandler("close.zf.trigger",[t])})}},u.Initializers.addClosemeListener=function(t){var e=s()("[data-yeti-box]"),i=["dropdown","tooltip","reveal"];t&&("string"==typeof t?i.push(t):"object"===r(t)&&"string"==typeof t[0]?i=i.concat(t):console.error("Plugin names must be strings")),e.length&&(i=i.map(function(t){return"closeme.zf.".concat(t)}).join(" "),s()(window).off(i).on(i,u.Listeners.Global.closeMeListener))},u.Initializers.addResizeListener=function(t){var e=s()("[data-resize]");e.length&&d(t,"resize.zf.trigger",u.Listeners.Global.resizeListener,e)},u.Initializers.addScrollListener=function(t){var e=s()("[data-scroll]");e.length&&d(t,"scroll.zf.trigger",u.Listeners.Global.scrollListener,e)},u.Initializers.addMutationEventsListener=function(t){if(!l)return!1;function e(t){var e=s()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}}var i=t.find("[data-resize], [data-scroll], [data-mutate]");if(i.length)for(var n=0;n<=i.length-1;n++)new l(e).observe(i[n],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})},u.Initializers.addSimpleListeners=function(){var t=s()(document);u.Initializers.addOpenListener(t),u.Initializers.addCloseListener(t),u.Initializers.addToggleListener(t),u.Initializers.addCloseableListener(t),u.Initializers.addToggleFocusListener(t)},u.Initializers.addGlobalListeners=function(){var t=s()(document);u.Initializers.addMutationEventsListener(t),u.Initializers.addResizeListener(250),u.Initializers.addScrollListener(),u.Initializers.addClosemeListener()},u.init=function(t,e){Object(n.onLoad)(s()(window),function(){!0!==s.a.triggersInitialized&&(u.Initializers.addSimpleListeners(),u.Initializers.addGlobalListeners(),s.a.triggersInitialized=!0)}),e&&(e.Triggers=u,e.IHearYou=u.Initializers.addGlobalListeners)}},15:function(t,e,i){t.exports=i("./js/entries/plugins/foundation.slider.js")},jquery:function(t,e){t.exports=r}},u={},a.m=l,a.c=u,a.d=function(t,e,i){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(a.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(i,n,function(t){return e[t]}.bind(null,n));return i},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=15);function a(t){if(u[t])return u[t].exports;var e=u[t]={i:t,l:!1,exports:{}};return l[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}var l,u});
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("./foundation.core"),require("./foundation.util.keyboard"),require("./foundation.util.motion"),require("./foundation.util.touch"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.util.keyboard","./foundation.util.motion","./foundation.util.touch","jquery"],e):"object"==typeof exports?exports["foundation.slider"]=e(require("./foundation.core"),require("./foundation.util.keyboard"),require("./foundation.util.motion"),require("./foundation.util.touch"),require("jquery")):(t.__FOUNDATION_EXTERNAL__=t.__FOUNDATION_EXTERNAL__||{},t.__FOUNDATION_EXTERNAL__["foundation.slider"]=e(t.__FOUNDATION_EXTERNAL__["foundation.core"],t.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],t.__FOUNDATION_EXTERNAL__["foundation.util.motion"],t.__FOUNDATION_EXTERNAL__["foundation.util.touch"],t.jQuery))}(window,function(i,n,o,s,r){return l={"./foundation.core":function(t,e){t.exports=i},"./foundation.util.keyboard":function(t,e){t.exports=n},"./foundation.util.motion":function(t,e){t.exports=o},"./foundation.util.touch":function(t,e){t.exports=s},"./js/entries/plugins/foundation.slider.js":function(t,e,i){"use strict";i.r(e);var n=i("./foundation.core");i.d(e,"Foundation",function(){return n.Foundation});var o=i("./js/foundation.slider.js");i.d(e,"Slider",function(){return o.Slider}),n.Foundation.plugin(o.Slider,"Slider")},"./js/foundation.slider.js":function(t,e,i){"use strict";i.r(e),i.d(e,"Slider",function(){return n});var e=i("jquery"),u=i.n(e),r=i("./foundation.util.keyboard"),h=i("./foundation.util.motion"),d=i("./foundation.core"),s=i("./foundation.util.touch"),a=i("./js/foundation.util.triggers.js");function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function l(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function f(i){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=p(i);return function(t,e){{if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined")}return function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t)}(this,n?(t=p(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))}}function p(t){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var n=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(o,d["Plugin"]);var t,e,i,n=f(o);function o(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o),n.apply(this,arguments)}return t=o,(e=[{key:"_setup",value:function(t,e){this.$element=t,this.options=u.a.extend({},o.defaults,this.$element.data(),e),this.className="Slider",this.initialized=!1,s.Touch.init(u.a),a.Triggers.init(u.a),this._init(),r.Keyboard.register("Slider",{ltr:{ARROW_RIGHT:"increase",ARROW_UP:"increase",ARROW_DOWN:"decrease",ARROW_LEFT:"decrease",SHIFT_ARROW_RIGHT:"increaseFast",SHIFT_ARROW_UP:"increaseFast",SHIFT_ARROW_DOWN:"decreaseFast",SHIFT_ARROW_LEFT:"decreaseFast",HOME:"min",END:"max"},rtl:{ARROW_LEFT:"increase",ARROW_RIGHT:"decrease",SHIFT_ARROW_LEFT:"increaseFast",SHIFT_ARROW_RIGHT:"decreaseFast"}})}},{key:"_init",value:function(){this.inputs=this.$element.find("input"),this.handles=this.$element.find("[data-slider-handle]"),this.$handle=this.handles.eq(0),this.$input=this.inputs.length?this.inputs.eq(0):u()("#".concat(this.$handle.attr("aria-controls"))),this.$fill=this.$element.find("[data-slider-fill]").css(this.options.vertical?"height":"width",0),(this.options.disabled||this.$element.hasClass(this.options.disabledClass))&&(this.options.disabled=!0,this.$element.addClass(this.options.disabledClass)),this.inputs.length||(this.inputs=u()().add(this.$input),this.options.binding=!0),this._setInitAttr(0),this.handles[1]&&(this.options.doubleSided=!0,this.$handle2=this.handles.eq(1),this.$input2=1<this.inputs.length?this.inputs.eq(1):u()("#".concat(this.$handle2.attr("aria-controls"))),this.inputs[1]||(this.inputs=this.inputs.add(this.$input2)),this._setInitAttr(1)),this.setHandles(),this._events(),this.initialized=!0}},{key:"setHandles",value:function(){var t=this;this.handles[1]?this._setHandlePos(this.$handle,this.inputs.eq(0).val(),function(){t._setHandlePos(t.$handle2,t.inputs.eq(1).val())}):this._setHandlePos(this.$handle,this.inputs.eq(0).val())}},{key:"_reflow",value:function(){this.setHandles()}},{key:"_pctOfBar",value:function(t){var e=(t-this.options.start)/(this.options.end-this.options.start);switch(this.options.positionValueFunction){case"pow":e=this._logTransform(e);break;case"log":e=this._powTransform(e)}return e.toFixed(2)}},{key:"_value",value:function(t){switch(this.options.positionValueFunction){case"pow":t=this._powTransform(t);break;case"log":t=this._logTransform(t)}var e=this.options.vertical?parseFloat(this.options.end)+t*(this.options.start-this.options.end):(this.options.end-this.options.start)*t+parseFloat(this.options.start);return e}},{key:"_logTransform",value:function(t){return e=this.options.nonLinearBase,t=t*(this.options.nonLinearBase-1)+1,Math.log(t)/Math.log(e);var e}},{key:"_powTransform",value:function(t){return(Math.pow(this.options.nonLinearBase,t)-1)/(this.options.nonLinearBase-1)}},{key:"_setHandlePos",value:function(t,e,i){var n,o,s,r,a,l,u,d,c,f;this.$element.hasClass(this.options.disabledClass)||((e=parseFloat(e))<this.options.start?e=this.options.start:e>this.options.end&&(e=this.options.end),(d=this.options.doubleSided)&&(e=0===this.handles.index(t)?(c=parseFloat(this.$handle2.attr("aria-valuenow")))<=e?c-this.options.step:e:e<=(r=parseFloat(this.$handle.attr("aria-valuenow")))?r+this.options.step:e),c=(n=this).options.vertical,o=c?"height":"width",s=c?"top":"left",r=t[0].getBoundingClientRect()[o],c=this.$element[0].getBoundingClientRect()[o],a=this._pctOfBar(e),l=((c-r)*a/c*100).toFixed(this.options.decimal),e=parseFloat(e.toFixed(this.options.decimal)),u={},this._setValues(t,e),d&&(d=0===this.handles.index(t),c=Math.floor(r/c*100),d?(u[s]="".concat(l,"%"),f=parseFloat(this.$handle2[0].style[s])-l+c,i&&"function"==typeof i&&i()):(i=parseFloat(this.$handle[0].style[s]),f=l-(isNaN(i)?(this.options.initialStart-this.options.start)/((this.options.end-this.options.start)/100):i)+c),u["min-".concat(o)]="".concat(f,"%")),f=this.$element.data("dragging")?1e3/60:this.options.moveTime,Object(h.Move)(f,t,function(){isNaN(l)?t.css(s,"".concat(100*a,"%")):t.css(s,"".concat(l,"%")),n.options.doubleSided?n.$fill.css(u):n.$fill.css(o,"".concat(100*a,"%"))}),this.initialized&&(this.$element.one("finished.zf.animate",function(){n.$element.trigger("moved.zf.slider",[t])}),clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.$element.trigger("changed.zf.slider",[t])},n.options.changedDelay)))}},{key:"_setInitAttr",value:function(t){var e=0===t?this.options.initialStart:this.options.initialEnd,i=this.inputs.eq(t).attr("id")||Object(d.GetYoDigits)(6,"slider");this.inputs.eq(t).attr({id:i,max:this.options.end,min:this.options.start,step:this.options.step}),this.inputs.eq(t).val(e),this.handles.eq(t).attr({role:"slider","aria-controls":i,"aria-valuemax":this.options.end,"aria-valuemin":this.options.start,"aria-valuenow":e,"aria-orientation":this.options.vertical?"vertical":"horizontal",tabindex:0})}},{key:"_setValues",value:function(t,e){var i=this.options.doubleSided?this.handles.index(t):0;this.inputs.eq(i).val(e),t.attr("aria-valuenow",e)}},{key:"_handleEvent",value:function(t,e,i){var n,o,s,r,a,l;i?l=this._adjustValue(null,i):(t.preventDefault(),n=(a=this.options.vertical)?"height":"width",o=a?"top":"left",s=a?t.pageY:t.pageX,r=this.$element[0].getBoundingClientRect()[n],i=a?u()(window).scrollTop():u()(window).scrollLeft(),a=this.$element.offset()[o],t.clientY===t.pageY&&(s+=i),l=this._value((a=(a=s-a)<0?0:r<a?r:a)/r),Object(d.rtl)()&&!this.options.vertical&&(l=this.options.end-l),l=this._adjustValue(null,l),e=e||(g(this.$handle,o,a,n)<=g(this.$handle2,o,a,n)?this.$handle:this.$handle2)),this._setHandlePos(e,l)}},{key:"_adjustValue",value:function(t,e){var i=this.options.step,n=parseFloat(i/2),o=t?parseFloat(t.attr("aria-valuenow")):e,t=0<=o?o%i:i+o%i,e=o-t;return 0===t?o:o=e+n<=o?e+i:e}},{key:"_events",value:function(){this._eventsForHandle(this.$handle),this.handles[1]&&this._eventsForHandle(this.$handle2)}},{key:"_eventsForHandle",value:function(o){function e(t){var e=s.inputs.index(u()(this));s._handleEvent(t,s.handles.eq(e),u()(this).val())}var i,n,s=this;this.inputs.off("keyup.zf.slider").on("keyup.zf.slider",function(t){13===t.keyCode&&e.call(this,t)}),this.inputs.off("change.zf.slider").on("change.zf.slider",e),this.options.clickSelect&&this.$element.off("click.zf.slider").on("click.zf.slider",function(t){return!s.$element.data("dragging")&&void(u()(t.target).is("[data-slider-handle]")||(s.options.doubleSided?s._handleEvent(t):s._handleEvent(t,s.$handle)))}),this.options.draggable&&(this.handles.addTouch(),n=u()("body"),o.off("mousedown.zf.slider").on("mousedown.zf.slider",function(t){o.addClass("is-dragging"),s.$fill.addClass("is-dragging"),s.$element.data("dragging",!0),i=u()(t.currentTarget),n.on("mousemove.zf.slider",function(t){t.preventDefault(),s._handleEvent(t,i)}).on("mouseup.zf.slider",function(t){s._handleEvent(t,i),o.removeClass("is-dragging"),s.$fill.removeClass("is-dragging"),s.$element.data("dragging",!1),n.off("mousemove.zf.slider mouseup.zf.slider")})}).on("selectstart.zf.slider touchmove.zf.slider",function(t){t.preventDefault()})),o.off("keydown.zf.slider").on("keydown.zf.slider",function(t){var e,i=u()(this),n=(s.options.doubleSided&&s.handles.index(i),parseFloat(o.attr("aria-valuenow")));r.Keyboard.handleKey(t,"Slider",{decrease:function(){e=n-s.options.step},increase:function(){e=n+s.options.step},decreaseFast:function(){e=n-10*s.options.step},increaseFast:function(){e=n+10*s.options.step},min:function(){e=s.options.start},max:function(){e=s.options.end},handled:function(){t.preventDefault(),s._setHandlePos(i,e)}})})}},{key:"_destroy",value:function(){this.handles.off(".zf.slider"),this.inputs.off(".zf.slider"),this.$element.off(".zf.slider"),clearTimeout(this.timeout)}}])&&l(t.prototype,e),i&&l(t,i),o}();function g(t,e,i,n){return Math.abs(t.position()[e]+t[n]()/2-i)}n.defaults={start:0,end:100,step:1,initialStart:0,initialEnd:100,binding:!1,clickSelect:!0,vertical:!1,draggable:!0,disabled:!1,doubleSided:!1,decimal:2,moveTime:200,disabledClass:"disabled",invertVertical:!1,changedDelay:500,nonLinearBase:5,positionValueFunction:"linear"}},"./js/foundation.util.triggers.js":function(t,e,i){"use strict";i.r(e),i.d(e,"Triggers",function(){return u});var e=i("jquery"),s=i.n(e),n=i("./foundation.core"),o=i("./foundation.util.motion");function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(e,i){e.data(i).split(" ").forEach(function(t){s()("#".concat(t))["close"===i?"trigger":"triggerHandler"]("".concat(i,".zf.trigger"),[e])})}var l=function(){for(var t=["WebKit","Moz","O","Ms",""],e=0;e<t.length;e++)if("".concat(t[e],"MutationObserver")in window)return window["".concat(t[e],"MutationObserver")];return!1}(),u={Listeners:{Basic:{},Global:{}},Initializers:{}};function d(t,e,i){var n,o=Array.prototype.slice.call(arguments,3);s()(window).on(e,function(){n&&clearTimeout(n),n=setTimeout(function(){i.apply(null,o)},t||10)})}u.Listeners.Basic={openListener:function(){a(s()(this),"open")},closeListener:function(){s()(this).data("close")?a(s()(this),"close"):s()(this).trigger("close.zf.trigger")},toggleListener:function(){s()(this).data("toggle")?a(s()(this),"toggle"):s()(this).trigger("toggle.zf.trigger")},closeableListener:function(t){var e=s()(this).data("closable");t.stopPropagation(),""!==e?o.Motion.animateOut(s()(this),e,function(){s()(this).trigger("closed.zf")}):s()(this).fadeOut().trigger("closed.zf")},toggleFocusListener:function(){var t=s()(this).data("toggle-focus");s()("#".concat(t)).triggerHandler("toggle.zf.trigger",[s()(this)])}},u.Initializers.addOpenListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.openListener),t.on("click.zf.trigger","[data-open]",u.Listeners.Basic.openListener)},u.Initializers.addCloseListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.closeListener),t.on("click.zf.trigger","[data-close]",u.Listeners.Basic.closeListener)},u.Initializers.addToggleListener=function(t){t.off("click.zf.trigger",u.Listeners.Basic.toggleListener),t.on("click.zf.trigger","[data-toggle]",u.Listeners.Basic.toggleListener)},u.Initializers.addCloseableListener=function(t){t.off("close.zf.trigger",u.Listeners.Basic.closeableListener),t.on("close.zf.trigger","[data-closeable], [data-closable]",u.Listeners.Basic.closeableListener)},u.Initializers.addToggleFocusListener=function(t){t.off("focus.zf.trigger blur.zf.trigger",u.Listeners.Basic.toggleFocusListener),t.on("focus.zf.trigger blur.zf.trigger","[data-toggle-focus]",u.Listeners.Basic.toggleFocusListener)},u.Listeners.Global={resizeListener:function(t){l||t.each(function(){s()(this).triggerHandler("resizeme.zf.trigger")}),t.attr("data-events","resize")},scrollListener:function(t){l||t.each(function(){s()(this).triggerHandler("scrollme.zf.trigger")}),t.attr("data-events","scroll")},closeMeListener:function(t,e){t=t.namespace.split(".")[0];s()("[data-".concat(t,"]")).not('[data-yeti-box="'.concat(e,'"]')).each(function(){var t=s()(this);t.triggerHandler("close.zf.trigger",[t])})}},u.Initializers.addClosemeListener=function(t){var e=s()("[data-yeti-box]"),i=["dropdown","tooltip","reveal"];t&&("string"==typeof t?i.push(t):"object"===r(t)&&"string"==typeof t[0]?i=i.concat(t):console.error("Plugin names must be strings")),e.length&&(i=i.map(function(t){return"closeme.zf.".concat(t)}).join(" "),s()(window).off(i).on(i,u.Listeners.Global.closeMeListener))},u.Initializers.addResizeListener=function(t){var e=s()("[data-resize]");e.length&&d(t,"resize.zf.trigger",u.Listeners.Global.resizeListener,e)},u.Initializers.addScrollListener=function(t){var e=s()("[data-scroll]");e.length&&d(t,"scroll.zf.trigger",u.Listeners.Global.scrollListener,e)},u.Initializers.addMutationEventsListener=function(t){if(!l)return!1;function e(t){var e=s()(t[0].target);switch(t[0].type){case"attributes":"scroll"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("scrollme.zf.trigger",[e,window.pageYOffset]),"resize"===e.attr("data-events")&&"data-events"===t[0].attributeName&&e.triggerHandler("resizeme.zf.trigger",[e]),"style"===t[0].attributeName&&(e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]));break;case"childList":e.closest("[data-mutate]").attr("data-events","mutate"),e.closest("[data-mutate]").triggerHandler("mutateme.zf.trigger",[e.closest("[data-mutate]")]);break;default:return!1}}var i=t.find("[data-resize], [data-scroll], [data-mutate]");if(i.length)for(var n=0;n<=i.length-1;n++)new l(e).observe(i[n],{attributes:!0,childList:!0,characterData:!1,subtree:!0,attributeFilter:["data-events","style"]})},u.Initializers.addSimpleListeners=function(){var t=s()(document);u.Initializers.addOpenListener(t),u.Initializers.addCloseListener(t),u.Initializers.addToggleListener(t),u.Initializers.addCloseableListener(t),u.Initializers.addToggleFocusListener(t)},u.Initializers.addGlobalListeners=function(){var t=s()(document);u.Initializers.addMutationEventsListener(t),u.Initializers.addResizeListener(250),u.Initializers.addScrollListener(),u.Initializers.addClosemeListener()},u.init=function(t,e){Object(n.onLoad)(s()(window),function(){!0!==s.a.triggersInitialized&&(u.Initializers.addSimpleListeners(),u.Initializers.addGlobalListeners(),s.a.triggersInitialized=!0)}),e&&(e.Triggers=u,e.IHearYou=u.Initializers.addGlobalListeners)}},15:function(t,e,i){t.exports=i("./js/entries/plugins/foundation.slider.js")},jquery:function(t,e){t.exports=r}},u={},a.m=l,a.c=u,a.d=function(t,e,i){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(a.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(i,n,function(t){return e[t]}.bind(null,n));return i},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=15);function a(t){if(u[t])return u[t].exports;var e=u[t]={i:t,l:!1,exports:{}};return l[t].call(e.exports,e,e.exports,a),e.l=!0,e.exports}var l,u});
 //# sourceMappingURL=foundation.slider.min.js.map
index 298617e6e79660bef819717fe06ee051d35ec668..e1b66bc1a1bbf27b5aa449347801e0ba22658ae8 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.slider.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_slider__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Slider","Plugin","element","options","this","$element","$","extend","defaults","data","className","Triggers","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","register","ltr","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","SHIFT_ARROW_RIGHT","SHIFT_ARROW_UP","SHIFT_ARROW_DOWN","SHIFT_ARROW_LEFT","HOME","END","rtl","value","inputs","handles","find","$handle","eq","$input","length","$fill","css","concat","attr","disabled","disabledClass","add","binding","doubleSided","$handle2","$input2","initialized","_setHandlePos","_this2","val","setHandles","pctOfBar","positionValueFunction","_logTransform","_powTransform","toFixed","vertical","parseFloat","end","start","nonLinearBase","base","Math","log","pow","$hndl","location","cb","vert","lOrT","handleDim","elemDim","isLeftHndl","moveTime","hasClass","h2Val","step","h1Val","hOrW","getBoundingClientRect","_pctOfBar","isDbl","index","dim","style","movement","handlePct","handlePos","isNaN","initialStart","Object","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","_this","one","trigger","clearTimeout","changedDelay","timeout","setTimeout","key","idx","initVal","initialEnd","id","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","max","min","role","aria-controls","aria-valuemax","aria-valuemin","aria-valuenow","aria-orientation","tabindex","e","windowScroll","elemOffset","barDim","barXY","_adjustValue","preventDefault","eventOffset","offset","direction","param","eventFromBar","_value","firstHndlPos","secndHndlPos","absPosition","div","left","next_val","prev_val","previousVal","_eventsForHandle","handleChangeEvent","_handleEvent","curHandle","keyCode","call","off","on","target","is","addTouch","$body","addClass","currentTarget","ev","_$handle","oldValue","newValue","decrease","handleKey","handled","position","clickPos","abs","dir","triggers","forEach","type","el","MutationObserver","i","prefixes","Listeners","Basic","Global","Initializers","timer","debounce","listener","args","apply","openListener","closeListener","toggleListener","closeableListener","Motion","animateOut","animation","fadeOut","toggleFocusListener","triggerHandler","$elem","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","namespace","pluginId","plugins","not","yetiBoxes","plugNames","pluginName","push","_typeof","console","error","listeners","map","name","debounceGlobalListener","listeningElementsMutation","mutationRecordsList","$target","pageYOffset","attributeName","closest","elementObserver","observe","childList","characterData","subtree","attributeFilter","$document","document","addResizeListener","addScrollListener","addClosemeListener","onLoad","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","a","triggersInitialized","addGlobalListeners","IHearYou","installedModules","m","modules","c","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","bind","n","object","property","prototype","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.slider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.slider\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.slider\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;","import { Foundation } from './foundation.core';\n\nimport { Slider } from '../../foundation.slider';\nFoundation.plugin(Slider, 'Slider');\n\nexport { Foundation, Slider };\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n  /**\n   * Creates a new instance of a slider control.\n   * @class\n   * @name Slider\n   * @param {jQuery} element - jQuery object to make into a slider control.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n    this.className = 'Slider'; // ie9 back compat\n\n  // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n    Touch.init($);\n    Triggers.init($);\n\n    this._init();\n\n    Keyboard.register('Slider', {\n      'ltr': {\n        'ARROW_RIGHT': 'increase',\n        'ARROW_UP': 'increase',\n        'ARROW_DOWN': 'decrease',\n        'ARROW_LEFT': 'decrease',\n        'SHIFT_ARROW_RIGHT': 'increase_fast',\n        'SHIFT_ARROW_UP': 'increase_fast',\n        'SHIFT_ARROW_DOWN': 'decrease_fast',\n        'SHIFT_ARROW_LEFT': 'decrease_fast',\n        'HOME': 'min',\n        'END': 'max'\n      },\n      'rtl': {\n        'ARROW_LEFT': 'increase',\n        'ARROW_RIGHT': 'decrease',\n        'SHIFT_ARROW_LEFT': 'increase_fast',\n        'SHIFT_ARROW_RIGHT': 'decrease_fast'\n      }\n    });\n  }\n\n  /**\n   * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n   * @function\n   * @private\n   */\n  _init() {\n    this.inputs = this.$element.find('input');\n    this.handles = this.$element.find('[data-slider-handle]');\n\n    this.$handle = this.handles.eq(0);\n    this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n    this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n    var _this = this;\n    if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n      this.options.disabled = true;\n      this.$element.addClass(this.options.disabledClass);\n    }\n    if (!this.inputs.length) {\n      this.inputs = $().add(this.$input);\n      this.options.binding = true;\n    }\n\n    this._setInitAttr(0);\n\n    if (this.handles[1]) {\n      this.options.doubleSided = true;\n      this.$handle2 = this.handles.eq(1);\n      this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n      if (!this.inputs[1]) {\n        this.inputs = this.inputs.add(this.$input2);\n      }\n\n      // this.$handle.triggerHandler('click.zf.slider');\n      this._setInitAttr(1);\n    }\n\n    // Set handle positions\n    this.setHandles();\n\n    this._events();\n  }\n\n  setHandles() {\n    if(this.handles[1]) {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n        this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n      });\n    } else {\n      this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n    }\n  }\n\n  _reflow() {\n    this.setHandles();\n  }\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n  */\n  _pctOfBar(value) {\n    var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    }\n\n    return pctOfBar.toFixed(2)\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n  */\n  _value(pctOfBar) {\n    switch(this.options.positionValueFunction) {\n    case \"pow\":\n      pctOfBar = this._powTransform(pctOfBar);\n      break;\n    case \"log\":\n      pctOfBar = this._logTransform(pctOfBar);\n      break;\n    }\n\n    var value\n    if (this.options.vertical) {\n      // linear interpolation which is working with negative values for start\n      // https://math.stackexchange.com/a/1019084\n      value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n    } else {\n      value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n    }\n\n    return value\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n  */\n  _logTransform(value) {\n    return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n  }\n\n  /**\n  * @function\n  * @private\n  * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n  */\n  _powTransform(value) {\n    return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n  }\n\n  /**\n   * Sets the position of the selected handle and fill bar.\n   * @function\n   * @private\n   * @param {jQuery} $hndl - the selected handle to move.\n   * @param {Number} location - floating point between the start and end values of the slider bar.\n   * @param {Function} cb - callback function to fire on completion.\n   * @fires Slider#moved\n   * @fires Slider#changed\n   */\n  _setHandlePos($hndl, location, cb) {\n    // don't move if the slider has been disabled since its initialization\n    if (this.$element.hasClass(this.options.disabledClass)) {\n      return;\n    }\n    //might need to alter that slightly for bars that will have odd number selections.\n    location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n    // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n    if (location < this.options.start) { location = this.options.start; }\n    else if (location > this.options.end) { location = this.options.end; }\n\n    var isDbl = this.options.doubleSided;\n\n    if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n      if (this.handles.index($hndl) === 0) {\n        var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n        location = location >= h2Val ? h2Val - this.options.step : location;\n      } else {\n        var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n        location = location <= h1Val ? h1Val + this.options.step : location;\n      }\n    }\n\n    var _this = this,\n        vert = this.options.vertical,\n        hOrW = vert ? 'height' : 'width',\n        lOrT = vert ? 'top' : 'left',\n        handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n        elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n        //percentage of bar min/max value based on click or drag point\n        pctOfBar = this._pctOfBar(location),\n        //number of actual pixels to shift the handle, based on the percentage obtained above\n        pxToMove = (elemDim - handleDim) * pctOfBar,\n        //percentage of bar to shift the handle\n        movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n        //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n        location = parseFloat(location.toFixed(this.options.decimal));\n        // declare empty object for css adjustments, only used with 2 handled-sliders\n    var css = {};\n\n    this._setValues($hndl, location);\n\n    // TODO update to calculate based on values set to respective inputs??\n    if (isDbl) {\n      var isLeftHndl = this.handles.index($hndl) === 0,\n          //empty variable, will be used for min-height/width for fill bar\n          dim,\n          //percentage w/h of the handle compared to the slider bar\n          handlePct =  ~~(percent(handleDim, elemDim) * 100);\n      //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n      if (isLeftHndl) {\n        //left or top percentage value to apply to the fill bar.\n        css[lOrT] = `${movement}%`;\n        //calculate the new min-height/width for the fill bar.\n        dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n        //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n        //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n        if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n      } else {\n        //just caching the value of the left/bottom handle's left/top property\n        var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n        //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n        //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n        dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n      }\n      // assign the min-height/width to our css object\n      css[`min-${hOrW}`] = `${dim}%`;\n    }\n\n    this.$element.one('finished.zf.animate', function() {\n                    /**\n                     * Fires when the handle is done moving.\n                     * @event Slider#moved\n                     */\n                    _this.$element.trigger('moved.zf.slider', [$hndl]);\n                });\n\n    //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n    var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n    Move(moveTime, $hndl, function() {\n      // adjusting the left/top property of the handle, based on the percentage calculated above\n      // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n      // fall back to next best guess.\n      if (isNaN(movement)) {\n        $hndl.css(lOrT, `${pctOfBar * 100}%`);\n      }\n      else {\n        $hndl.css(lOrT, `${movement}%`);\n      }\n\n      if (!_this.options.doubleSided) {\n        //if single-handled, a simple method to expand the fill bar\n        _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n      } else {\n        //otherwise, use the css object we created above\n        _this.$fill.css(css);\n      }\n    });\n\n\n    /**\n     * Fires when the value has not been change for a given time.\n     * @event Slider#changed\n     */\n    clearTimeout(_this.timeout);\n    _this.timeout = setTimeout(function(){\n      _this.$element.trigger('changed.zf.slider', [$hndl]);\n    }, _this.options.changedDelay);\n  }\n\n  /**\n   * Sets the initial attribute for the slider element.\n   * @function\n   * @private\n   * @param {Number} idx - index of the current handle/input to use.\n   */\n  _setInitAttr(idx) {\n    var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n    var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n    this.inputs.eq(idx).attr({\n      'id': id,\n      'max': this.options.end,\n      'min': this.options.start,\n      'step': this.options.step\n    });\n    this.inputs.eq(idx).val(initVal);\n    this.handles.eq(idx).attr({\n      'role': 'slider',\n      'aria-controls': id,\n      'aria-valuemax': this.options.end,\n      'aria-valuemin': this.options.start,\n      'aria-valuenow': initVal,\n      'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n      'tabindex': 0\n    });\n  }\n\n  /**\n   * Sets the input and `aria-valuenow` values for the slider element.\n   * @function\n   * @private\n   * @param {jQuery} $handle - the currently selected handle.\n   * @param {Number} val - floating point of the new value.\n   */\n  _setValues($handle, val) {\n    var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n    this.inputs.eq(idx).val(val);\n    $handle.attr('aria-valuenow', val);\n  }\n\n  /**\n   * Handles events on the slider element.\n   * Calculates the new location of the current handle.\n   * If there are two handles and the bar was clicked, it determines which handle to move.\n   * @function\n   * @private\n   * @param {Object} e - the `event` object passed from the listener.\n   * @param {jQuery} $handle - the current handle to calculate for, if selected.\n   * @param {Number} val - floating point number for the new value of the slider.\n   * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n   */\n  _handleEvent(e, $handle, val) {\n    var value, hasVal;\n    if (!val) {//click or drag events\n      e.preventDefault();\n      var _this = this,\n          vertical = this.options.vertical,\n          param = vertical ? 'height' : 'width',\n          direction = vertical ? 'top' : 'left',\n          eventOffset = vertical ? e.pageY : e.pageX,\n          barDim = this.$element[0].getBoundingClientRect()[param],\n          windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n      var elemOffset = this.$element.offset()[direction];\n\n      // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n      // best way to guess this is simulated is if clientY == pageY\n      if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n      var eventFromBar = eventOffset - elemOffset;\n      var barXY;\n      if (eventFromBar < 0) {\n        barXY = 0;\n      } else if (eventFromBar > barDim) {\n        barXY = barDim;\n      } else {\n        barXY = eventFromBar;\n      }\n      var offsetPct = percent(barXY, barDim);\n\n      value = this._value(offsetPct);\n\n      // turn everything around for RTL, yay math!\n      if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n      value = _this._adjustValue(null, value);\n      //boolean flag for the setHandlePos fn, specifically for vertical sliders\n      hasVal = false;\n\n      if (!$handle) {//figure out which handle it is, pass it to the next function.\n        var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n            secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n            $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n      }\n\n    } else {//change event on input\n      value = this._adjustValue(null, val);\n      hasVal = true;\n    }\n\n    this._setHandlePos($handle, value);\n  }\n\n  /**\n   * Adjustes value for handle in regard to step value. returns adjusted value\n   * @function\n   * @private\n   * @param {jQuery} $handle - the selected handle.\n   * @param {Number} value - value to adjust. used if $handle is falsy\n   */\n  _adjustValue($handle, value) {\n    var val,\n      step = this.options.step,\n      div = parseFloat(step/2),\n      left, prev_val, next_val;\n    if (!!$handle) {\n      val = parseFloat($handle.attr('aria-valuenow'));\n    }\n    else {\n      val = value;\n    }\n    if (val >= 0) {\n      left = val % step;\n    } else {\n      left = step + (val % step);\n    }\n    prev_val = val - left;\n    next_val = prev_val + step;\n    if (left === 0) {\n      return val;\n    }\n    val = val >= prev_val + div ? next_val : prev_val;\n    return val;\n  }\n\n  /**\n   * Adds event listeners to the slider elements.\n   * @function\n   * @private\n   */\n  _events() {\n    this._eventsForHandle(this.$handle);\n    if(this.handles[1]) {\n      this._eventsForHandle(this.$handle2);\n    }\n  }\n\n\n  /**\n   * Adds event listeners a particular handle\n   * @function\n   * @private\n   * @param {jQuery} $handle - the current handle to apply listeners to.\n   */\n  _eventsForHandle($handle) {\n    var _this = this,\n        curHandle;\n\n      const handleChangeEvent = function(e) {\n        const idx = _this.inputs.index($(this));\n        _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n      };\n\n      // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if(e.keyCode == 13) handleChangeEvent.call(this, e);\n      });\n\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n          if (_this.$element.data('dragging')) { return false; }\n\n          if (!$(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n    if (this.options.draggable) {\n      this.handles.addTouch();\n\n      var $body = $('body');\n      $handle\n        .off('mousedown.zf.slider')\n        .on('mousedown.zf.slider', function(e) {\n          $handle.addClass('is-dragging');\n          _this.$fill.addClass('is-dragging');//\n          _this.$element.data('dragging', true);\n\n          curHandle = $(e.currentTarget);\n\n          $body.on('mousemove.zf.slider', function(e) {\n            e.preventDefault();\n            _this._handleEvent(e, curHandle);\n\n          }).on('mouseup.zf.slider', function(e) {\n            _this._handleEvent(e, curHandle);\n\n            $handle.removeClass('is-dragging');\n            _this.$fill.removeClass('is-dragging');\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n      })\n      // prevent events triggered by touch\n      .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n        e.preventDefault();\n      });\n    }\n\n    $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n      var _$handle = $(this),\n          idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n          oldValue = parseFloat(_this.inputs.eq(idx).val()),\n          newValue;\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Slider', {\n        decrease: function() {\n          newValue = oldValue - _this.options.step;\n        },\n        increase: function() {\n          newValue = oldValue + _this.options.step;\n        },\n        decrease_fast: function() {\n          newValue = oldValue - _this.options.step * 10;\n        },\n        increase_fast: function() {\n          newValue = oldValue + _this.options.step * 10;\n        },\n        min: function() {\n          newValue = _this.options.start;\n        },\n        max: function() {\n          newValue = _this.options.end;\n        },\n        handled: function() { // only set handle pos when event was handled specially\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }\n      });\n      /*if (newValue) { // if pressed key has special function, update value\n        e.preventDefault();\n        _this._setHandlePos(_$handle, newValue);\n      }*/\n    });\n  }\n\n  /**\n   * Destroys the slider plugin.\n   */\n  _destroy() {\n    this.handles.off('.zf.slider');\n    this.inputs.off('.zf.slider');\n    this.$element.off('.zf.slider');\n\n    clearTimeout(this.timeout);\n  }\n}\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,//update this if changing the transition time in the sass\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n  return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n  return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.slider.min.js","sources":["foundation.slider.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.slider\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.slider\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 15);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./foundation.util.touch\":\n/*!****************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n  \\****************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.slider.js\":\n/*!*************************************************!*\\\n  !*** ./js/entries/plugins/foundation.slider.js ***!\n  \\*************************************************/\n/*! exports provided: Foundation, Slider */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_slider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.slider */ \"./js/foundation.slider.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Slider\", function() { return _foundation_slider__WEBPACK_IMPORTED_MODULE_1__[\"Slider\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_slider__WEBPACK_IMPORTED_MODULE_1__[\"Slider\"], 'Slider');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.slider.js\":\n/*!*********************************!*\\\n  !*** ./js/foundation.slider.js ***!\n  \\*********************************/\n/*! exports provided: Slider */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Slider\", function() { return Slider; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.touch */ \"./foundation.util.touch\");\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\n\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nvar Slider = /*#__PURE__*/function (_Plugin) {\n  _inherits(Slider, _Plugin);\n\n  var _super = _createSuper(Slider);\n\n  function Slider() {\n    _classCallCheck(this, Slider);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Slider, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of a slider control.\n     * @class\n     * @name Slider\n     * @param {jQuery} element - jQuery object to make into a slider control.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Slider.defaults, this.$element.data(), options);\n      this.className = 'Slider'; // ie9 back compat\n\n      this.initialized = false; // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n\n      _foundation_util_touch__WEBPACK_IMPORTED_MODULE_4__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Slider', {\n        'ltr': {\n          'ARROW_RIGHT': 'increase',\n          'ARROW_UP': 'increase',\n          'ARROW_DOWN': 'decrease',\n          'ARROW_LEFT': 'decrease',\n          'SHIFT_ARROW_RIGHT': 'increaseFast',\n          'SHIFT_ARROW_UP': 'increaseFast',\n          'SHIFT_ARROW_DOWN': 'decreaseFast',\n          'SHIFT_ARROW_LEFT': 'decreaseFast',\n          'HOME': 'min',\n          'END': 'max'\n        },\n        'rtl': {\n          'ARROW_LEFT': 'increase',\n          'ARROW_RIGHT': 'decrease',\n          'SHIFT_ARROW_LEFT': 'increaseFast',\n          'SHIFT_ARROW_RIGHT': 'decreaseFast'\n        }\n      });\n    }\n    /**\n     * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      this.inputs = this.$element.find('input');\n      this.handles = this.$element.find('[data-slider-handle]');\n      this.$handle = this.handles.eq(0);\n      this.$input = this.inputs.length ? this.inputs.eq(0) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(this.$handle.attr('aria-controls')));\n      this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n      if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n        this.options.disabled = true;\n        this.$element.addClass(this.options.disabledClass);\n      }\n\n      if (!this.inputs.length) {\n        this.inputs = jquery__WEBPACK_IMPORTED_MODULE_0___default()().add(this.$input);\n        this.options.binding = true;\n      }\n\n      this._setInitAttr(0);\n\n      if (this.handles[1]) {\n        this.options.doubleSided = true;\n        this.$handle2 = this.handles.eq(1);\n        this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(this.$handle2.attr('aria-controls')));\n\n        if (!this.inputs[1]) {\n          this.inputs = this.inputs.add(this.$input2);\n        } // this.$handle.triggerHandler('click.zf.slider');\n\n\n        this._setInitAttr(1);\n      } // Set handle positions\n\n\n      this.setHandles();\n\n      this._events();\n\n      this.initialized = true;\n    }\n  }, {\n    key: \"setHandles\",\n    value: function setHandles() {\n      var _this2 = this;\n\n      if (this.handles[1]) {\n        this._setHandlePos(this.$handle, this.inputs.eq(0).val(), function () {\n          _this2._setHandlePos(_this2.$handle2, _this2.inputs.eq(1).val());\n        });\n      } else {\n        this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n      }\n    }\n  }, {\n    key: \"_reflow\",\n    value: function _reflow() {\n      this.setHandles();\n    }\n    /**\n    * @function\n    * @private\n    * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n    */\n\n  }, {\n    key: \"_pctOfBar\",\n    value: function _pctOfBar(value) {\n      var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start);\n\n      switch (this.options.positionValueFunction) {\n        case \"pow\":\n          pctOfBar = this._logTransform(pctOfBar);\n          break;\n\n        case \"log\":\n          pctOfBar = this._powTransform(pctOfBar);\n          break;\n      }\n\n      return pctOfBar.toFixed(2);\n    }\n    /**\n    * @function\n    * @private\n    * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n    */\n\n  }, {\n    key: \"_value\",\n    value: function _value(pctOfBar) {\n      switch (this.options.positionValueFunction) {\n        case \"pow\":\n          pctOfBar = this._powTransform(pctOfBar);\n          break;\n\n        case \"log\":\n          pctOfBar = this._logTransform(pctOfBar);\n          break;\n      }\n\n      var value;\n\n      if (this.options.vertical) {\n        // linear interpolation which is working with negative values for start\n        // https://math.stackexchange.com/a/1019084\n        value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end);\n      } else {\n        value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n      }\n\n      return value;\n    }\n    /**\n    * @function\n    * @private\n    * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n    */\n\n  }, {\n    key: \"_logTransform\",\n    value: function _logTransform(value) {\n      return baseLog(this.options.nonLinearBase, value * (this.options.nonLinearBase - 1) + 1);\n    }\n    /**\n    * @function\n    * @private\n    * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n    */\n\n  }, {\n    key: \"_powTransform\",\n    value: function _powTransform(value) {\n      return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1);\n    }\n    /**\n     * Sets the position of the selected handle and fill bar.\n     * @function\n     * @private\n     * @param {jQuery} $hndl - the selected handle to move.\n     * @param {Number} location - floating point between the start and end values of the slider bar.\n     * @param {Function} cb - callback function to fire on completion.\n     * @fires Slider#moved\n     * @fires Slider#changed\n     */\n\n  }, {\n    key: \"_setHandlePos\",\n    value: function _setHandlePos($hndl, location, cb) {\n      // don't move if the slider has been disabled since its initialization\n      if (this.$element.hasClass(this.options.disabledClass)) {\n        return;\n      } //might need to alter that slightly for bars that will have odd number selections.\n\n\n      location = parseFloat(location); //on input change events, convert string to number...grumble.\n      // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n\n      if (location < this.options.start) {\n        location = this.options.start;\n      } else if (location > this.options.end) {\n        location = this.options.end;\n      }\n\n      var isDbl = this.options.doubleSided;\n\n      if (isDbl) {\n        //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n        if (this.handles.index($hndl) === 0) {\n          var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n          location = location >= h2Val ? h2Val - this.options.step : location;\n        } else {\n          var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n          location = location <= h1Val ? h1Val + this.options.step : location;\n        }\n      }\n\n      var _this = this,\n          vert = this.options.vertical,\n          hOrW = vert ? 'height' : 'width',\n          lOrT = vert ? 'top' : 'left',\n          handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n          elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n          //percentage of bar min/max value based on click or drag point\n      pctOfBar = this._pctOfBar(location),\n          //number of actual pixels to shift the handle, based on the percentage obtained above\n      pxToMove = (elemDim - handleDim) * pctOfBar,\n          //percentage of bar to shift the handle\n      movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal); //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n\n\n      location = parseFloat(location.toFixed(this.options.decimal)); // declare empty object for css adjustments, only used with 2 handled-sliders\n\n      var css = {};\n\n      this._setValues($hndl, location); // TODO update to calculate based on values set to respective inputs??\n\n\n      if (isDbl) {\n        var isLeftHndl = this.handles.index($hndl) === 0,\n            //empty variable, will be used for min-height/width for fill bar\n        dim,\n            //percentage w/h of the handle compared to the slider bar\n        handlePct = Math.floor(percent(handleDim, elemDim) * 100); //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n\n        if (isLeftHndl) {\n          //left or top percentage value to apply to the fill bar.\n          css[lOrT] = \"\".concat(movement, \"%\"); //calculate the new min-height/width for the fill bar.\n\n          dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct; //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n          //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n\n          if (cb && typeof cb === 'function') {\n            cb();\n          } //this is only needed for the initialization of 2 handled sliders\n\n        } else {\n          //just caching the value of the left/bottom handle's left/top property\n          var handlePos = parseFloat(this.$handle[0].style[lOrT]); //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n          //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n\n          dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start) / ((this.options.end - this.options.start) / 100) : handlePos) + handlePct;\n        } // assign the min-height/width to our css object\n\n\n        css[\"min-\".concat(hOrW)] = \"\".concat(dim, \"%\");\n      } //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n\n\n      var moveTime = this.$element.data('dragging') ? 1000 / 60 : this.options.moveTime;\n      Object(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Move\"])(moveTime, $hndl, function () {\n        // adjusting the left/top property of the handle, based on the percentage calculated above\n        // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n        // fall back to next best guess.\n        if (isNaN(movement)) {\n          $hndl.css(lOrT, \"\".concat(pctOfBar * 100, \"%\"));\n        } else {\n          $hndl.css(lOrT, \"\".concat(movement, \"%\"));\n        }\n\n        if (!_this.options.doubleSided) {\n          //if single-handled, a simple method to expand the fill bar\n          _this.$fill.css(hOrW, \"\".concat(pctOfBar * 100, \"%\"));\n        } else {\n          //otherwise, use the css object we created above\n          _this.$fill.css(css);\n        }\n      });\n\n      if (this.initialized) {\n        this.$element.one('finished.zf.animate', function () {\n          /**\n           * Fires when the handle is done moving.\n           * @event Slider#moved\n           */\n          _this.$element.trigger('moved.zf.slider', [$hndl]);\n        });\n        /**\n         * Fires when the value has not been change for a given time.\n         * @event Slider#changed\n         */\n\n        clearTimeout(_this.timeout);\n        _this.timeout = setTimeout(function () {\n          _this.$element.trigger('changed.zf.slider', [$hndl]);\n        }, _this.options.changedDelay);\n      }\n    }\n    /**\n     * Sets the initial attribute for the slider element.\n     * @function\n     * @private\n     * @param {Number} idx - index of the current handle/input to use.\n     */\n\n  }, {\n    key: \"_setInitAttr\",\n    value: function _setInitAttr(idx) {\n      var initVal = idx === 0 ? this.options.initialStart : this.options.initialEnd;\n      var id = this.inputs.eq(idx).attr('id') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'slider');\n      this.inputs.eq(idx).attr({\n        'id': id,\n        'max': this.options.end,\n        'min': this.options.start,\n        'step': this.options.step\n      });\n      this.inputs.eq(idx).val(initVal);\n      this.handles.eq(idx).attr({\n        'role': 'slider',\n        'aria-controls': id,\n        'aria-valuemax': this.options.end,\n        'aria-valuemin': this.options.start,\n        'aria-valuenow': initVal,\n        'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n        'tabindex': 0\n      });\n    }\n    /**\n     * Sets the input and `aria-valuenow` values for the slider element.\n     * @function\n     * @private\n     * @param {jQuery} $handle - the currently selected handle.\n     * @param {Number} val - floating point of the new value.\n     */\n\n  }, {\n    key: \"_setValues\",\n    value: function _setValues($handle, val) {\n      var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n      this.inputs.eq(idx).val(val);\n      $handle.attr('aria-valuenow', val);\n    }\n    /**\n     * Handles events on the slider element.\n     * Calculates the new location of the current handle.\n     * If there are two handles and the bar was clicked, it determines which handle to move.\n     * @function\n     * @private\n     * @param {Object} e - the `event` object passed from the listener.\n     * @param {jQuery} $handle - the current handle to calculate for, if selected.\n     * @param {Number} val - floating point number for the new value of the slider.\n     * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n     */\n\n  }, {\n    key: \"_handleEvent\",\n    value: function _handleEvent(e, $handle, val) {\n      var value;\n\n      if (!val) {\n        //click or drag events\n        e.preventDefault();\n\n        var _this = this,\n            vertical = this.options.vertical,\n            param = vertical ? 'height' : 'width',\n            direction = vertical ? 'top' : 'left',\n            eventOffset = vertical ? e.pageY : e.pageX,\n            barDim = this.$element[0].getBoundingClientRect()[param],\n            windowScroll = vertical ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop() : jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollLeft();\n\n        var elemOffset = this.$element.offset()[direction]; // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n        // best way to guess this is simulated is if clientY == pageY\n\n        if (e.clientY === e.pageY) {\n          eventOffset = eventOffset + windowScroll;\n        }\n\n        var eventFromBar = eventOffset - elemOffset;\n        var barXY;\n\n        if (eventFromBar < 0) {\n          barXY = 0;\n        } else if (eventFromBar > barDim) {\n          barXY = barDim;\n        } else {\n          barXY = eventFromBar;\n        }\n\n        var offsetPct = percent(barXY, barDim);\n        value = this._value(offsetPct); // turn everything around for RTL, yay math!\n\n        if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"])() && !this.options.vertical) {\n          value = this.options.end - value;\n        }\n\n        value = _this._adjustValue(null, value);\n\n        if (!$handle) {\n          //figure out which handle it is, pass it to the next function.\n          var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n              secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n          $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n        }\n      } else {\n        //change event on input\n        value = this._adjustValue(null, val);\n      }\n\n      this._setHandlePos($handle, value);\n    }\n    /**\n     * Adjustes value for handle in regard to step value. returns adjusted value\n     * @function\n     * @private\n     * @param {jQuery} $handle - the selected handle.\n     * @param {Number} value - value to adjust. used if $handle is falsy\n     */\n\n  }, {\n    key: \"_adjustValue\",\n    value: function _adjustValue($handle, value) {\n      var val,\n          step = this.options.step,\n          div = parseFloat(step / 2),\n          left,\n          previousVal,\n          nextVal;\n\n      if (!!$handle) {\n        val = parseFloat($handle.attr('aria-valuenow'));\n      } else {\n        val = value;\n      }\n\n      if (val >= 0) {\n        left = val % step;\n      } else {\n        left = step + val % step;\n      }\n\n      previousVal = val - left;\n      nextVal = previousVal + step;\n\n      if (left === 0) {\n        return val;\n      }\n\n      val = val >= previousVal + div ? nextVal : previousVal;\n      return val;\n    }\n    /**\n     * Adds event listeners to the slider elements.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._eventsForHandle(this.$handle);\n\n      if (this.handles[1]) {\n        this._eventsForHandle(this.$handle2);\n      }\n    }\n    /**\n     * Adds event listeners a particular handle\n     * @function\n     * @private\n     * @param {jQuery} $handle - the current handle to apply listeners to.\n     */\n\n  }, {\n    key: \"_eventsForHandle\",\n    value: function _eventsForHandle($handle) {\n      var _this = this,\n          curHandle;\n\n      var handleChangeEvent = function handleChangeEvent(e) {\n        var idx = _this.inputs.index(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n\n        _this._handleEvent(e, _this.handles.eq(idx), jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val());\n      }; // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n      // listen for the enter key and trigger a change\n      // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n\n\n      this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n        if (e.keyCode === 13) handleChangeEvent.call(this, e);\n      });\n      this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n      if (this.options.clickSelect) {\n        this.$element.off('click.zf.slider').on('click.zf.slider', function (e) {\n          if (_this.$element.data('dragging')) {\n            return false;\n          }\n\n          if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).is('[data-slider-handle]')) {\n            if (_this.options.doubleSided) {\n              _this._handleEvent(e);\n            } else {\n              _this._handleEvent(e, _this.$handle);\n            }\n          }\n        });\n      }\n\n      if (this.options.draggable) {\n        this.handles.addTouch();\n        var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n        $handle.off('mousedown.zf.slider').on('mousedown.zf.slider', function (e) {\n          $handle.addClass('is-dragging');\n\n          _this.$fill.addClass('is-dragging'); //\n\n\n          _this.$element.data('dragging', true);\n\n          curHandle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n          $body.on('mousemove.zf.slider', function (ev) {\n            ev.preventDefault();\n\n            _this._handleEvent(ev, curHandle);\n          }).on('mouseup.zf.slider', function (ev) {\n            _this._handleEvent(ev, curHandle);\n\n            $handle.removeClass('is-dragging');\n\n            _this.$fill.removeClass('is-dragging');\n\n            _this.$element.data('dragging', false);\n\n            $body.off('mousemove.zf.slider mouseup.zf.slider');\n          });\n        }) // prevent events triggered by touch\n        .on('selectstart.zf.slider touchmove.zf.slider', function (e) {\n          e.preventDefault();\n        });\n      }\n\n      $handle.off('keydown.zf.slider').on('keydown.zf.slider', function (e) {\n        var _$handle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n            oldValue = parseFloat($handle.attr('aria-valuenow')),\n            newValue; // handle keyboard event with keyboard util\n\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Slider', {\n          decrease: function decrease() {\n            newValue = oldValue - _this.options.step;\n          },\n          increase: function increase() {\n            newValue = oldValue + _this.options.step;\n          },\n          decreaseFast: function decreaseFast() {\n            newValue = oldValue - _this.options.step * 10;\n          },\n          increaseFast: function increaseFast() {\n            newValue = oldValue + _this.options.step * 10;\n          },\n          min: function min() {\n            newValue = _this.options.start;\n          },\n          max: function max() {\n            newValue = _this.options.end;\n          },\n          handled: function handled() {\n            // only set handle pos when event was handled specially\n            e.preventDefault();\n\n            _this._setHandlePos(_$handle, newValue);\n          }\n        });\n        /*if (newValue) { // if pressed key has special function, update value\n          e.preventDefault();\n          _this._setHandlePos(_$handle, newValue);\n        }*/\n      });\n    }\n    /**\n     * Destroys the slider plugin.\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.handles.off('.zf.slider');\n      this.inputs.off('.zf.slider');\n      this.$element.off('.zf.slider');\n      clearTimeout(this.timeout);\n    }\n  }]);\n\n  return Slider;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n\nSlider.defaults = {\n  /**\n   * Minimum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  start: 0,\n\n  /**\n   * Maximum value for the slider scale.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  end: 100,\n\n  /**\n   * Minimum value change per change event.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  step: 1,\n\n  /**\n   * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  initialStart: 0,\n\n  /**\n   * Value at which the right handle/second input should be set to on initialization.\n   * @option\n   * @type {number}\n   * @default 100\n   */\n  initialEnd: 100,\n\n  /**\n   * Allows the input to be located outside the container and visible. Set to by the JS\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  binding: false,\n\n  /**\n   * Allows the user to click/tap on the slider bar to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickSelect: true,\n\n  /**\n   * Set to true and use the `vertical` class to change alignment to vertical.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  vertical: false,\n\n  /**\n   * Allows the user to drag the slider handle(s) to select a value.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  draggable: true,\n\n  /**\n   * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disabled: false,\n\n  /**\n   * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  doubleSided: false,\n\n  /**\n   * Potential future feature.\n   */\n  // steps: 100,\n\n  /**\n   * Number of decimal places the plugin should go to for floating point precision.\n   * @option\n   * @type {number}\n   * @default 2\n   */\n  decimal: 2,\n\n  /**\n   * Time delay for dragged elements.\n   */\n  // dragDelay: 0,\n\n  /**\n   * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  moveTime: 200,\n  //update this if changing the transition time in the sass\n\n  /**\n   * Class applied to disabled sliders.\n   * @option\n   * @type {string}\n   * @default 'disabled'\n   */\n  disabledClass: 'disabled',\n\n  /**\n   * Will invert the default layout for a vertical<span data-tooltip title=\"who would do this???\"> </span>slider.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  invertVertical: false,\n\n  /**\n   * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  changedDelay: 500,\n\n  /**\n  * Basevalue for non-linear sliders\n  * @option\n  * @type {number}\n  * @default 5\n  */\n  nonLinearBase: 5,\n\n  /**\n  * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n  * @option\n  * @type {string}\n  * @default 'linear'\n  */\n  positionValueFunction: 'linear'\n};\n\nfunction percent(frac, num) {\n  return frac / num;\n}\n\nfunction absPosition($handle, dir, clickPos, param) {\n  return Math.abs($handle.position()[dir] + $handle[param]() / 2 - clickPos);\n}\n\nfunction baseLog(base, value) {\n  return Math.log(value) / Math.log(base);\n}\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 15:\n/*!*******************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.slider.js ***!\n  \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.slider.js */\"./js/entries/plugins/foundation.slider.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.slider.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE__foundation_util_touch__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.keyboard","./foundation.util.motion","./foundation.util.touch","./js/entries/plugins/foundation.slider.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_slider__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.slider.js","Slider","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_4__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","initialized","init","_init","register","ltr","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","SHIFT_ARROW_RIGHT","SHIFT_ARROW_UP","SHIFT_ARROW_DOWN","SHIFT_ARROW_LEFT","HOME","END","rtl","inputs","find","handles","$handle","eq","$input","concat","attr","$fill","css","vertical","disabled","hasClass","disabledClass","addClass","add","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_events","_this2","_setHandlePos","val","pctOfBar","start","end","positionValueFunction","_logTransform","_powTransform","toFixed","parseFloat","base","nonLinearBase","Math","log","pow","$hndl","location","cb","_this","hOrW","lOrT","handleDim","movement","isLeftHndl","handlePct","moveTime","isDbl","index","h2Val","step","h1Val","vert","getBoundingClientRect","elemDim","_pctOfBar","decimal","_setValues","floor","dim","style","handlePos","isNaN","initialStart","one","trigger","clearTimeout","timeout","setTimeout","changedDelay","idx","initVal","initialEnd","id","max","min","role","aria-controls","aria-valuemax","aria-valuemin","aria-valuenow","aria-orientation","tabindex","param","direction","eventOffset","barDim","barXY","_adjustValue","preventDefault","pageY","pageX","windowScroll","scrollTop","scrollLeft","elemOffset","offset","clientY","_value","eventFromBar","absPosition","div","left","previousVal","_eventsForHandle","handleChangeEvent","_handleEvent","curHandle","$body","off","on","keyCode","clickSelect","is","draggable","addTouch","currentTarget","ev","removeClass","newValue","_$handle","oldValue","handleKey","decrease","increase","decreaseFast","increaseFast","handled","dir","clickPos","abs","position","invertVertical","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","triggers","el","type","split","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","15","jquery","installedModules","m","c","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 2bbccc3798209111e2b258d8cf63b93cf514380a..dd31ae5646f5b65b96fe3d11f4068195f5d78e9f 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.smoothScroll.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.smoothScroll.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","SmoothScroll","Plugin","loc","options","arguments","length","undefined","defaults","callback","$loc","$","scrollPos","Math","round","offset","top","threshold","stop","animate","scrollTop","animationDuration","animationEasing","element","this","$element","extend","data","className","_init","id","GetYoDigits","attr","_events","_linkClickListener","_handleLinkClick","bind","on","e","arrival","_this","currentTarget","is","getAttribute","_inTransition","scrollToLoc","preventDefault","off","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.smoothScroll.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.smoothScroll\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.smoothScroll\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { SmoothScroll } from '../../foundation.smoothScroll';\nFoundation.plugin(SmoothScroll, 'SmoothScroll');\n\nexport { Foundation, SmoothScroll };\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n  /**\n   * Creates a new instance of SmoothScroll.\n   * @class\n   * @name SmoothScroll\n   * @fires SmoothScroll#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n    _setup(element, options) {\n        this.$element = element;\n        this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n        this.className = 'SmoothScroll'; // ie9 back compat\n\n        this._init();\n    }\n\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n    _init() {\n        const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n        this.$element.attr({ id });\n\n        this._events();\n    }\n\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n    _events() {\n        this._linkClickListener = this._handleLinkClick.bind(this);\n        this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n        this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n    _handleLinkClick(e) {\n        // Follow the link if it does not point to an anchor.\n        if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n        const arrival = e.currentTarget.getAttribute('href');\n\n        this._inTransition = true;\n\n        SmoothScroll.scrollToLoc(arrival, this.options, () => {\n            this._inTransition = false;\n        });\n\n        e.preventDefault();\n    };\n\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n        const $loc = $(loc);\n\n        // Do nothing if target does not exist to prevent errors\n        if (!$loc.length) return false;\n\n        var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n        $('html, body').stop(true).animate(\n            { scrollTop: scrollPos },\n            options.animationDuration,\n            options.animationEasing,\n            () => {\n                if (typeof callback === 'function'){\n                    callback();\n                }\n            }\n        );\n    }\n\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    _destroy() {\n        this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n        this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n}\n\nexport {SmoothScroll}\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 16);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.smoothScroll.min.js","sources":["foundation.smoothScroll.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.smoothScroll\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.smoothScroll\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 16);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.smoothScroll.js\":\n/*!*******************************************************!*\\\n  !*** ./js/entries/plugins/foundation.smoothScroll.js ***!\n  \\*******************************************************/\n/*! exports provided: Foundation, SmoothScroll */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.smoothScroll */ \"./js/foundation.smoothScroll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SmoothScroll\", function() { return _foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_1__[\"SmoothScroll\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_1__[\"SmoothScroll\"], 'SmoothScroll');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.smoothScroll.js\":\n/*!***************************************!*\\\n  !*** ./js/foundation.smoothScroll.js ***!\n  \\***************************************/\n/*! exports provided: SmoothScroll */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SmoothScroll\", function() { return SmoothScroll; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\n\nvar SmoothScroll = /*#__PURE__*/function (_Plugin) {\n  _inherits(SmoothScroll, _Plugin);\n\n  var _super = _createSuper(SmoothScroll);\n\n  function SmoothScroll() {\n    _classCallCheck(this, SmoothScroll);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(SmoothScroll, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of SmoothScroll.\n     * @class\n     * @name SmoothScroll\n     * @fires SmoothScroll#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n      this.className = 'SmoothScroll'; // ie9 back compat\n\n      this._init();\n    }\n    /**\n     * Initialize the SmoothScroll plugin\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var id = this.$element[0].id || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'smooth-scroll');\n      this.$element.attr({\n        id: id\n      });\n\n      this._events();\n    }\n    /**\n     * Initializes events for SmoothScroll.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._linkClickListener = this._handleLinkClick.bind(this);\n      this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n      this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n    /**\n     * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n     * @param {*} e - event\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_handleLinkClick\",\n    value: function _handleLinkClick(e) {\n      var _this = this;\n\n      // Follow the link if it does not point to an anchor.\n      if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget).is('a[href^=\"#\"]')) return;\n      var arrival = e.currentTarget.getAttribute('href');\n      this._inTransition = true;\n      SmoothScroll.scrollToLoc(arrival, this.options, function () {\n        _this._inTransition = false;\n      });\n      e.preventDefault();\n    }\n  }, {\n    key: \"_destroy\",\n    value:\n    /**\n     * Destroys the SmoothScroll instance.\n     * @function\n     */\n    function _destroy() {\n      this.$element.off('click.zf.smoothScroll', this._linkClickListener);\n      this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n    }\n  }], [{\n    key: \"scrollToLoc\",\n    value:\n    /**\n     * Function to scroll to a given location on the page.\n     * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n     * @param {Object} options - The options to use.\n     * @param {Function} callback - The callback function.\n     * @static\n     * @function\n     */\n    function scrollToLoc(loc) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SmoothScroll.defaults;\n      var callback = arguments.length > 2 ? arguments[2] : undefined;\n      var $loc = jquery__WEBPACK_IMPORTED_MODULE_0___default()(loc); // Do nothing if target does not exist to prevent errors\n\n      if (!$loc.length) return false;\n      var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').stop(true).animate({\n        scrollTop: scrollPos\n      }, options.animationDuration, options.animationEasing, function () {\n        if (typeof callback === 'function') {\n          callback();\n        }\n      });\n    }\n  }]);\n\n  return SmoothScroll;\n}(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n/**\n * Default settings for plugin.\n */\n\n\nSmoothScroll.defaults = {\n  /**\n   * Amount of time, in ms, the animated scrolling should take between locations.\n   * @option\n   * @type {number}\n   * @default 500\n   */\n  animationDuration: 500,\n\n  /**\n   * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n   * @option\n   * @type {string}\n   * @default 'linear'\n   * @see {@link https://api.jquery.com/animate|Jquery animate}\n   */\n  animationEasing: 'linear',\n\n  /**\n   * Number of pixels to use as a marker for location changes.\n   * @option\n   * @type {number}\n   * @default 50\n   */\n  threshold: 50,\n\n  /**\n   * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  offset: 0\n};\n\n\n/***/ }),\n\n/***/ 16:\n/*!*************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.smoothScroll.js ***!\n  \\*************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.smoothScroll.js */\"./js/entries/plugins/foundation.smoothScroll.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.smoothScroll.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.smoothScroll.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_smoothScroll__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.smoothScroll.js","SmoothScroll","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","loc","options","undefined","defaults","callback","$loc","scrollPos","Math","round","offset","top","threshold","stop","animate","scrollTop","animationDuration","animationEasing","element","$element","a","extend","data","className","_init","id","attr","_events","_linkClickListener","_handleLinkClick","bind","on","arrival","_this","currentTarget","is","getAttribute","_inTransition","scrollToLoc","preventDefault","off","16","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 4168ca4f0a265636607f9a18edac030cfb2f38b8..346c64ebda5206c0b3154803615eda3552a26843 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.sticky.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.sticky.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_sticky__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Sticky","element","options","this","$element","$","extend","defaults","data","className","Triggers","init","_init","MediaQuery","$parent","parent","id","GetYoDigits","_this","length","$container","wasWrapped","wrap","container","addClass","containerClass","stickyClass","attr","data-resize","data-mutate","anchor","scrollCount","checkEvery","isStuck","onLoadListener","onLoad","containerHeight","css","getBoundingClientRect","height","elemHeight","$anchor","_parsePoints","_setSizes","scroll","pageYOffset","_calc","_removeSticky","topPoint","_events","split","reverse","join","place","pt","pts","topAnchor","btmAnchor","document","documentElement","scrollHeight","breaks","i","len","concat","offset","top","toLowerCase","points","scrollListener","isOn","canStick","off","on","_eventsHandler","_pauseListeners","trigger","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","removeClass","isTop","anchorPt","anchorHeight","topOrBottom","bottom","cb","is","stickyOn","width","newElemWidth","getComputedStyle","comp","pdngl","parseInt","max-width","pdngr","newContainerHeight","hasClass","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","winHeight","innerHeight","body","fontSize","em","dynamicHeight","el","triggers","jquery__WEBPACK_IMPORTED_MODULE_0___default","type","MutationObserver","prefixes","Listeners","Basic","Initializers","timer","Array","prototype","slice","call","arguments","clearTimeout","setTimeout","args","listener","apply","openListener","closeListener","toggleListener","closeableListener","e","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","animateOut","animation","Motion","fadeOut","toggleFocusListener","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","$nodes","resizeListener","each","triggerHandler","closeMeListener","pluginId","namespace","not","plugins","yetiBoxes","pluginName","plugNames","_typeof","console","error","map","name","listeners","Global","debounceGlobalListener","debounce","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","elementObserver","attributes","childList","characterData","subtree","$document","addMutationEventsListener","addResizeListener","addScrollListener","triggersInitialized","addSimpleListeners","a","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.sticky.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.sticky\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.sticky\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Sticky } from '../../foundation.sticky';\nFoundation.plugin(Sticky, 'Sticky');\n\nexport { Foundation, Sticky };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n  /**\n   * Creates a new instance of a sticky thing.\n   * @class\n   * @name Sticky\n   * @param {jQuery} element - jQuery object to make sticky.\n   * @param {Object} options - options object passed when creating the element programmatically.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n    this.className = 'Sticky'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n   * @function\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n\n    var $parent = this.$element.parent('[data-sticky-container]'),\n        id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n        _this = this;\n\n    if($parent.length){\n      this.$container = $parent;\n    } else {\n      this.wasWrapped = true;\n      this.$element.wrap(this.options.container);\n      this.$container = this.$element.parent();\n    }\n    this.$container.addClass(this.options.containerClass);\n\n    this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n    if (this.options.anchor !== '') {\n        $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n    }\n\n    this.scrollCount = this.options.checkEvery;\n    this.isStuck = false;\n    this.onLoadListener = onLoad($(window), function () {\n      //We calculate the container height to have correct values for anchor points offset calculation.\n      _this.containerHeight = _this.$element.css(\"display\") == \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n      _this.$container.css('height', _this.containerHeight);\n      _this.elemHeight = _this.containerHeight;\n      if (_this.options.anchor !== '') {\n        _this.$anchor = $('#' + _this.options.anchor);\n      } else {\n        _this._parsePoints();\n      }\n\n      _this._setSizes(function () {\n        var scroll = window.pageYOffset;\n        _this._calc(false, scroll);\n        //Unstick the element will ensure that proper classes are set.\n        if (!_this.isStuck) {\n          _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n        }\n      });\n      _this._events(id.split('-').reverse().join('-'));\n    });\n  }\n\n  /**\n   * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n   * @function\n   * @private\n   */\n  _parsePoints() {\n    var top = this.options.topAnchor == \"\" ? 1 : this.options.topAnchor,\n        btm = this.options.btmAnchor== \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n        pts = [top, btm],\n        breaks = {};\n    for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n      var pt;\n      if (typeof pts[i] === 'number') {\n        pt = pts[i];\n      } else {\n        var place = pts[i].split(':'),\n            anchor = $(`#${place[0]}`);\n\n        pt = anchor.offset().top;\n        if (place[1] && place[1].toLowerCase() === 'bottom') {\n          pt += anchor[0].getBoundingClientRect().height;\n        }\n      }\n      breaks[i] = pt;\n    }\n\n\n    this.points = breaks;\n    return;\n  }\n\n  /**\n   * Adds event handlers for the scrolling element.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _events(id) {\n    var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n    if (this.isOn) { return; }\n    if (this.canStick) {\n      this.isOn = true;\n      $(window).off(scrollListener)\n               .on(scrollListener, function(e) {\n                 if (_this.scrollCount === 0) {\n                   _this.scrollCount = _this.options.checkEvery;\n                   _this._setSizes(function() {\n                     _this._calc(false, window.pageYOffset);\n                   });\n                 } else {\n                   _this.scrollCount--;\n                   _this._calc(false, window.pageYOffset);\n                 }\n              });\n    }\n\n    this.$element.off('resizeme.zf.trigger')\n                 .on('resizeme.zf.trigger', function(e, el) {\n                    _this._eventsHandler(id);\n    });\n\n    this.$element.on('mutateme.zf.trigger', function (e, el) {\n        _this._eventsHandler(id);\n    });\n\n    if(this.$anchor) {\n      this.$anchor.on('mutateme.zf.trigger', function (e, el) {\n          _this._eventsHandler(id);\n      });\n    }\n  }\n\n  /**\n   * Handler for events.\n   * @private\n   * @param {String} id - pseudo-random id for unique scroll event listener.\n   */\n  _eventsHandler(id) {\n       var _this = this,\n        scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n       _this._setSizes(function() {\n       _this._calc(false);\n       if (_this.canStick) {\n         if (!_this.isOn) {\n           _this._events(id);\n         }\n       } else if (_this.isOn) {\n         _this._pauseListeners(scrollListener);\n       }\n     });\n  }\n\n  /**\n   * Removes event handlers for scroll and change events on anchor.\n   * @fires Sticky#pause\n   * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n   */\n  _pauseListeners(scrollListener) {\n    this.isOn = false;\n    $(window).off(scrollListener);\n\n    /**\n     * Fires when the plugin is paused due to resize event shrinking the view.\n     * @event Sticky#pause\n     * @private\n     */\n     this.$element.trigger('pause.zf.sticky');\n  }\n\n  /**\n   * Called on every `scroll` event and on `_init`\n   * fires functions based on booleans and cached values\n   * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n   * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n   */\n  _calc(checkSizes, scroll) {\n    if (checkSizes) { this._setSizes(); }\n\n    if (!this.canStick) {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n      return false;\n    }\n\n    if (!scroll) { scroll = window.pageYOffset; }\n\n    if (scroll >= this.topPoint) {\n      if (scroll <= this.bottomPoint) {\n        if (!this.isStuck) {\n          this._setSticky();\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(false);\n        }\n      }\n    } else {\n      if (this.isStuck) {\n        this._removeSticky(true);\n      }\n    }\n  }\n\n  /**\n   * Causes the $element to become stuck.\n   * Adds `position: fixed;`, and helper classes.\n   * @fires Sticky#stuckto\n   * @function\n   * @private\n   */\n  _setSticky() {\n    var _this = this,\n        stickTo = this.options.stickTo,\n        mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n        notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n        css = {};\n\n    css[mrgn] = `${this.options[mrgn]}em`;\n    css[stickTo] = 0;\n    css[notStuckTo] = 'auto';\n    this.isStuck = true;\n    this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n                 .addClass(`is-stuck is-at-${stickTo}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become `position: fixed;`\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n                  * @event Sticky#stuckto\n                  */\n                 .trigger(`sticky.zf.stuckto:${stickTo}`);\n    this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n      _this._setSizes();\n    });\n  }\n\n  /**\n   * Causes the $element to become unstuck.\n   * Removes `position: fixed;`, and helper classes.\n   * Adds other helper classes.\n   * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n   * @fires Sticky#unstuckfrom\n   * @private\n   */\n  _removeSticky(isTop) {\n    var stickTo = this.options.stickTo,\n        stickToTop = stickTo === 'top',\n        css = {},\n        anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n        mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n        topOrBottom = isTop ? 'top' : 'bottom';\n\n    css[mrgn] = 0;\n\n    css['bottom'] = 'auto';\n    if(isTop) {\n      css['top'] = 0;\n    } else {\n      css['top'] = anchorPt;\n    }\n\n    this.isStuck = false;\n    this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n                 .addClass(`is-anchored is-at-${topOrBottom}`)\n                 .css(css)\n                 /**\n                  * Fires when the $element has become anchored.\n                  * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n                  * @event Sticky#unstuckfrom\n                  */\n                 .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n  }\n\n  /**\n   * Sets the $element and $container sizes for plugin.\n   * Calls `_setBreakPoints`.\n   * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n   * @private\n   */\n  _setSizes(cb) {\n    this.canStick = MediaQuery.is(this.options.stickyOn);\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n    }\n\n    var _this = this,\n        newElemWidth = this.$container[0].getBoundingClientRect().width,\n        comp = window.getComputedStyle(this.$container[0]),\n        pdngl = parseInt(comp['padding-left'], 10),\n        pdngr = parseInt(comp['padding-right'], 10);\n\n    if (this.$anchor && this.$anchor.length) {\n      this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n    } else {\n      this._parsePoints();\n    }\n\n    this.$element.css({\n      'max-width': `${newElemWidth - pdngl - pdngr}px`\n    });\n\n    // Recalculate the height only if it is \"dynamic\"\n    if (this.options.dynamicHeight || !this.containerHeight) {\n      // Get the sticked element height and apply it to the container to \"hold the place\"\n      var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n      newContainerHeight = this.$element.css(\"display\") == \"none\" ? 0 : newContainerHeight;\n      this.$container.css('height', newContainerHeight);\n      this.containerHeight = newContainerHeight;\n    }\n    this.elemHeight = this.containerHeight;\n\n    if (!this.isStuck) {\n      if (this.$element.hasClass('is-at-bottom')) {\n        var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n        this.$element.css('top', anchorPt);\n      }\n    }\n\n    this._setBreakPoints(this.containerHeight, function() {\n      if (cb && typeof cb === 'function') { cb(); }\n    });\n  }\n\n  /**\n   * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n   * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n   * @param {Function} cb - optional callback function to be called on completion.\n   * @private\n   */\n  _setBreakPoints(elemHeight, cb) {\n    if (!this.canStick) {\n      if (cb && typeof cb === 'function') { cb(); }\n      else { return false; }\n    }\n    var mTop = emCalc(this.options.marginTop),\n        mBtm = emCalc(this.options.marginBottom),\n        topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n        bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n        // topPoint = this.$anchor.offset().top || this.points[0],\n        // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n        winHeight = window.innerHeight;\n\n    if (this.options.stickTo === 'top') {\n      topPoint -= mTop;\n      bottomPoint -= (elemHeight + mTop);\n    } else if (this.options.stickTo === 'bottom') {\n      topPoint -= (winHeight - (elemHeight + mBtm));\n      bottomPoint -= (winHeight - mBtm);\n    } else {\n      //this would be the stickTo: both option... tricky\n    }\n\n    this.topPoint = topPoint;\n    this.bottomPoint = bottomPoint;\n\n    if (cb && typeof cb === 'function') { cb(); }\n  }\n\n  /**\n   * Destroys the current sticky element.\n   * Resets the element to the top position first.\n   * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n   * @function\n   */\n  _destroy() {\n    this._removeSticky(true);\n\n    this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n                 .css({\n                   height: '',\n                   top: '',\n                   bottom: '',\n                   'max-width': ''\n                 })\n                 .off('resizeme.zf.trigger')\n                 .off('mutateme.zf.trigger');\n    if (this.$anchor && this.$anchor.length) {\n      this.$anchor.off('change.zf.sticky');\n    }\n    if (this.scrollListener) $(window).off(this.scrollListener)\n    if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n    if (this.wasWrapped) {\n      this.$element.unwrap();\n    } else {\n      this.$container.removeClass(this.options.containerClass)\n                     .css({\n                       height: ''\n                     });\n    }\n  }\n}\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.sticky.min.js","sources":["foundation.sticky.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.sticky\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.sticky\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 17);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.sticky.js\":\n/*!*************************************************!*\\\n  !*** ./js/entries/plugins/foundation.sticky.js ***!\n  \\*************************************************/\n/*! exports provided: Foundation, Sticky */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_sticky__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.sticky */ \"./js/foundation.sticky.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Sticky\", function() { return _foundation_sticky__WEBPACK_IMPORTED_MODULE_1__[\"Sticky\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_sticky__WEBPACK_IMPORTED_MODULE_1__[\"Sticky\"], 'Sticky');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.sticky.js\":\n/*!*********************************!*\\\n  !*** ./js/foundation.sticky.js ***!\n  \\*********************************/\n/*! exports provided: Sticky */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Sticky\", function() { return Sticky; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nvar Sticky = /*#__PURE__*/function (_Plugin) {\n  _inherits(Sticky, _Plugin);\n\n  var _super = _createSuper(Sticky);\n\n  function Sticky() {\n    _classCallCheck(this, Sticky);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Sticky, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of a sticky thing.\n     * @class\n     * @name Sticky\n     * @param {jQuery} element - jQuery object to make sticky.\n     * @param {Object} options - options object passed when creating the element programmatically.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Sticky.defaults, this.$element.data(), options);\n      this.className = 'Sticky'; // ie9 back compat\n      // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n    }\n    /**\n     * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n      var $parent = this.$element.parent('[data-sticky-container]'),\n          id = this.$element[0].id || Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'sticky'),\n          _this = this;\n\n      if ($parent.length) {\n        this.$container = $parent;\n      } else {\n        this.wasWrapped = true;\n        this.$element.wrap(this.options.container);\n        this.$container = this.$element.parent();\n      }\n\n      this.$container.addClass(this.options.containerClass);\n      this.$element.addClass(this.options.stickyClass).attr({\n        'data-resize': id,\n        'data-mutate': id\n      });\n\n      if (this.options.anchor !== '') {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + _this.options.anchor).attr({\n          'data-mutate': id\n        });\n      }\n\n      this.scrollCount = this.options.checkEvery;\n      this.isStuck = false;\n      this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n        //We calculate the container height to have correct values for anchor points offset calculation.\n        _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n\n        _this.$container.css('height', _this.containerHeight);\n\n        _this.elemHeight = _this.containerHeight;\n\n        if (_this.options.anchor !== '') {\n          _this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#' + _this.options.anchor);\n        } else {\n          _this._parsePoints();\n        }\n\n        _this._setSizes(function () {\n          var scroll = window.pageYOffset;\n\n          _this._calc(false, scroll); //Unstick the element will ensure that proper classes are set.\n\n\n          if (!_this.isStuck) {\n            _this._removeSticky(scroll >= _this.topPoint ? false : true);\n          }\n        });\n\n        _this._events(id.split('-').reverse().join('-'));\n      });\n    }\n    /**\n     * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_parsePoints\",\n    value: function _parsePoints() {\n      var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n          btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n          pts = [top, btm],\n          breaks = {};\n\n      for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n        var pt;\n\n        if (typeof pts[i] === 'number') {\n          pt = pts[i];\n        } else {\n          var place = pts[i].split(':'),\n              anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(place[0]));\n          pt = anchor.offset().top;\n\n          if (place[1] && place[1].toLowerCase() === 'bottom') {\n            pt += anchor[0].getBoundingClientRect().height;\n          }\n        }\n\n        breaks[i] = pt;\n      }\n\n      this.points = breaks;\n      return;\n    }\n    /**\n     * Adds event handlers for the scrolling element.\n     * @private\n     * @param {String} id - pseudo-random id for unique scroll event listener.\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events(id) {\n      var _this = this,\n          scrollListener = this.scrollListener = \"scroll.zf.\".concat(id);\n\n      if (this.isOn) {\n        return;\n      }\n\n      if (this.canStick) {\n        this.isOn = true;\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(scrollListener).on(scrollListener, function () {\n          if (_this.scrollCount === 0) {\n            _this.scrollCount = _this.options.checkEvery;\n\n            _this._setSizes(function () {\n              _this._calc(false, window.pageYOffset);\n            });\n          } else {\n            _this.scrollCount--;\n\n            _this._calc(false, window.pageYOffset);\n          }\n        });\n      }\n\n      this.$element.off('resizeme.zf.trigger').on('resizeme.zf.trigger', function () {\n        _this._eventsHandler(id);\n      });\n      this.$element.on('mutateme.zf.trigger', function () {\n        _this._eventsHandler(id);\n      });\n\n      if (this.$anchor) {\n        this.$anchor.on('mutateme.zf.trigger', function () {\n          _this._eventsHandler(id);\n        });\n      }\n    }\n    /**\n     * Handler for events.\n     * @private\n     * @param {String} id - pseudo-random id for unique scroll event listener.\n     */\n\n  }, {\n    key: \"_eventsHandler\",\n    value: function _eventsHandler(id) {\n      var _this = this,\n          scrollListener = this.scrollListener = \"scroll.zf.\".concat(id);\n\n      _this._setSizes(function () {\n        _this._calc(false);\n\n        if (_this.canStick) {\n          if (!_this.isOn) {\n            _this._events(id);\n          }\n        } else if (_this.isOn) {\n          _this._pauseListeners(scrollListener);\n        }\n      });\n    }\n    /**\n     * Removes event handlers for scroll and change events on anchor.\n     * @fires Sticky#pause\n     * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n     */\n\n  }, {\n    key: \"_pauseListeners\",\n    value: function _pauseListeners(scrollListener) {\n      this.isOn = false;\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(scrollListener);\n      /**\n       * Fires when the plugin is paused due to resize event shrinking the view.\n       * @event Sticky#pause\n       * @private\n       */\n\n      this.$element.trigger('pause.zf.sticky');\n    }\n    /**\n     * Called on every `scroll` event and on `_init`\n     * fires functions based on booleans and cached values\n     * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n     * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n     */\n\n  }, {\n    key: \"_calc\",\n    value: function _calc(checkSizes, scroll) {\n      if (checkSizes) {\n        this._setSizes();\n      }\n\n      if (!this.canStick) {\n        if (this.isStuck) {\n          this._removeSticky(true);\n        }\n\n        return false;\n      }\n\n      if (!scroll) {\n        scroll = window.pageYOffset;\n      }\n\n      if (scroll >= this.topPoint) {\n        if (scroll <= this.bottomPoint) {\n          if (!this.isStuck) {\n            this._setSticky();\n          }\n        } else {\n          if (this.isStuck) {\n            this._removeSticky(false);\n          }\n        }\n      } else {\n        if (this.isStuck) {\n          this._removeSticky(true);\n        }\n      }\n    }\n    /**\n     * Causes the $element to become stuck.\n     * Adds `position: fixed;`, and helper classes.\n     * @fires Sticky#stuckto\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_setSticky\",\n    value: function _setSticky() {\n      var _this = this,\n          stickTo = this.options.stickTo,\n          mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n          notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n          css = {};\n\n      css[mrgn] = \"\".concat(this.options[mrgn], \"em\");\n      css[stickTo] = 0;\n      css[notStuckTo] = 'auto';\n      this.isStuck = true;\n      this.$element.removeClass(\"is-anchored is-at-\".concat(notStuckTo)).addClass(\"is-stuck is-at-\".concat(stickTo)).css(css)\n      /**\n       * Fires when the $element has become `position: fixed;`\n       * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n       * @event Sticky#stuckto\n       */\n      .trigger(\"sticky.zf.stuckto:\".concat(stickTo));\n      this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function () {\n        _this._setSizes();\n      });\n    }\n    /**\n     * Causes the $element to become unstuck.\n     * Removes `position: fixed;`, and helper classes.\n     * Adds other helper classes.\n     * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n     * @fires Sticky#unstuckfrom\n     * @private\n     */\n\n  }, {\n    key: \"_removeSticky\",\n    value: function _removeSticky(isTop) {\n      var stickTo = this.options.stickTo,\n          stickToTop = stickTo === 'top',\n          css = {},\n          anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n          mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n          topOrBottom = isTop ? 'top' : 'bottom';\n      css[mrgn] = 0;\n      css.bottom = 'auto';\n\n      if (isTop) {\n        css.top = 0;\n      } else {\n        css.top = anchorPt;\n      }\n\n      this.isStuck = false;\n      this.$element.removeClass(\"is-stuck is-at-\".concat(stickTo)).addClass(\"is-anchored is-at-\".concat(topOrBottom)).css(css)\n      /**\n       * Fires when the $element has become anchored.\n       * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n       * @event Sticky#unstuckfrom\n       */\n      .trigger(\"sticky.zf.unstuckfrom:\".concat(topOrBottom));\n    }\n    /**\n     * Sets the $element and $container sizes for plugin.\n     * Calls `_setBreakPoints`.\n     * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n     * @private\n     */\n\n  }, {\n    key: \"_setSizes\",\n    value: function _setSizes(cb) {\n      this.canStick = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"].is(this.options.stickyOn);\n\n      if (!this.canStick) {\n        if (cb && typeof cb === 'function') {\n          cb();\n        }\n      }\n\n      var newElemWidth = this.$container[0].getBoundingClientRect().width,\n          comp = window.getComputedStyle(this.$container[0]),\n          pdngl = parseInt(comp['padding-left'], 10),\n          pdngr = parseInt(comp['padding-right'], 10);\n\n      if (this.$anchor && this.$anchor.length) {\n        this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n      } else {\n        this._parsePoints();\n      }\n\n      this.$element.css({\n        'max-width': \"\".concat(newElemWidth - pdngl - pdngr, \"px\")\n      }); // Recalculate the height only if it is \"dynamic\"\n\n      if (this.options.dynamicHeight || !this.containerHeight) {\n        // Get the sticked element height and apply it to the container to \"hold the place\"\n        var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n        newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n        this.$container.css('height', newContainerHeight);\n        this.containerHeight = newContainerHeight;\n      }\n\n      this.elemHeight = this.containerHeight;\n\n      if (!this.isStuck) {\n        if (this.$element.hasClass('is-at-bottom')) {\n          var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n          this.$element.css('top', anchorPt);\n        }\n      }\n\n      this._setBreakPoints(this.containerHeight, function () {\n        if (cb && typeof cb === 'function') {\n          cb();\n        }\n      });\n    }\n    /**\n     * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n     * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n     * @param {Function} cb - optional callback function to be called on completion.\n     * @private\n     */\n\n  }, {\n    key: \"_setBreakPoints\",\n    value: function _setBreakPoints(elemHeight, cb) {\n      if (!this.canStick) {\n        if (cb && typeof cb === 'function') {\n          cb();\n        } else {\n          return false;\n        }\n      }\n\n      var mTop = emCalc(this.options.marginTop),\n          mBtm = emCalc(this.options.marginBottom),\n          topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n          bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n          // topPoint = this.$anchor.offset().top || this.points[0],\n      // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n      winHeight = window.innerHeight;\n\n      if (this.options.stickTo === 'top') {\n        topPoint -= mTop;\n        bottomPoint -= elemHeight + mTop;\n      } else if (this.options.stickTo === 'bottom') {\n        topPoint -= winHeight - (elemHeight + mBtm);\n        bottomPoint -= winHeight - mBtm;\n      } else {//this would be the stickTo: both option... tricky\n      }\n\n      this.topPoint = topPoint;\n      this.bottomPoint = bottomPoint;\n\n      if (cb && typeof cb === 'function') {\n        cb();\n      }\n    }\n    /**\n     * Destroys the current sticky element.\n     * Resets the element to the top position first.\n     * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this._removeSticky(true);\n\n      this.$element.removeClass(\"\".concat(this.options.stickyClass, \" is-anchored is-at-top\")).css({\n        height: '',\n        top: '',\n        bottom: '',\n        'max-width': ''\n      }).off('resizeme.zf.trigger').off('mutateme.zf.trigger');\n\n      if (this.$anchor && this.$anchor.length) {\n        this.$anchor.off('change.zf.sticky');\n      }\n\n      if (this.scrollListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.scrollListener);\n      if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n      if (this.wasWrapped) {\n        this.$element.unwrap();\n      } else {\n        this.$container.removeClass(this.options.containerClass).css({\n          height: ''\n        });\n      }\n    }\n  }]);\n\n  return Sticky;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nSticky.defaults = {\n  /**\n   * Customizable container template. Add your own classes for styling and sizing.\n   * @option\n   * @type {string}\n   * @default '&lt;div data-sticky-container&gt;&lt;/div&gt;'\n   */\n  container: '<div data-sticky-container></div>',\n\n  /**\n   * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n   * @option\n   * @type {string}\n   * @default 'top'\n   */\n  stickTo: 'top',\n\n  /**\n   * If anchored to a single element, the id of that element.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  anchor: '',\n\n  /**\n   * If using more than one element as anchor points, the id of the top anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  topAnchor: '',\n\n  /**\n   * If using more than one element as anchor points, the id of the bottom anchor.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  btmAnchor: '',\n\n  /**\n   * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginTop: 1,\n\n  /**\n   * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n   * @option\n   * @type {number}\n   * @default 1\n   */\n  marginBottom: 1,\n\n  /**\n   * Breakpoint string that is the minimum screen size an element should become sticky.\n   * @option\n   * @type {string}\n   * @default 'medium'\n   */\n  stickyOn: 'medium',\n\n  /**\n   * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n   * @option\n   * @type {string}\n   * @default 'sticky'\n   */\n  stickyClass: 'sticky',\n\n  /**\n   * Class applied to sticky container. Foundation defaults to `sticky-container`.\n   * @option\n   * @type {string}\n   * @default 'sticky-container'\n   */\n  containerClass: 'sticky-container',\n\n  /**\n   * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  dynamicHeight: true,\n\n  /**\n   * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n   * @option\n   * @type {number}\n   * @default -1\n   */\n  checkEvery: -1\n};\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\n\nfunction emCalc(em) {\n  return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 17:\n/*!*******************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.sticky.js ***!\n  \\*******************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.sticky.js */\"./js/entries/plugins/foundation.sticky.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.sticky.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.mediaQuery","./foundation.util.motion","./js/entries/plugins/foundation.sticky.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_sticky__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.sticky.js","Sticky","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","init","_init","$parent","parent","id","_this","$container","wasWrapped","wrap","container","addClass","containerClass","stickyClass","attr","data-resize","data-mutate","anchor","scrollCount","checkEvery","isStuck","onLoadListener","containerHeight","css","getBoundingClientRect","height","elemHeight","$anchor","_parsePoints","_setSizes","scroll","pageYOffset","_calc","_removeSticky","topPoint","_events","split","reverse","join","place","pt","pts","topAnchor","btmAnchor","document","documentElement","scrollHeight","breaks","len","concat","offset","top","toLowerCase","points","scrollListener","isOn","canStick","off","on","_eventsHandler","_pauseListeners","trigger","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","removeClass","isTop","anchorPt","anchorHeight","topOrBottom","bottom","cb","is","stickyOn","newElemWidth","width","comp","getComputedStyle","pdngl","parseInt","pdngr","max-width","dynamicHeight","newContainerHeight","hasClass","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","winHeight","innerHeight","unwrap","em","body","fontSize","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","el","type","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","console","error","listeners","map","name","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","17","jquery","installedModules","m","c","getter","get","toStringTag","t","mode","__esModule","ns","bind","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 51499449a021fc4f9537e6d8723efb58db0b15f5..f484ddf5a97dbdf744356109663cf5cef95247e5 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.tabs.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.tabs.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_tabs__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Tabs","Plugin","element","options","this","$element","$","extend","defaults","data","className","_init","Keyboard","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","$images","_this2","_this","_isInitializing","attr","role","$tabTitles","find","concat","linkClass","$tabContent","id","each","$elem","$link","isActive","hasClass","linkActiveClass","hash","slice","linkId","aria-controls","aria-selected","tabindex","aria-labelledby","_initialAnchor","autoFocus","onLoadListener","onLoad","animate","scrollTop","offset","top","deepLinkSmudgeDelay","focus","matchHeight","length","onImagesLoaded","_setHeight","bind","_checkDeepLink","anchor","location","anchorNoHash","indexOf","$anchor","first","selectTab","_collapse","deepLinkSmudge","deepLinkSmudgeOffset","trigger","deepLink","_events","_addKeyHandler","_addClickHandler","_setHeightMqHandler","on","off","e","preventDefault","_handleTabChange","$elements","$prevElement","$nextElement","which","parent","children","i","is","wrapOnKeys","last","eq","Math","max","min","handleKey","open","previous","next","handled","$target","historyHandled","$oldTab","$targetContent","activeCollapse","target","$tabLink","_collapseTab","_openTab","updateHistory","history","pushState","replaceState","addClass","panelActiveClass","removeAttr","$target_anchor","removeClass","aria-hidden","$activeTab","elem","hashIdStr","idStr","_typeof","has","panelClass","css","panel","visibility","display","temp","getBoundingClientRect","height","hide","end","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,EAAAG,QAAA,qBAAAA,QAAA,iCAAAA,QAAA,8BAAAA,QAAA,WACA,mBAAAC,QAAAA,OAAAC,IACAD,OAAA,CAAA,oBAAA,gCAAA,6BAAA,UAAAJ,GACA,iBAAAC,QACAA,QAAA,mBAAAD,EAAAG,QAAA,qBAAAA,QAAA,iCAAAA,QAAA,8BAAAA,QAAA,YAEAJ,EAAA,wBAAAA,EAAA,yBAAA,GAAyEA,EAAA,wBAAA,mBAAAC,EAAAD,EAAA,wBAAA,mBAAAA,EAAA,wBAAA,+BAAAA,EAAA,wBAAA,4BAAAA,EAAA,SARzE,CASCO,OAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACD,O,qCCVAR,EAAAD,QAAAM,G,8CCAAL,EAAAD,QAAAO,G,2CCAAN,EAAAD,QAAAQ,G,uECAAE,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,qBAAAA,EAAAI,EAAAF,EAAA,aAAA,WAAA,OAAAC,EAAA,aAAA,IAAAE,EAAAL,EAAA,2BAAAA,EAAAI,EAAAF,EAAA,OAAA,WAAA,OAAAG,EAAA,OAGAC,EAAAA,WAAWC,OAAOC,EAAAA,KAAM,S,mgDCSlBA,E,iPAAaC,EAAAA,W,qMASjB,SAAOC,EAASC,GACdC,KAAKC,SAAWH,EAChBE,KAAKD,QAAUG,EAAAA,EAAEC,OAAO,GAAIP,EAAKQ,SAAUJ,KAAKC,SAASI,OAAQN,GACjEC,KAAKM,UAAY,OAEjBN,KAAKO,QACLC,EAAAA,SAASC,SAAS,OAAQ,CACxBC,MAAS,OACTC,MAAS,OACTC,YAAe,OACfC,SAAY,WACZC,WAAc,OACdC,WAAc,e,mBAUlB,WAAQ,IAkDAC,EAlDAC,EAAAjB,KACFkB,EAAQlB,KACZA,KAAKmB,iBAAkB,EAEvBnB,KAAKC,SAASmB,KAAK,CAACC,KAAQ,YAC5BrB,KAAKsB,WAAatB,KAAKC,SAASsB,KAAd,IAAAC,OAAuBxB,KAAKD,QAAQ0B,YACtDzB,KAAK0B,YAAcxB,GAAAA,CAAC,uBAAAsB,OAAwBxB,KAAKC,SAAS,GAAG0B,GAAzC,OAEpB3B,KAAKsB,WAAWM,KAAK,WACnB,IAAIC,EAAQ3B,GAAAA,CAAEF,MACV8B,EAAQD,EAAMN,KAAK,KACnBQ,EAAWF,EAAMG,SAAN,GAAAR,OAAkBN,EAAMnB,QAAQkC,kBAC3CC,EAAOJ,EAAMV,KAAK,qBAAuBU,EAAM,GAAGI,KAAKC,MAAM,GAC7DC,EAASN,EAAM,GAAGH,IAAT,GAAAH,OAA+BU,EAA/B,UACTR,EAAcxB,GAAAA,CAAC,IAAAsB,OAAKU,IAExBL,EAAMT,KAAK,CAACC,KAAQ,iBAEpBS,EAAMV,KAAK,CACTC,KAAQ,MACRgB,gBAAiBH,EACjBI,gBAAiBP,EACjBJ,GAAMS,EACNG,SAAYR,EAAW,IAAM,OAG/BL,EAAYN,KAAK,CACfC,KAAQ,WACRmB,kBAAmBJ,IAIjBL,IACFb,EAAMuB,eAAN,IAAAjB,OAA2BU,IAGzBH,GACFL,EAAYN,KAAK,cAAe,QAG/BW,GAAYb,EAAMnB,QAAQ2C,YAC3BxB,EAAMyB,eAAiBC,OAAAA,EAAAA,OAAAA,CAAO1C,GAAAA,CAAEnB,QAAS,WACvCmB,GAAAA,CAAE,cAAc2C,QAAQ,CAAEC,UAAWjB,EAAMkB,SAASC,KAAO9B,EAAMnB,QAAQkD,oBAAqB,WAC5FnB,EAAMoB,eAMXlD,KAAKD,QAAQoD,eACVnC,EAAUhB,KAAK0B,YAAYH,KAAK,QAExB6B,OACVC,OAAAA,EAAAA,eAAAA,CAAerC,EAAShB,KAAKsD,WAAWC,KAAKvD,OAE7CA,KAAKsD,cAKTtD,KAAKwD,eAAiB,WACpB,IAAIC,EAAS1E,OAAO2E,SAASxB,KAE7B,IAAKuB,EAAOL,OAAQ,CAElB,GAAInC,EAAKE,gBAAiB,OAEtBF,EAAKwB,iBAAgBgB,EAASxC,EAAKwB,gBAGzC,IAAIkB,EAAsC,GAAvBF,EAAOG,QAAQ,KAAYH,EAAOtB,MAAM,GAAKsB,EAC5DI,EAAUF,GAAgBzD,GAAAA,CAAC,IAAAsB,OAAKmC,IAChC7B,EAAQ2B,GAAUxC,EAAKhB,SAASsB,KAAd,WAAAC,OAA8BiC,EAA9B,0BAAAjC,OAA6DmC,EAA7D,OAA+EG,SAEhFD,EAAQT,SAAUtB,EAAMsB,SAIvCS,GAAWA,EAAQT,QAAUtB,GAASA,EAAMsB,OAC9CnC,EAAK8C,UAAUF,GAAS,GAIxB5C,EAAK+C,YAIH/C,EAAKlB,QAAQkE,iBACXlB,EAAS9B,EAAKhB,SAAS8C,SAC3B7C,GAAAA,CAAE,cAAc2C,QAAQ,CAAEC,UAAWC,EAAOC,IAAM/B,EAAKlB,QAAQmE,sBAAuBjD,EAAKlB,QAAQkD,sBAOrGhC,EAAKhB,SAASkE,QAAQ,mBAAoB,CAACrC,EAAO+B,MAKlD7D,KAAKD,QAAQqE,UACfpE,KAAKwD,iBAGPxD,KAAKqE,UAELrE,KAAKmB,iBAAkB,I,qBAOzB,WACEnB,KAAKsE,iBACLtE,KAAKuE,mBACLvE,KAAKwE,oBAAsB,KAEvBxE,KAAKD,QAAQoD,cACfnD,KAAKwE,oBAAsBxE,KAAKsD,WAAWC,KAAKvD,MAEhDE,GAAAA,CAAEnB,QAAQ0F,GAAG,wBAAyBzE,KAAKwE,sBAG1CxE,KAAKD,QAAQqE,UACdlE,GAAAA,CAAEnB,QAAQ0F,GAAG,aAAczE,KAAKwD,kB,8BAQpC,WACE,IAAItC,EAAQlB,KAEZA,KAAKC,SACFyE,IAAI,iBACJD,GAAG,gBAFN,IAAAjD,OAE2BxB,KAAKD,QAAQ0B,WAAa,SAASkD,GAC1DA,EAAEC,iBACF1D,EAAM2D,iBAAiB3E,GAAAA,CAAEF,W,4BAQ/B,WACE,IAAIkB,EAAQlB,KAEZA,KAAKsB,WAAWoD,IAAI,mBAAmBD,GAAG,kBAAmB,SAASE,GACpE,IAGI1E,EACF6E,EACAC,EACAC,EANc,IAAZL,EAAEM,QAGFhF,EAAWC,GAAAA,CAAEF,OACf8E,EAAY7E,EAASiF,OAAO,MAAMC,SAAS,OAInCvD,KAAK,SAASwD,GAClBlF,GAAAA,CAAEF,MAAMqF,GAAGpF,KAGX+E,EAFE9D,EAAMnB,QAAQuF,YAChBP,EAAqB,IAANK,EAAUN,EAAUS,OAAST,EAAUU,GAAGJ,EAAE,GAC5CA,IAAMN,EAAU1B,OAAQ,EAAI0B,EAAUhB,QAAUgB,EAAUU,GAAGJ,EAAE,KAE9EL,EAAeD,EAAUU,GAAGC,KAAKC,IAAI,EAAGN,EAAE,IAC3BN,EAAUU,GAAGC,KAAKE,IAAIP,EAAE,EAAGN,EAAU1B,OAAO,QAOjE5C,EAAAA,SAASoF,UAAUjB,EAAG,OAAQ,CAC5BkB,KAAM,WACJ5F,EAASsB,KAAK,gBAAgB2B,QAC9BhC,EAAM2D,iBAAiB5E,IAEzB6F,SAAU,WACRf,EAAaxD,KAAK,gBAAgB2B,QAClChC,EAAM2D,iBAAiBE,IAEzBgB,KAAM,WACJf,EAAazD,KAAK,gBAAgB2B,QAClChC,EAAM2D,iBAAiBG,IAEzBgB,QAAS,WACPrB,EAAEC,yB,8BAaV,SAAiBqB,EAASC,GAGxB,IAOIC,EAIE1C,EACA2C,EAZFH,EAAQjE,SAAR,GAAAR,OAAoBxB,KAAKD,QAAQkC,kBAC9BjC,KAAKD,QAAQsG,gBACZrG,KAAKgE,aAKTmC,EAAUnG,KAAKC,SACbsB,KADQ,IAAAC,OACCxB,KAAKD,QAAQ0B,UADd,KAAAD,OAC2BxB,KAAKD,QAAQkC,kBAGhDwB,GADA6C,GADAC,EAAWN,EAAQ1E,KAAK,iBACNH,KAAK,sBACJkF,EAAOlD,OAAjB,IAAA5B,OAA8B8E,GAAWC,EAAS,GAAGrE,KAC9DkE,EAAiBpG,KAAK0B,YAAYH,KAAKkC,GAG7CzD,KAAKwG,aAAaL,GAGlBnG,KAAKyG,SAASR,GAGVjG,KAAKD,QAAQqE,WAAa8B,IACxBlG,KAAKD,QAAQ2G,cACfC,QAAQC,UAAU,GAAI,GAAInD,GAE1BkD,QAAQE,aAAa,GAAI,GAAIpD,IAQjCzD,KAAKC,SAASkE,QAAQ,iBAAkB,CAAC8B,EAASG,IAGlDA,EAAe7E,KAAK,iBAAiB4C,QAAQ,0B,sBAQ/C,SAAS8B,GACL,IAAIM,EAAWN,EAAQ1E,KAAK,gBACxBW,EAAOqE,EAASnF,KAAK,qBAAuBmF,EAAS,GAAGrE,KAAKC,MAAM,GACnEiE,EAAiBpG,KAAK0B,YAAYH,KAAjB,IAAAC,OAA0BU,IAE/C+D,EAAQa,SAAR,GAAAtF,OAAoBxB,KAAKD,QAAQkC,kBAEjCsE,EAASnF,KAAK,CACZkB,gBAAiB,OACjBC,SAAY,MAGd6D,EACGU,SADH,GAAAtF,OACexB,KAAKD,QAAQgH,mBAAoBC,WAAW,iB,0BAQ/D,SAAaf,GACPgB,EAAchB,EAAUiB,YAAP,GAAA1F,OAAAxB,KACHD,QAAAkC,kBADGV,KAAA,gBAAAH,KAAA,CAIjBkB,gBAAiB,QACjBC,UAAa,IAGjBrC,GAAAA,CAAC,IAAAsB,OAAKyF,EAAc7F,KAAd,mBAAN8F,YAAA,GAAA1F,OAAAxB,KACkBD,QAAAgH,mBADlB3F,KAAA,CAEU+F,cAAe,W,uBAQ3B,WACE,IAAIC,EAAapH,KAAKC,SAASsB,KAAd,IAAAC,OAAuBxB,KAAKD,QAAQ0B,UAApC,KAAAD,OAAiDxB,KAAKD,QAAQkC,kBAE3EmF,EAAWhE,SACbpD,KAAKwG,aAAaY,GAMlBpH,KAAKC,SAASkE,QAAQ,mBAAoB,CAACiD,O,uBAU/C,SAAUC,EAAMnB,GACd,IAAWoB,EAGTC,EADkB,WAAhBC,EAAOH,GACDA,EAAK,GAAG1F,GAER0F,EAGNE,EAAM3D,QAAQ,KAAO,EACvB0D,EAAS,IAAA9F,OAAO+F,GAGhBA,GADAD,EAAYC,GACEpF,MAAM,GAGlB8D,EAAUjG,KAAKsB,WAAWmG,IAAhB,WAAAjG,OAA+B8F,EAA/B,0BAAA9F,OAAiE+F,EAAjE,OAA4EzD,QAE1F9D,KAAK6E,iBAAiBoB,EAASC,K,wBAWjC,WACE,IAAIR,EAAM,EACNxE,EAAQlB,KAEPA,KAAK0B,aAIV1B,KAAK0B,YACFH,KADH,IAAAC,OACYxB,KAAKD,QAAQ2H,aACtBC,IAAI,aACJ/F,IAHHA,KAGQ,WAEJ,IAAIgG,EAAQ1H,GAAAA,CAAEF,MACV+B,EAAW6F,EAAM5F,SAAN,GAAAR,OAAkBN,EAAMnB,QAAQgH,mBAE1ChF,GACH6F,EAAMD,IAAI,CAACE,WAAc,SAAUC,QAAW,UAGhD,IAAIC,EAAO/H,KAAKgI,wBAAwBC,OAEnClG,GACH6F,EAAMD,IAAI,CACRE,WAAc,GACdC,QAAW,KAIfpC,EAAaA,EAAPqC,EAAaA,EAAOrC,IAE3BiC,IAAI,aAvBP,GAAAnG,OAAAkE,EAAA,S,sBA8BF,WACE1F,KAAKC,SACFsB,KADH,IAAAC,OACYxB,KAAKD,QAAQ0B,YACtBiD,IAAI,YAAYwD,OAAOC,MACvB5G,KAHH,IAAAC,OAGYxB,KAAKD,QAAQ2H,aACtBQ,OAEClI,KAAKD,QAAQoD,aACiB,MAA5BnD,KAAKwE,qBACNtE,GAAAA,CAAEnB,QAAQ2F,IAAI,wBAAyB1E,KAAKwE,qBAI7CxE,KAAKD,QAAQqE,UACflE,GAAAA,CAAEnB,QAAQ2F,IAAI,aAAc1E,KAAKwD,gBAG/BxD,KAAK2C,gBACPzC,GAAAA,CAAEnB,QAAQ2F,IAAI1E,KAAK2C,qB,gCAKzB/C,EAAKQ,SAAW,CAQdgE,UAAU,EAQVH,gBAAgB,EAQhBhB,oBAAqB,IAQrBiB,qBAAsB,EAQtBwC,eAAe,EASfhE,WAAW,EAQX4C,YAAY,EAQZnC,aAAa,EAQbkD,gBAAgB,EAQhB5E,UAAW,aAQXQ,gBAAiB,YAQjByF,WAAY,aAQZX,iBAAkB,c,gGCniBpBpI,EAAAD,QAAAS,ICCAiJ,EAAA,GA4BAhJ,EAAAiJ,EAAAC,EAGAlJ,EAAAmJ,EAAAH,EAGAhJ,EAAAI,EAAA,SAAAd,EAAA8J,EAAAC,GACArJ,EAAAsJ,EAAAhK,EAAA8J,IACAG,OAAAC,eAAAlK,EAAA8J,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CrJ,EAAAC,EAAA,SAAAX,GACA,oBAAAqK,QAAAA,OAAAC,aACAL,OAAAC,eAAAlK,EAAAqK,OAAAC,YAAA,CAAwDC,MAAA,WAExDN,OAAAC,eAAAlK,EAAA,aAAA,CAAiDuK,OAAA,KAQjD7J,EAAA8J,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAA7J,EAAA6J,IACA,EAAAE,EAAA,OAAAF,EACA,GAAA,EAAAE,GAAA,iBAAAF,GAAAA,GAAAA,EAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAV,OAAAW,OAAA,MAGA,GAFAlK,EAAAC,EAAAgK,GACAV,OAAAC,eAAAS,EAAA,UAAA,CAAyCR,YAAA,EAAAI,MAAAA,IACzC,EAAAE,GAAA,iBAAAF,EAAA,IAAA,IAAAM,KAAAN,EAAA7J,EAAAI,EAAA6J,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBhG,KAAA,KAAAgG,IACrI,OAAAF,GAIAjK,EAAAoK,EAAA,SAAA7K,GACA,IAAA8J,EAAA9J,GAAAA,EAAAyK,WACA,WAA2B,OAAAzK,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAS,EAAAI,EAAAiJ,EAAA,IAAAA,GACAA,GAIArJ,EAAAsJ,EAAA,SAAAe,EAAAC,GAAsD,OAAAf,OAAAgB,UAAAC,eAAAC,KAAAJ,EAAAC,IAGtDtK,EAAA0K,EAAA,GAIA1K,EAAAA,EAAA2K,EAAA,IA9EA,SAAA3K,EAAA4K,GAGA,GAAA5B,EAAA4B,GACA,OAAA5B,EAAA4B,GAAAtL,QAGA,IAAAC,EAAAyJ,EAAA4B,GAAA,CACA5E,EAAA4E,EACAC,GAAA,EACAvL,QAAA,IAUA,OANA4J,EAAA0B,GAAAH,KAAAlL,EAAAD,QAAAC,EAAAA,EAAAD,QAAAU,GAGAT,EAAAsL,GAAA,EAGAtL,EAAAD,Q,MAvBA0J","file":"foundation.tabs.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.keyboard\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.tabs\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","import { Foundation } from './foundation.core';\n\nimport { Tabs } from '../../foundation.tabs';\nFoundation.plugin(Tabs, 'Tabs');\n\nexport { Foundation, Tabs };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n  /**\n   * Creates a new instance of tabs.\n   * @class\n   * @name Tabs\n   * @fires Tabs#init\n   * @param {jQuery} element - jQuery object to make into tabs.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n    this.className = 'Tabs'; // ie9 back compat\n\n    this._init();\n    Keyboard.register('Tabs', {\n      'ENTER': 'open',\n      'SPACE': 'open',\n      'ARROW_RIGHT': 'next',\n      'ARROW_UP': 'previous',\n      'ARROW_DOWN': 'next',\n      'ARROW_LEFT': 'previous'\n      // 'TAB': 'next',\n      // 'SHIFT_TAB': 'previous'\n    });\n  }\n\n  /**\n   * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n   * @private\n   */\n  _init() {\n    var _this = this;\n    this._isInitializing = true;\n\n    this.$element.attr({'role': 'tablist'});\n    this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n    this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n    this.$tabTitles.each(function(){\n      var $elem = $(this),\n          $link = $elem.find('a'),\n          isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n          hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n          linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n          $tabContent = $(`#${hash}`);\n\n      $elem.attr({'role': 'presentation'});\n\n      $link.attr({\n        'role': 'tab',\n        'aria-controls': hash,\n        'aria-selected': isActive,\n        'id': linkId,\n        'tabindex': isActive ? '0' : '-1'\n      });\n\n      $tabContent.attr({\n        'role': 'tabpanel',\n        'aria-labelledby': linkId\n      });\n\n      // Save up the initial hash to return to it later when going back in history\n      if (isActive) {\n        _this._initialAnchor = `#${hash}`;\n      }\n\n      if(!isActive) {\n        $tabContent.attr('aria-hidden', 'true');\n      }\n\n      if(isActive && _this.options.autoFocus){\n        _this.onLoadListener = onLoad($(window), function() {\n          $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n            $link.focus();\n          });\n        });\n      }\n    });\n\n    if(this.options.matchHeight) {\n      var $images = this.$tabContent.find('img');\n\n      if ($images.length) {\n        onImagesLoaded($images, this._setHeight.bind(this));\n      } else {\n        this._setHeight();\n      }\n    }\n\n     // Current context-bound function to open tabs on page load or history hashchange\n    this._checkDeepLink = () => {\n      var anchor = window.location.hash;\n\n      if (!anchor.length) {\n        // If we are still initializing and there is no anchor, then there is nothing to do\n        if (this._isInitializing) return;\n        // Otherwise, move to the initial anchor\n        if (this._initialAnchor) anchor = this._initialAnchor;\n      }\n\n      var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n      var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n      var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n      // Whether the anchor element that has been found is part of this element\n      var isOwnAnchor = !!($anchor.length && $link.length);\n\n      if (isOwnAnchor) {\n        // If there is an anchor for the hash, select it\n        if ($anchor && $anchor.length && $link && $link.length) {\n          this.selectTab($anchor, true);\n        }\n        // Otherwise, collapse everything\n        else {\n          this._collapse();\n        }\n\n        // Roll up a little to show the titles\n        if (this.options.deepLinkSmudge) {\n          var offset = this.$element.offset();\n          $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n        }\n\n        /**\n         * Fires when the plugin has deeplinked at pageload\n         * @event Tabs#deeplink\n         */\n        this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n      }\n    }\n\n    //use browser to open a tab, if it exists in this tabset\n    if (this.options.deepLink) {\n      this._checkDeepLink();\n    }\n\n    this._events();\n\n    this._isInitializing = false;\n  }\n\n  /**\n   * Adds event handlers for items within the tabs.\n   * @private\n   */\n  _events() {\n    this._addKeyHandler();\n    this._addClickHandler();\n    this._setHeightMqHandler = null;\n\n    if (this.options.matchHeight) {\n      this._setHeightMqHandler = this._setHeight.bind(this);\n\n      $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n    }\n\n    if(this.options.deepLink) {\n      $(window).on('hashchange', this._checkDeepLink);\n    }\n  }\n\n  /**\n   * Adds click handlers for items within the tabs.\n   * @private\n   */\n  _addClickHandler() {\n    var _this = this;\n\n    this.$element\n      .off('click.zf.tabs')\n      .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n        e.preventDefault();\n        _this._handleTabChange($(this));\n      });\n  }\n\n  /**\n   * Adds keyboard event handlers for items within the tabs.\n   * @private\n   */\n  _addKeyHandler() {\n    var _this = this;\n\n    this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n      if (e.which === 9) return;\n\n\n      var $element = $(this),\n        $elements = $element.parent('ul').children('li'),\n        $prevElement,\n        $nextElement;\n\n      $elements.each(function(i) {\n        if ($(this).is($element)) {\n          if (_this.options.wrapOnKeys) {\n            $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n            $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n          } else {\n            $prevElement = $elements.eq(Math.max(0, i-1));\n            $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n          }\n          return;\n        }\n      });\n\n      // handle keyboard event with keyboard util\n      Keyboard.handleKey(e, 'Tabs', {\n        open: function() {\n          $element.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($element);\n        },\n        previous: function() {\n          $prevElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($prevElement);\n        },\n        next: function() {\n          $nextElement.find('[role=\"tab\"]').focus();\n          _this._handleTabChange($nextElement);\n        },\n        handled: function() {\n          e.preventDefault();\n        }\n      });\n    });\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n   * @param {jQuery} $target - Tab to open.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @fires Tabs#change\n   * @function\n   */\n  _handleTabChange($target, historyHandled) {\n\n    // With `activeCollapse`, if the target is the active Tab, collapse it.\n    if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n        if(this.options.activeCollapse) {\n            this._collapse();\n        }\n        return;\n    }\n\n    var $oldTab = this.$element.\n          find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor);\n\n    //close old tab\n    this._collapseTab($oldTab);\n\n    //open new tab\n    this._openTab($target);\n\n    //either replace or update browser history\n    if (this.options.deepLink && !historyHandled) {\n      if (this.options.updateHistory) {\n        history.pushState({}, '', anchor);\n      } else {\n        history.replaceState({}, '', anchor);\n      }\n    }\n\n    /**\n     * Fires when the plugin has successfully changed tabs.\n     * @event Tabs#change\n     */\n    this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n    //fire to children a mutation event\n    $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n  }\n\n  /**\n   * Opens the tab `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to open.\n   * @function\n   */\n  _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(`#${hash}`);\n\n      $target.addClass(`${this.options.linkActiveClass}`);\n\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n\n      $targetContent\n        .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n  }\n\n  /**\n   * Collapses `$targetContent` defined by `$target`.\n   * @param {jQuery} $target - Tab to collapse.\n   * @function\n   */\n  _collapseTab($target) {\n    var $target_anchor = $target\n      .removeClass(`${this.options.linkActiveClass}`)\n      .find('[role=\"tab\"]')\n      .attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n\n    $(`#${$target_anchor.attr('aria-controls')}`)\n      .removeClass(`${this.options.panelActiveClass}`)\n      .attr({ 'aria-hidden': 'true' })\n  }\n\n  /**\n   * Collapses the active Tab.\n   * @fires Tabs#collapse\n   * @function\n   */\n  _collapse() {\n    var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n    if ($activeTab.length) {\n      this._collapseTab($activeTab);\n\n      /**\n      * Fires when the plugin has successfully collapsed tabs.\n      * @event Tabs#collapse\n      */\n      this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n    }\n  }\n\n  /**\n   * Public method for selecting a content pane to display.\n   * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n   * @param {boolean} historyHandled - browser has already handled a history update\n   * @function\n   */\n  selectTab(elem, historyHandled) {\n    var idStr, hashIdStr;\n\n    if (typeof elem === 'object') {\n      idStr = elem[0].id;\n    } else {\n      idStr = elem;\n    }\n\n    if (idStr.indexOf('#') < 0) {\n      hashIdStr = `#${idStr}`;\n    } else {\n      hashIdStr = idStr;\n      idStr = idStr.slice(1);\n    }\n\n    var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n    this._handleTabChange($target, historyHandled);\n  };\n\n  /**\n   * Sets the height of each panel to the height of the tallest panel.\n   * If enabled in options, gets called on media query change.\n   * If loading content via external source, can be called directly or with _reflow.\n   * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n   * @function\n   * @private\n   */\n  _setHeight() {\n    var max = 0,\n        _this = this; // Lock down the `this` value for the root tabs object\n\n    if (!this.$tabContent) {\n      return;\n    }\n\n    this.$tabContent\n      .find(`.${this.options.panelClass}`)\n      .css('height', '')\n      .each(function() {\n\n        var panel = $(this),\n            isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({'visibility': 'hidden', 'display': 'block'});\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      })\n      .css('height', `${max}px`);\n  }\n\n  /**\n   * Destroys an instance of tabs.\n   * @fires Tabs#destroyed\n   */\n  _destroy() {\n    this.$element\n      .find(`.${this.options.linkClass}`)\n      .off('.zf.tabs').hide().end()\n      .find(`.${this.options.panelClass}`)\n      .hide();\n\n    if (this.options.matchHeight) {\n      if (this._setHeightMqHandler != null) {\n         $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n    }\n\n    if (this.options.deepLink) {\n      $(window).off('hashchange', this._checkDeepLink);\n    }\n\n    if (this.onLoadListener) {\n      $(window).off(this.onLoadListener);\n    }\n  }\n}\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 18);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.tabs.min.js","sources":["foundation.tabs.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.keyboard\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.tabs\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 18);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.imageLoader\":\n/*!****************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n  \\****************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n  \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.tabs.js\":\n/*!***********************************************!*\\\n  !*** ./js/entries/plugins/foundation.tabs.js ***!\n  \\***********************************************/\n/*! exports provided: Foundation, Tabs */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_tabs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.tabs */ \"./js/foundation.tabs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tabs\", function() { return _foundation_tabs__WEBPACK_IMPORTED_MODULE_1__[\"Tabs\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_tabs__WEBPACK_IMPORTED_MODULE_1__[\"Tabs\"], 'Tabs');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.tabs.js\":\n/*!*******************************!*\\\n  !*** ./js/foundation.tabs.js ***!\n  \\*******************************/\n/*! exports provided: Tabs */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Tabs\", function() { return Tabs; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.imageLoader */ \"./foundation.util.imageLoader\");\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nvar Tabs = /*#__PURE__*/function (_Plugin) {\n  _inherits(Tabs, _Plugin);\n\n  var _super = _createSuper(Tabs);\n\n  function Tabs() {\n    _classCallCheck(this, Tabs);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Tabs, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of tabs.\n     * @class\n     * @name Tabs\n     * @fires Tabs#init\n     * @param {jQuery} element - jQuery object to make into tabs.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Tabs.defaults, this.$element.data(), options);\n      this.className = 'Tabs'; // ie9 back compat\n\n      this._init();\n\n      _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Tabs', {\n        'ENTER': 'open',\n        'SPACE': 'open',\n        'ARROW_RIGHT': 'next',\n        'ARROW_UP': 'previous',\n        'ARROW_DOWN': 'next',\n        'ARROW_LEFT': 'previous' // 'TAB': 'next',\n        // 'SHIFT_TAB': 'previous'\n\n      });\n    }\n    /**\n     * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      var _this2 = this;\n\n      var _this = this;\n\n      this._isInitializing = true;\n      this.$element.attr({\n        'role': 'tablist'\n      });\n      this.$tabTitles = this.$element.find(\".\".concat(this.options.linkClass));\n      this.$tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-tabs-content=\\\"\".concat(this.$element[0].id, \"\\\"]\"));\n      this.$tabTitles.each(function () {\n        var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $link = $elem.find('a'),\n            isActive = $elem.hasClass(\"\".concat(_this.options.linkActiveClass)),\n            hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n            linkId = $link[0].id ? $link[0].id : \"\".concat(hash, \"-label\"),\n            $tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(hash));\n        $elem.attr({\n          'role': 'presentation'\n        });\n        $link.attr({\n          'role': 'tab',\n          'aria-controls': hash,\n          'aria-selected': isActive,\n          'id': linkId,\n          'tabindex': isActive ? '0' : '-1'\n        });\n        $tabContent.attr({\n          'role': 'tabpanel',\n          'aria-labelledby': linkId\n        }); // Save up the initial hash to return to it later when going back in history\n\n        if (isActive) {\n          _this._initialAnchor = \"#\".concat(hash);\n        }\n\n        if (!isActive) {\n          $tabContent.attr('aria-hidden', 'true');\n        }\n\n        if (isActive && _this.options.autoFocus) {\n          _this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n              scrollTop: $elem.offset().top\n            }, _this.options.deepLinkSmudgeDelay, function () {\n              $link.focus();\n            });\n          });\n        }\n      });\n\n      if (this.options.matchHeight) {\n        var $images = this.$tabContent.find('img');\n\n        if ($images.length) {\n          Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__[\"onImagesLoaded\"])($images, this._setHeight.bind(this));\n        } else {\n          this._setHeight();\n        }\n      } // Current context-bound function to open tabs on page load or history hashchange\n\n\n      this._checkDeepLink = function () {\n        var anchor = window.location.hash;\n\n        if (!anchor.length) {\n          // If we are still initializing and there is no anchor, then there is nothing to do\n          if (_this2._isInitializing) return; // Otherwise, move to the initial anchor\n\n          if (_this2._initialAnchor) anchor = _this2._initialAnchor;\n        }\n\n        var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n        var $anchor = anchorNoHash && jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(anchorNoHash));\n\n        var $link = anchor && _this2.$element.find(\"[href$=\\\"\".concat(anchor, \"\\\"],[data-tabs-target=\\\"\").concat(anchorNoHash, \"\\\"]\")).first(); // Whether the anchor element that has been found is part of this element\n\n\n        var isOwnAnchor = !!($anchor.length && $link.length);\n\n        if (isOwnAnchor) {\n          // If there is an anchor for the hash, select it\n          if ($anchor && $anchor.length && $link && $link.length) {\n            _this2.selectTab($anchor, true);\n          } // Otherwise, collapse everything\n          else {\n            _this2._collapse();\n          } // Roll up a little to show the titles\n\n\n          if (_this2.options.deepLinkSmudge) {\n            var offset = _this2.$element.offset();\n\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n              scrollTop: offset.top - _this2.options.deepLinkSmudgeOffset\n            }, _this2.options.deepLinkSmudgeDelay);\n          }\n          /**\n           * Fires when the plugin has deeplinked at pageload\n           * @event Tabs#deeplink\n           */\n\n\n          _this2.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n        }\n      }; //use browser to open a tab, if it exists in this tabset\n\n\n      if (this.options.deepLink) {\n        this._checkDeepLink();\n      }\n\n      this._events();\n\n      this._isInitializing = false;\n    }\n    /**\n     * Adds event handlers for items within the tabs.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this._addKeyHandler();\n\n      this._addClickHandler();\n\n      this._setHeightMqHandler = null;\n\n      if (this.options.matchHeight) {\n        this._setHeightMqHandler = this._setHeight.bind(this);\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n      }\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._checkDeepLink);\n      }\n    }\n    /**\n     * Adds click handlers for items within the tabs.\n     * @private\n     */\n\n  }, {\n    key: \"_addClickHandler\",\n    value: function _addClickHandler() {\n      var _this = this;\n\n      this.$element.off('click.zf.tabs').on('click.zf.tabs', \".\".concat(this.options.linkClass), function (e) {\n        e.preventDefault();\n\n        _this._handleTabChange(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n      });\n    }\n    /**\n     * Adds keyboard event handlers for items within the tabs.\n     * @private\n     */\n\n  }, {\n    key: \"_addKeyHandler\",\n    value: function _addKeyHandler() {\n      var _this = this;\n\n      this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function (e) {\n        if (e.which === 9) return;\n        var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            $elements = $element.parent('ul').children('li'),\n            $prevElement,\n            $nextElement;\n        $elements.each(function (i) {\n          if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n            if (_this.options.wrapOnKeys) {\n              $prevElement = i === 0 ? $elements.last() : $elements.eq(i - 1);\n              $nextElement = i === $elements.length - 1 ? $elements.first() : $elements.eq(i + 1);\n            } else {\n              $prevElement = $elements.eq(Math.max(0, i - 1));\n              $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));\n            }\n\n            return;\n          }\n        }); // handle keyboard event with keyboard util\n\n        _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Tabs', {\n          open: function open() {\n            $element.find('[role=\"tab\"]').focus();\n\n            _this._handleTabChange($element);\n          },\n          previous: function previous() {\n            $prevElement.find('[role=\"tab\"]').focus();\n\n            _this._handleTabChange($prevElement);\n          },\n          next: function next() {\n            $nextElement.find('[role=\"tab\"]').focus();\n\n            _this._handleTabChange($nextElement);\n          },\n          handled: function handled() {\n            e.preventDefault();\n          }\n        });\n      });\n    }\n    /**\n     * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n     * @param {jQuery} $target - Tab to open.\n     * @param {boolean} historyHandled - browser has already handled a history update\n     * @fires Tabs#change\n     * @function\n     */\n\n  }, {\n    key: \"_handleTabChange\",\n    value: function _handleTabChange($target, historyHandled) {\n      // With `activeCollapse`, if the target is the active Tab, collapse it.\n      if ($target.hasClass(\"\".concat(this.options.linkActiveClass))) {\n        if (this.options.activeCollapse) {\n          this._collapse();\n        }\n\n        return;\n      }\n\n      var $oldTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass)),\n          $tabLink = $target.find('[role=\"tab\"]'),\n          target = $tabLink.attr('data-tabs-target'),\n          anchor = target && target.length ? \"#\".concat(target) : $tabLink[0].hash,\n          $targetContent = this.$tabContent.find(anchor); //close old tab\n\n      this._collapseTab($oldTab); //open new tab\n\n\n      this._openTab($target); //either replace or update browser history\n\n\n      if (this.options.deepLink && !historyHandled) {\n        if (this.options.updateHistory) {\n          history.pushState({}, '', anchor);\n        } else {\n          history.replaceState({}, '', anchor);\n        }\n      }\n      /**\n       * Fires when the plugin has successfully changed tabs.\n       * @event Tabs#change\n       */\n\n\n      this.$element.trigger('change.zf.tabs', [$target, $targetContent]); //fire to children a mutation event\n\n      $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n    }\n    /**\n     * Opens the tab `$targetContent` defined by `$target`.\n     * @param {jQuery} $target - Tab to open.\n     * @function\n     */\n\n  }, {\n    key: \"_openTab\",\n    value: function _openTab($target) {\n      var $tabLink = $target.find('[role=\"tab\"]'),\n          hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n          $targetContent = this.$tabContent.find(\"#\".concat(hash));\n      $target.addClass(\"\".concat(this.options.linkActiveClass));\n      $tabLink.attr({\n        'aria-selected': 'true',\n        'tabindex': '0'\n      });\n      $targetContent.addClass(\"\".concat(this.options.panelActiveClass)).removeAttr('aria-hidden');\n    }\n    /**\n     * Collapses `$targetContent` defined by `$target`.\n     * @param {jQuery} $target - Tab to collapse.\n     * @function\n     */\n\n  }, {\n    key: \"_collapseTab\",\n    value: function _collapseTab($target) {\n      var $targetAnchor = $target.removeClass(\"\".concat(this.options.linkActiveClass)).find('[role=\"tab\"]').attr({\n        'aria-selected': 'false',\n        'tabindex': -1\n      });\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat($targetAnchor.attr('aria-controls'))).removeClass(\"\".concat(this.options.panelActiveClass)).attr({\n        'aria-hidden': 'true'\n      });\n    }\n    /**\n     * Collapses the active Tab.\n     * @fires Tabs#collapse\n     * @function\n     */\n\n  }, {\n    key: \"_collapse\",\n    value: function _collapse() {\n      var $activeTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass));\n\n      if ($activeTab.length) {\n        this._collapseTab($activeTab);\n        /**\n        * Fires when the plugin has successfully collapsed tabs.\n        * @event Tabs#collapse\n        */\n\n\n        this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n      }\n    }\n    /**\n     * Public method for selecting a content pane to display.\n     * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n     * @param {boolean} historyHandled - browser has already handled a history update\n     * @function\n     */\n\n  }, {\n    key: \"selectTab\",\n    value: function selectTab(elem, historyHandled) {\n      var idStr, hashIdStr;\n\n      if (_typeof(elem) === 'object') {\n        idStr = elem[0].id;\n      } else {\n        idStr = elem;\n      }\n\n      if (idStr.indexOf('#') < 0) {\n        hashIdStr = \"#\".concat(idStr);\n      } else {\n        hashIdStr = idStr;\n        idStr = idStr.slice(1);\n      }\n\n      var $target = this.$tabTitles.has(\"[href$=\\\"\".concat(hashIdStr, \"\\\"],[data-tabs-target=\\\"\").concat(idStr, \"\\\"]\")).first();\n\n      this._handleTabChange($target, historyHandled);\n    }\n  }, {\n    key: \"_setHeight\",\n    value:\n    /**\n     * Sets the height of each panel to the height of the tallest panel.\n     * If enabled in options, gets called on media query change.\n     * If loading content via external source, can be called directly or with _reflow.\n     * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n     * @function\n     * @private\n     */\n    function _setHeight() {\n      var max = 0,\n          _this = this; // Lock down the `this` value for the root tabs object\n\n\n      if (!this.$tabContent) {\n        return;\n      }\n\n      this.$tabContent.find(\".\".concat(this.options.panelClass)).css('min-height', '').each(function () {\n        var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n            isActive = panel.hasClass(\"\".concat(_this.options.panelActiveClass)); // get the options from the parent instead of trying to get them from the child\n\n        if (!isActive) {\n          panel.css({\n            'visibility': 'hidden',\n            'display': 'block'\n          });\n        }\n\n        var temp = this.getBoundingClientRect().height;\n\n        if (!isActive) {\n          panel.css({\n            'visibility': '',\n            'display': ''\n          });\n        }\n\n        max = temp > max ? temp : max;\n      }).css('min-height', \"\".concat(max, \"px\"));\n    }\n    /**\n     * Destroys an instance of tabs.\n     * @fires Tabs#destroyed\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.find(\".\".concat(this.options.linkClass)).off('.zf.tabs').hide().end().find(\".\".concat(this.options.panelClass)).hide();\n\n      if (this.options.matchHeight) {\n        if (this._setHeightMqHandler != null) {\n          jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n        }\n      }\n\n      if (this.options.deepLink) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._checkDeepLink);\n      }\n\n      if (this.onLoadListener) {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n      }\n    }\n  }]);\n\n  return Tabs;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nTabs.defaults = {\n  /**\n   * Link the location hash to the active pane.\n   * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLink: false,\n\n  /**\n   * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  deepLinkSmudge: false,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 300\n   */\n  deepLinkSmudgeDelay: 300,\n\n  /**\n   * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  deepLinkSmudgeOffset: 0,\n\n  /**\n   * If `deepLink` is enabled, update the browser history with the open tab\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  updateHistory: false,\n\n  /**\n   * Allows the window to scroll to content of active pane on load.\n   * Not recommended if more than one tab panel per page.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  autoFocus: false,\n\n  /**\n   * Allows keyboard input to 'wrap' around the tab links.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  wrapOnKeys: true,\n\n  /**\n   * Allows the tab content panes to match heights if set to true.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  matchHeight: false,\n\n  /**\n   * Allows active tabs to collapse when clicked.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  activeCollapse: false,\n\n  /**\n   * Class applied to `li`'s in tab link list.\n   * @option\n   * @type {string}\n   * @default 'tabs-title'\n   */\n  linkClass: 'tabs-title',\n\n  /**\n   * Class applied to the active `li` in tab link list.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  linkActiveClass: 'is-active',\n\n  /**\n   * Class applied to the content containers.\n   * @option\n   * @type {string}\n   * @default 'tabs-panel'\n   */\n  panelClass: 'tabs-panel',\n\n  /**\n   * Class applied to the active content container.\n   * @option\n   * @type {string}\n   * @default 'is-active'\n   */\n  panelActiveClass: 'is-active'\n};\n\n\n/***/ }),\n\n/***/ 18:\n/*!*****************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.tabs.js ***!\n  \\*****************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.tabs.js */\"./js/entries/plugins/foundation.tabs.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.tabs.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.imageLoader","./foundation.util.keyboard","./js/entries/plugins/foundation.tabs.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_tabs__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.tabs.js","Tabs","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","_init","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","$images","_this2","_this","_isInitializing","attr","role","$tabTitles","find","concat","linkClass","$tabContent","id","each","$elem","$link","isActive","hasClass","linkActiveClass","hash","slice","linkId","aria-controls","aria-selected","tabindex","aria-labelledby","_initialAnchor","autoFocus","onLoadListener","animate","scrollTop","offset","top","deepLinkSmudgeDelay","focus","matchHeight","_setHeight","bind","_checkDeepLink","anchor","location","anchorNoHash","indexOf","$anchor","first","selectTab","_collapse","deepLinkSmudge","deepLinkSmudgeOffset","trigger","deepLink","_events","_addKeyHandler","_addClickHandler","_setHeightMqHandler","on","off","preventDefault","_handleTabChange","$elements","$prevElement","$nextElement","which","parent","children","is","wrapOnKeys","last","eq","Math","max","min","handleKey","open","previous","next","handled","$target","historyHandled","$oldTab","$targetContent","activeCollapse","$tabLink","_collapseTab","_openTab","updateHistory","history","pushState","replaceState","addClass","panelActiveClass","removeAttr","$targetAnchor","removeClass","aria-hidden","$activeTab","elem","hashIdStr","idStr","has","panelClass","css","panel","visibility","display","temp","getBoundingClientRect","height","hide","end","18","jquery","installedModules","m","c","name","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index b853bd4520046bb210ac8c91a583d87a5b630961..748956aae3cafac659f15b8b6fa9a240db0966dc 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.toggler.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.toggler.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_toggler__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Toggler","Plugin","element","options","this","$element","$","extend","defaults","data","className","Triggers","init","_init","_events","input","id","$triggers","concat","animate","split","animationIn","animationOut","attr","is","toggler","length","Error","slice","hasClass","each","index","trigger","$trigger","controls","RegExp","RegExpEscape","test","off","on","toggle","bind","toggleClass","isOn","_updateARIA","find","_this","Motion","animateIn","animateOut","aria-expanded","undefined","triggers","el","type","forEach","MutationObserver","prefixes","i","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","prototype","call","arguments","clearTimeout","setTimeout","apply","openListener","closeListener","toggleListener","closeableListener","e","animation","stopPropagation","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","_typeof","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","target","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","onLoad","a","triggersInitialized","IHearYou","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","n","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.toggler.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.toggler\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.toggler\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Toggler } from '../../foundation.toggler';\nFoundation.plugin(Toggler, 'Toggler');\n\nexport { Foundation, Toggler };\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n  /**\n   * Creates a new instance of Toggler.\n   * @class\n   * @name Toggler\n   * @fires Toggler#init\n   * @param {Object} element - jQuery object to add the trigger to.\n   * @param {Object} options - Overrides to the default plugin settings.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Toggler.defaults, element.data(), options);\n    this.className = '';\n    this.className = 'Toggler'; // ie9 back compat\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n    this._events();\n  }\n\n  /**\n   * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n   * @function\n   * @private\n   */\n  _init() {\n    // Collect triggers to set ARIA attributes to\n    var id = this.$element[0].id,\n      $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n    var input;\n    // Parse animation classes if they were set\n    if (this.options.animate) {\n      input = this.options.animate.split(' ');\n\n      this.animationIn = input[0];\n      this.animationOut = input[1] || null;\n\n      // - aria-expanded: according to the element visibility.\n      $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n    }\n    // Otherwise, parse toggle class\n    else {\n      input = this.options.toggler;\n      if (typeof input !== 'string' || !input.length) {\n        throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n      }\n      // Allow for a . at the beginning of the string\n      this.className = input[0] === '.' ? input.slice(1) : input;\n\n      // - aria-expanded: according to the elements class set.\n      $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n    }\n\n    // - aria-controls: adding the element id to it if not already in it.\n    $triggers.each((index, trigger) => {\n      const $trigger = $(trigger);\n      const controls = $trigger.attr('aria-controls') || '';\n\n      const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n      if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n    });\n  }\n\n  /**\n   * Initializes events for the toggle trigger.\n   * @function\n   * @private\n   */\n  _events() {\n    this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n  }\n\n  /**\n   * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n   * @function\n   * @fires Toggler#on\n   * @fires Toggler#off\n   */\n  toggle() {\n    this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n  }\n\n  _toggleClass() {\n    this.$element.toggleClass(this.className);\n\n    var isOn = this.$element.hasClass(this.className);\n    if (isOn) {\n      /**\n       * Fires if the target element has the class after a toggle.\n       * @event Toggler#on\n       */\n      this.$element.trigger('on.zf.toggler');\n    }\n    else {\n      /**\n       * Fires if the target element does not have the class after a toggle.\n       * @event Toggler#off\n       */\n      this.$element.trigger('off.zf.toggler');\n    }\n\n    this._updateARIA(isOn);\n    this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n  }\n\n  _toggleAnimate() {\n    var _this = this;\n\n    if (this.$element.is(':hidden')) {\n      Motion.animateIn(this.$element, this.animationIn, function() {\n        _this._updateARIA(true);\n        this.trigger('on.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n    else {\n      Motion.animateOut(this.$element, this.animationOut, function() {\n        _this._updateARIA(false);\n        this.trigger('off.zf.toggler');\n        this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n      });\n    }\n  }\n\n  _updateARIA(isOn) {\n    var id = this.$element[0].id;\n    $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n      .attr({\n        'aria-expanded': isOn ? true : false\n      });\n  }\n\n  /**\n   * Destroys the instance of Toggler on the element.\n   * @function\n   */\n  _destroy() {\n    this.$element.off('.zf.toggler');\n  }\n}\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.toggler.min.js","sources":["foundation.toggler.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.toggler\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.toggler\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 19);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.toggler.js\":\n/*!**************************************************!*\\\n  !*** ./js/entries/plugins/foundation.toggler.js ***!\n  \\**************************************************/\n/*! exports provided: Foundation, Toggler */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_toggler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.toggler */ \"./js/foundation.toggler.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Toggler\", function() { return _foundation_toggler__WEBPACK_IMPORTED_MODULE_1__[\"Toggler\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_toggler__WEBPACK_IMPORTED_MODULE_1__[\"Toggler\"], 'Toggler');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.toggler.js\":\n/*!**********************************!*\\\n  !*** ./js/foundation.toggler.js ***!\n  \\**********************************/\n/*! exports provided: Toggler */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Toggler\", function() { return Toggler; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nvar Toggler = /*#__PURE__*/function (_Plugin) {\n  _inherits(Toggler, _Plugin);\n\n  var _super = _createSuper(Toggler);\n\n  function Toggler() {\n    _classCallCheck(this, Toggler);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Toggler, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of Toggler.\n     * @class\n     * @name Toggler\n     * @fires Toggler#init\n     * @param {Object} element - jQuery object to add the trigger to.\n     * @param {Object} options - Overrides to the default plugin settings.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Toggler.defaults, element.data(), options);\n      this.className = '';\n      this.className = 'Toggler'; // ie9 back compat\n      // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n\n      this._events();\n    }\n    /**\n     * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      // Collect triggers to set ARIA attributes to\n      var id = this.$element[0].id,\n          $triggers = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open~=\\\"\".concat(id, \"\\\"], [data-close~=\\\"\").concat(id, \"\\\"], [data-toggle~=\\\"\").concat(id, \"\\\"]\"));\n      var input; // Parse animation classes if they were set\n\n      if (this.options.animate) {\n        input = this.options.animate.split(' ');\n        this.animationIn = input[0];\n        this.animationOut = input[1] || null; // - aria-expanded: according to the element visibility.\n\n        $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n      } // Otherwise, parse toggle class\n      else {\n        input = this.options.toggler;\n\n        if (typeof input !== 'string' || !input.length) {\n          throw new Error(\"The 'toggler' option containing the target class is required, got \\\"\".concat(input, \"\\\"\"));\n        } // Allow for a . at the beginning of the string\n\n\n        this.className = input[0] === '.' ? input.slice(1) : input; // - aria-expanded: according to the elements class set.\n\n        $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n      } // - aria-controls: adding the element id to it if not already in it.\n\n\n      $triggers.each(function (index, trigger) {\n        var $trigger = jquery__WEBPACK_IMPORTED_MODULE_0___default()(trigger);\n        var controls = $trigger.attr('aria-controls') || '';\n        var containsId = new RegExp(\"\\\\b\".concat(Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"RegExpEscape\"])(id), \"\\\\b\")).test(controls);\n        if (!containsId) $trigger.attr('aria-controls', controls ? \"\".concat(controls, \" \").concat(id) : id);\n      });\n    }\n    /**\n     * Initializes events for the toggle trigger.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n    }\n    /**\n     * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n     * @function\n     * @fires Toggler#on\n     * @fires Toggler#off\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      this[this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n    }\n  }, {\n    key: \"_toggleClass\",\n    value: function _toggleClass() {\n      this.$element.toggleClass(this.className);\n      var isOn = this.$element.hasClass(this.className);\n\n      if (isOn) {\n        /**\n         * Fires if the target element has the class after a toggle.\n         * @event Toggler#on\n         */\n        this.$element.trigger('on.zf.toggler');\n      } else {\n        /**\n         * Fires if the target element does not have the class after a toggle.\n         * @event Toggler#off\n         */\n        this.$element.trigger('off.zf.toggler');\n      }\n\n      this._updateARIA(isOn);\n\n      this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n    }\n  }, {\n    key: \"_toggleAnimate\",\n    value: function _toggleAnimate() {\n      var _this = this;\n\n      if (this.$element.is(':hidden')) {\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"].animateIn(this.$element, this.animationIn, function () {\n          _this._updateARIA(true);\n\n          this.trigger('on.zf.toggler');\n          this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        });\n      } else {\n        _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"].animateOut(this.$element, this.animationOut, function () {\n          _this._updateARIA(false);\n\n          this.trigger('off.zf.toggler');\n          this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n        });\n      }\n    }\n  }, {\n    key: \"_updateARIA\",\n    value: function _updateARIA(isOn) {\n      var id = this.$element[0].id;\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(id, \"\\\"], [data-close=\\\"\").concat(id, \"\\\"], [data-toggle=\\\"\").concat(id, \"\\\"]\")).attr({\n        'aria-expanded': isOn ? true : false\n      });\n    }\n    /**\n     * Destroys the instance of Toggler on the element.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.off('.zf.toggler');\n    }\n  }]);\n\n  return Toggler;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]);\n\nToggler.defaults = {\n  /**\n   * Class of the element to toggle. It can be provided with or without \".\"\n   * @option\n   * @type {string}\n   */\n  toggler: undefined,\n\n  /**\n   * Tells the plugin if the element should animated when toggled.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  animate: false\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 19:\n/*!********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.toggler.js ***!\n  \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.toggler.js */\"./js/entries/plugins/foundation.toggler.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.toggler.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.motion","./js/entries/plugins/foundation.toggler.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_toggler__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.toggler.js","Toggler","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","element","options","$element","a","extend","defaults","data","className","init","_init","_events","input","id","$triggers","concat","animate","split","animationIn","animationOut","attr","is","toggler","Error","slice","hasClass","each","index","trigger","$trigger","controls","RegExp","test","off","on","toggle","bind","toggleClass","isOn","_updateARIA","find","_this","animateIn","animateOut","aria-expanded","undefined","./js/foundation.util.triggers.js","Triggers","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","el","type","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","clearTimeout","setTimeout","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","push","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","19","jquery","installedModules","m","c","getter","get","toStringTag","t","mode","__esModule","ns","object","property","hasOwnProperty","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index 396c7d8772b601899b85180241eb635e9f3d714c..811cba2189d09f60f621ec771c3ded2544a2e7f2 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.tooltip.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.positionable.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.tooltip.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__","Foundation","plugin","Tooltip","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","top","bottom","nextItem","item","array","currentIdx","indexOf","length","Positionable","Plugin","this","triedPositions","position","options","_getDefaultPosition","alignment","_getDefaultAlignment","originalPosition","originalAlignment","Rtl","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","i","vOffset","hOffset","$anchor","$element","$parent","attr","allowOverlap","offset","Box","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","allowBottomOverlap","_reposition","defaults","element","$","extend","data","className","isActive","isClick","Triggers","init","_init","MediaQuery","elemId","GetYoDigits","tipText","template","_buildTemplate","allowHtml","appendTo","document","body","html","text","hide","title","aria-describedby","data-yeti-box","data-toggle","data-resize","addClass","triggerClass","_get","_getPrototypeOf","prototype","call","_events","elementClassName","SVGElement","baseVal","match","tooltipWidth","tooltipHeight","id","templateClasses","concat","tooltipClass","trim","role","aria-hidden","data-is-active","data-is-focus","showOn","is","css","show","_setPosition","removeClass","trigger","_this","stop","fadeOut","fadeOutDuration","ontouchstart","$template","disableForTouch","hasTouch","on","disableHover","hoverDelay","Object","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","clearTimeout","isFocus","ignoreMousedisappear","clickOpen","close.zf.trigger","bind","key","fadeInDuration","touchCloseText","triggers","el","type","split","forEach","MutationObserver","prefixes","Listeners","Basic","debounceGlobalListener","debounce","listener","timer","jquery__WEBPACK_IMPORTED_MODULE_0___default","args","apply","Initializers","openListener","animation","closeableListener","stopPropagation","animateOut","triggerHandler","addOpenListener","$elem","off","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","Global","resizeListener","$nodes","scrollListener","e","namespace","not","pluginId","closeMeListener","plugins","each","addClosemeListener","pluginName","yetiBoxes","plugNames","console","error","listeners","map","name","addResizeListener","addScrollListener","addMutationEventsListener","mutationRecordsList","target","listeningElementsMutation","$target","pageYOffset","attributeName","closest","find","observe","attributes","childList","elementObserver","addSimpleListeners","$document","addGlobalListeners","onLoad","a","triggersInitialized","installedModules","m","modules","c","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","n","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.tooltip.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.tooltip\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tooltip\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\n\nimport { Tooltip } from '../../foundation.tooltip';\nFoundation.plugin(Tooltip, 'Tooltip');\n\nexport { Foundation, Tooltip };\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n  if(currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\n\nclass Positionable extends Plugin {\n  /**\n   * Abstract class encapsulating the tether-like explicit positioning logic\n   * including repositioning based on overlap.\n   * Expects classes to define defaults for vOffset, hOffset, position,\n   * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n   * extending the defaults, or (for now recommended due to the way docs are\n   * generated) by explicitly declaring them.\n   *\n   **/\n\n  _init() {\n    this.triedPositions = {};\n    this.position  = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n    this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n    this.originalPosition = this.position;\n    this.originalAlignment = this.alignment;\n  }\n\n  _getDefaultPosition () {\n    return 'bottom';\n  }\n\n  _getDefaultAlignment() {\n    switch(this.position) {\n      case 'bottom':\n      case 'top':\n        return Rtl() ? 'right' : 'left';\n      case 'left':\n      case 'right':\n        return 'bottom';\n    }\n  }\n\n  /**\n   * Adjusts the positionable possible positions by iterating through alignments\n   * and positions.\n   * @function\n   * @private\n   */\n  _reposition() {\n    if(this._alignmentsExhausted(this.position)) {\n      this.position = nextItem(this.position, POSITIONS);\n      this.alignment = ALIGNMENTS[this.position][0];\n    } else {\n      this._realign();\n    }\n  }\n\n  /**\n   * Adjusts the dropdown pane possible positions by iterating through alignments\n   * on the current position.\n   * @function\n   * @private\n   */\n  _realign() {\n    this._addTriedPosition(this.position, this.alignment)\n    this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n  }\n\n  _addTriedPosition(position, alignment) {\n    this.triedPositions[position] = this.triedPositions[position] || []\n    this.triedPositions[position].push(alignment);\n  }\n\n  _positionsExhausted() {\n    var isExhausted = true;\n    for(var i = 0; i < POSITIONS.length; i++) {\n      isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n    }\n    return isExhausted;\n  }\n\n  _alignmentsExhausted(position) {\n    return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;\n  }\n\n\n  // When we're trying to center, we don't want to apply offset that's going to\n  // take us just off center, so wrap around to return 0 for the appropriate\n  // offset in those alignments.  TODO: Figure out if we want to make this\n  // configurable behavior... it feels more intuitive, especially for tooltips, but\n  // it's possible someone might actually want to start from center and then nudge\n  // slightly off.\n  _getVOffset() {\n    return this.options.vOffset;\n  }\n\n  _getHOffset() {\n    return this.options.hOffset;\n  }\n\n  _setPosition($anchor, $element, $parent) {\n    if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n    if (!this.options.allowOverlap) {\n      // restore original position & alignment before checking overlap\n      this.position = this.originalPosition;\n      this.alignment = this.originalAlignment;\n    }\n\n    $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n    if(!this.options.allowOverlap) {\n      var minOverlap = 100000000;\n      // default coordinates to how we start, in case we can't figure out better\n      var minCoordinates = {position: this.position, alignment: this.alignment};\n      while(!this._positionsExhausted()) {\n        let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n        if(overlap === 0) {\n          return;\n        }\n\n        if(overlap < minOverlap) {\n          minOverlap = overlap;\n          minCoordinates = {position: this.position, alignment: this.alignment};\n        }\n\n        this._reposition();\n\n        $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n      // If we get through the entire loop, there was no non-overlapping\n      // position available. Pick the version with least overlap.\n      this.position = minCoordinates.position;\n      this.alignment = minCoordinates.alignment;\n      $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n    }\n  }\n\n}\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n  /**\n   * Creates a new instance of a Tooltip.\n   * @class\n   * @name Tooltip\n   * @fires Tooltip#init\n   * @param {jQuery} element - jQuery object to attach a tooltip to.\n   * @param {Object} options - object to extend the default configuration.\n   */\n  _setup(element, options) {\n    this.$element = element;\n    this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n    this.className = 'Tooltip'; // ie9 back compat\n\n    this.isActive = false;\n    this.isClick = false;\n\n    // Triggers init is idempotent, just need to make sure it is initialized\n    Triggers.init($);\n\n    this._init();\n  }\n\n  /**\n   * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n   * @private\n   */\n  _init() {\n    MediaQuery._init();\n    var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n    this.options.tipText = this.options.tipText || this.$element.attr('title');\n    this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n    if (this.options.allowHtml) {\n      this.template.appendTo(document.body)\n        .html(this.options.tipText)\n        .hide();\n    } else {\n      this.template.appendTo(document.body)\n        .text(this.options.tipText)\n        .hide();\n    }\n\n    this.$element.attr({\n      'title': '',\n      'aria-describedby': elemId,\n      'data-yeti-box': elemId,\n      'data-toggle': elemId,\n      'data-resize': elemId\n    }).addClass(this.options.triggerClass);\n\n    super._init();\n    this._events();\n  }\n\n  _getDefaultPosition() {\n    // handle legacy classnames\n    var elementClassName = this.$element[0].className;\n    if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n    }\n    var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n    return position ? position[0] : 'top';\n  }\n\n  _getDefaultAlignment() {\n    return 'center';\n  }\n\n  _getHOffset() {\n    if(this.position === 'left' || this.position === 'right') {\n      return this.options.hOffset + this.options.tooltipWidth;\n    } else {\n      return this.options.hOffset\n    }\n  }\n\n  _getVOffset() {\n    if(this.position === 'top' || this.position === 'bottom') {\n      return this.options.vOffset + this.options.tooltipHeight;\n    } else {\n      return this.options.vOffset\n    }\n  }\n\n  /**\n   * builds the tooltip element, adds attributes, and returns the template.\n   * @private\n   */\n  _buildTemplate(id) {\n    var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n    var $template =  $('<div></div>').addClass(templateClasses).attr({\n      'role': 'tooltip',\n      'aria-hidden': true,\n      'data-is-active': false,\n      'data-is-focus': false,\n      'id': id\n    });\n    return $template;\n  }\n\n  /**\n   * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n   * if the tooltip is larger than the screen width, default to full width - any user selected margin\n   * @private\n   */\n  _setPosition() {\n    super._setPosition(this.$element, this.template);\n  }\n\n  /**\n   * reveals the tooltip, and fires an event to close any other open tooltips on the page\n   * @fires Tooltip#closeme\n   * @fires Tooltip#show\n   * @function\n   */\n  show() {\n    if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n      // console.error('The screen is too small to display this tooltip');\n      return false;\n    }\n\n    var _this = this;\n    this.template.css('visibility', 'hidden').show();\n    this._setPosition();\n    this.template.removeClass('top bottom left right').addClass(this.position)\n    this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n    /**\n     * Fires to close all other open tooltips on the page\n     * @event Closeme#tooltip\n     */\n    this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n    this.template.attr({\n      'data-is-active': true,\n      'aria-hidden': false\n    });\n    _this.isActive = true;\n    // console.log(this.template);\n    this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n      //maybe do stuff?\n    });\n    /**\n     * Fires when the tooltip is shown\n     * @event Tooltip#show\n     */\n    this.$element.trigger('show.zf.tooltip');\n  }\n\n  /**\n   * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n   * @fires Tooltip#hide\n   * @function\n   */\n  hide() {\n    // console.log('hiding', this.$element.data('yeti-box'));\n    var _this = this;\n    this.template.stop().attr({\n      'aria-hidden': true,\n      'data-is-active': false\n    }).fadeOut(this.options.fadeOutDuration, function() {\n      _this.isActive = false;\n      _this.isClick = false;\n    });\n    /**\n     * fires when the tooltip is hidden\n     * @event Tooltip#hide\n     */\n    this.$element.trigger('hide.zf.tooltip');\n  }\n\n  /**\n   * adds event listeners for the tooltip and its anchor\n   * TODO combine some of the listeners like focus and mouseenter, etc.\n   * @private\n   */\n  _events() {\n    const _this = this;\n    const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n    const $template = this.template;\n    var isFocus = false;\n\n    // `disableForTouch: Fully disable the tooltip on touch devices\n    if (hasTouch && this.options.disableForTouch) return;\n\n    if (!this.options.disableHover) {\n      this.$element\n      .on('mouseenter.zf.tooltip', function(e) {\n        if (!_this.isActive) {\n          _this.timeout = setTimeout(function() {\n            _this.show();\n          }, _this.options.hoverDelay);\n        }\n      })\n      .on('mouseleave.zf.tooltip', ignoreMousedisappear(function(e) {\n        clearTimeout(_this.timeout);\n        if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n          _this.hide();\n        }\n      }));\n    }\n\n    if (hasTouch) {\n      this.$element\n      .on('tap.zf.tooltip touchend.zf.tooltip', function (e) {\n        _this.isActive ? _this.hide() : _this.show();\n      });\n    }\n\n    if (this.options.clickOpen) {\n      this.$element.on('mousedown.zf.tooltip', function(e) {\n        if (_this.isClick) {\n          //_this.hide();\n          // _this.isClick = false;\n        } else {\n          _this.isClick = true;\n          if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n            _this.show();\n          }\n        }\n      });\n    } else {\n      this.$element.on('mousedown.zf.tooltip', function(e) {\n        _this.isClick = true;\n      });\n    }\n\n    this.$element.on({\n      // 'toggle.zf.trigger': this.toggle.bind(this),\n      // 'close.zf.trigger': this.hide.bind(this)\n      'close.zf.trigger': this.hide.bind(this)\n    });\n\n    this.$element\n      .on('focus.zf.tooltip', function(e) {\n        isFocus = true;\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if(!_this.options.clickOpen) { isFocus = false; }\n          return false;\n        } else {\n          _this.show();\n        }\n      })\n\n      .on('focusout.zf.tooltip', function(e) {\n        isFocus = false;\n        _this.isClick = false;\n        _this.hide();\n      })\n\n      .on('resizeme.zf.trigger', function() {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n  }\n\n  /**\n   * adds a toggle method, in addition to the static show() & hide() functions\n   * @function\n   */\n  toggle() {\n    if (this.isActive) {\n      this.hide();\n    } else {\n      this.show();\n    }\n  }\n\n  /**\n   * Destroys an instance of tooltip, removes template element from the view.\n   * @function\n   */\n  _destroy() {\n    this.$element.attr('title', this.template.text())\n                 .off('.zf.trigger .zf.tooltip')\n                 .removeClass(this.options.triggerClass)\n                 .removeClass('top right left bottom')\n                 .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n    this.template.remove();\n  }\n}\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n    /**\n   * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n   * allowing HTML may open yourself up to XSS attacks.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 20);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.tooltip.min.js","sources":["foundation.tooltip.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.tooltip\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tooltip\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.box\":\n/*!********************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"} ***!\n  \\********************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;\n\n/***/ }),\n\n/***/ \"./foundation.util.mediaQuery\":\n/*!************************************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n  \\************************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.tooltip.js\":\n/*!**************************************************!*\\\n  !*** ./js/entries/plugins/foundation.tooltip.js ***!\n  \\**************************************************/\n/*! exports provided: Foundation, Tooltip */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.tooltip */ \"./js/foundation.tooltip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tooltip\", function() { return _foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__[\"Tooltip\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__[\"Tooltip\"], 'Tooltip');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.positionable.js\":\n/*!***************************************!*\\\n  !*** ./js/foundation.positionable.js ***!\n  \\***************************************/\n/*! exports provided: Positionable */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Positionable\", function() { return Positionable; });\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.util.box */ \"./foundation.util.box\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar POSITIONS = ['left', 'right', 'top', 'bottom'];\nvar VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nvar HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\nvar ALIGNMENTS = {\n  'left': VERTICAL_ALIGNMENTS,\n  'right': VERTICAL_ALIGNMENTS,\n  'top': HORIZONTAL_ALIGNMENTS,\n  'bottom': HORIZONTAL_ALIGNMENTS\n};\n\nfunction nextItem(item, array) {\n  var currentIdx = array.indexOf(item);\n\n  if (currentIdx === array.length - 1) {\n    return array[0];\n  } else {\n    return array[currentIdx + 1];\n  }\n}\n\nvar Positionable = /*#__PURE__*/function (_Plugin) {\n  _inherits(Positionable, _Plugin);\n\n  var _super = _createSuper(Positionable);\n\n  function Positionable() {\n    _classCallCheck(this, Positionable);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Positionable, [{\n    key: \"_init\",\n    value:\n    /**\n     * Abstract class encapsulating the tether-like explicit positioning logic\n     * including repositioning based on overlap.\n     * Expects classes to define defaults for vOffset, hOffset, position,\n     * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n     * extending the defaults, or (for now recommended due to the way docs are\n     * generated) by explicitly declaring them.\n     *\n     **/\n    function _init() {\n      this.triedPositions = {};\n      this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n      this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n      this.originalPosition = this.position;\n      this.originalAlignment = this.alignment;\n    }\n  }, {\n    key: \"_getDefaultPosition\",\n    value: function _getDefaultPosition() {\n      return 'bottom';\n    }\n  }, {\n    key: \"_getDefaultAlignment\",\n    value: function _getDefaultAlignment() {\n      switch (this.position) {\n        case 'bottom':\n        case 'top':\n          return Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])() ? 'right' : 'left';\n\n        case 'left':\n        case 'right':\n          return 'bottom';\n      }\n    }\n    /**\n     * Adjusts the positionable possible positions by iterating through alignments\n     * and positions.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_reposition\",\n    value: function _reposition() {\n      if (this._alignmentsExhausted(this.position)) {\n        this.position = nextItem(this.position, POSITIONS);\n        this.alignment = ALIGNMENTS[this.position][0];\n      } else {\n        this._realign();\n      }\n    }\n    /**\n     * Adjusts the dropdown pane possible positions by iterating through alignments\n     * on the current position.\n     * @function\n     * @private\n     */\n\n  }, {\n    key: \"_realign\",\n    value: function _realign() {\n      this._addTriedPosition(this.position, this.alignment);\n\n      this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position]);\n    }\n  }, {\n    key: \"_addTriedPosition\",\n    value: function _addTriedPosition(position, alignment) {\n      this.triedPositions[position] = this.triedPositions[position] || [];\n      this.triedPositions[position].push(alignment);\n    }\n  }, {\n    key: \"_positionsExhausted\",\n    value: function _positionsExhausted() {\n      var isExhausted = true;\n\n      for (var i = 0; i < POSITIONS.length; i++) {\n        isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n      }\n\n      return isExhausted;\n    }\n  }, {\n    key: \"_alignmentsExhausted\",\n    value: function _alignmentsExhausted(position) {\n      return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n    } // When we're trying to center, we don't want to apply offset that's going to\n    // take us just off center, so wrap around to return 0 for the appropriate\n    // offset in those alignments.  TODO: Figure out if we want to make this\n    // configurable behavior... it feels more intuitive, especially for tooltips, but\n    // it's possible someone might actually want to start from center and then nudge\n    // slightly off.\n\n  }, {\n    key: \"_getVOffset\",\n    value: function _getVOffset() {\n      return this.options.vOffset;\n    }\n  }, {\n    key: \"_getHOffset\",\n    value: function _getHOffset() {\n      return this.options.hOffset;\n    }\n  }, {\n    key: \"_setPosition\",\n    value: function _setPosition($anchor, $element, $parent) {\n      if ($anchor.attr('aria-expanded') === 'false') {\n        return false;\n      }\n\n      if (!this.options.allowOverlap) {\n        // restore original position & alignment before checking overlap\n        this.position = this.originalPosition;\n        this.alignment = this.originalAlignment;\n      }\n\n      $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n      if (!this.options.allowOverlap) {\n        var minOverlap = 100000000; // default coordinates to how we start, in case we can't figure out better\n\n        var minCoordinates = {\n          position: this.position,\n          alignment: this.alignment\n        };\n\n        while (!this._positionsExhausted()) {\n          var overlap = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n\n          if (overlap === 0) {\n            return;\n          }\n\n          if (overlap < minOverlap) {\n            minOverlap = overlap;\n            minCoordinates = {\n              position: this.position,\n              alignment: this.alignment\n            };\n          }\n\n          this._reposition();\n\n          $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n        } // If we get through the entire loop, there was no non-overlapping\n        // position available. Pick the version with least overlap.\n\n\n        this.position = minCoordinates.position;\n        this.alignment = minCoordinates.alignment;\n        $element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__[\"Box\"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n      }\n    }\n  }]);\n\n  return Positionable;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\nPositionable.defaults = {\n  /**\n   * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n\n  /**\n   * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow overlap of container/window. If false, dropdown positionable first\n   * try to position as defined by data-position and data-alignment, but\n   * reposition if it would cause an overflow.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  allowBottomOverlap: true,\n\n  /**\n   * Number of pixels the positionable should be separated vertically from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n\n  /**\n   * Number of pixels the positionable should be separated horizontally from anchor\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0\n};\n\n\n/***/ }),\n\n/***/ \"./js/foundation.tooltip.js\":\n/*!**********************************!*\\\n  !*** ./js/foundation.tooltip.js ***!\n  \\**********************************/\n/*! exports provided: Tooltip */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Tooltip\", function() { return Tooltip; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.mediaQuery */ \"./foundation.util.mediaQuery\");\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n/* harmony import */ var _foundation_positionable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.positionable */ \"./js/foundation.positionable.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nvar Tooltip = /*#__PURE__*/function (_Positionable) {\n  _inherits(Tooltip, _Positionable);\n\n  var _super = _createSuper(Tooltip);\n\n  function Tooltip() {\n    _classCallCheck(this, Tooltip);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Tooltip, [{\n    key: \"_setup\",\n    value:\n    /**\n     * Creates a new instance of a Tooltip.\n     * @class\n     * @name Tooltip\n     * @fires Tooltip#init\n     * @param {jQuery} element - jQuery object to attach a tooltip to.\n     * @param {Object} options - object to extend the default configuration.\n     */\n    function _setup(element, options) {\n      this.$element = element;\n      this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Tooltip.defaults, this.$element.data(), options);\n      this.className = 'Tooltip'; // ie9 back compat\n\n      this.isActive = false;\n      this.isClick = false; // Triggers init is idempotent, just need to make sure it is initialized\n\n      _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n      this._init();\n    }\n    /**\n     * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n     * @private\n     */\n\n  }, {\n    key: \"_init\",\n    value: function _init() {\n      _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n      var elemId = this.$element.attr('aria-describedby') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, 'tooltip');\n      this.options.tipText = this.options.tipText || this.$element.attr('title');\n      this.template = this.options.template ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.template) : this._buildTemplate(elemId);\n\n      if (this.options.allowHtml) {\n        this.template.appendTo(document.body).html(this.options.tipText).hide();\n      } else {\n        this.template.appendTo(document.body).text(this.options.tipText).hide();\n      }\n\n      this.$element.attr({\n        'title': '',\n        'aria-describedby': elemId,\n        'data-yeti-box': elemId,\n        'data-toggle': elemId,\n        'data-resize': elemId\n      }).addClass(this.options.triggerClass);\n\n      _get(_getPrototypeOf(Tooltip.prototype), \"_init\", this).call(this);\n\n      this._events();\n    }\n  }, {\n    key: \"_getDefaultPosition\",\n    value: function _getDefaultPosition() {\n      // handle legacy classnames\n      var elementClassName = this.$element[0].className;\n\n      if (this.$element[0] instanceof SVGElement) {\n        elementClassName = elementClassName.baseVal;\n      }\n\n      var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n      return position ? position[0] : 'top';\n    }\n  }, {\n    key: \"_getDefaultAlignment\",\n    value: function _getDefaultAlignment() {\n      return 'center';\n    }\n  }, {\n    key: \"_getHOffset\",\n    value: function _getHOffset() {\n      if (this.position === 'left' || this.position === 'right') {\n        return this.options.hOffset + this.options.tooltipWidth;\n      } else {\n        return this.options.hOffset;\n      }\n    }\n  }, {\n    key: \"_getVOffset\",\n    value: function _getVOffset() {\n      if (this.position === 'top' || this.position === 'bottom') {\n        return this.options.vOffset + this.options.tooltipHeight;\n      } else {\n        return this.options.vOffset;\n      }\n    }\n    /**\n     * builds the tooltip element, adds attributes, and returns the template.\n     * @private\n     */\n\n  }, {\n    key: \"_buildTemplate\",\n    value: function _buildTemplate(id) {\n      var templateClasses = \"\".concat(this.options.tooltipClass, \" \").concat(this.options.templateClasses).trim();\n      var $template = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div></div>').addClass(templateClasses).attr({\n        'role': 'tooltip',\n        'aria-hidden': true,\n        'data-is-active': false,\n        'data-is-focus': false,\n        'id': id\n      });\n      return $template;\n    }\n    /**\n     * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n     * if the tooltip is larger than the screen width, default to full width - any user selected margin\n     * @private\n     */\n\n  }, {\n    key: \"_setPosition\",\n    value: function _setPosition() {\n      _get(_getPrototypeOf(Tooltip.prototype), \"_setPosition\", this).call(this, this.$element, this.template);\n    }\n    /**\n     * reveals the tooltip, and fires an event to close any other open tooltips on the page\n     * @fires Tooltip#closeme\n     * @fires Tooltip#show\n     * @function\n     */\n\n  }, {\n    key: \"show\",\n    value: function show() {\n      if (this.options.showOn !== 'all' && !_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"].is(this.options.showOn)) {\n        // console.error('The screen is too small to display this tooltip');\n        return false;\n      }\n\n      var _this = this;\n\n      this.template.css('visibility', 'hidden').show();\n\n      this._setPosition();\n\n      this.template.removeClass('top bottom left right').addClass(this.position);\n      this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n      /**\n       * Fires to close all other open tooltips on the page\n       * @event Closeme#tooltip\n       */\n\n      this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n      this.template.attr({\n        'data-is-active': true,\n        'aria-hidden': false\n      });\n      _this.isActive = true;\n      this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function () {//maybe do stuff?\n      });\n      /**\n       * Fires when the tooltip is shown\n       * @event Tooltip#show\n       */\n\n      this.$element.trigger('show.zf.tooltip');\n    }\n    /**\n     * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n     * @fires Tooltip#hide\n     * @function\n     */\n\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      var _this = this;\n\n      this.template.stop().attr({\n        'aria-hidden': true,\n        'data-is-active': false\n      }).fadeOut(this.options.fadeOutDuration, function () {\n        _this.isActive = false;\n        _this.isClick = false;\n      });\n      /**\n       * fires when the tooltip is hidden\n       * @event Tooltip#hide\n       */\n\n      this.$element.trigger('hide.zf.tooltip');\n    }\n    /**\n     * adds event listeners for the tooltip and its anchor\n     * TODO combine some of the listeners like focus and mouseenter, etc.\n     * @private\n     */\n\n  }, {\n    key: \"_events\",\n    value: function _events() {\n      var _this = this;\n\n      var hasTouch = 'ontouchstart' in window || typeof window.ontouchstart !== 'undefined';\n      var isFocus = false; // `disableForTouch: Fully disable the tooltip on touch devices\n\n      if (hasTouch && this.options.disableForTouch) return;\n\n      if (!this.options.disableHover) {\n        this.$element.on('mouseenter.zf.tooltip', function () {\n          if (!_this.isActive) {\n            _this.timeout = setTimeout(function () {\n              _this.show();\n            }, _this.options.hoverDelay);\n          }\n        }).on('mouseleave.zf.tooltip', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"ignoreMousedisappear\"])(function () {\n          clearTimeout(_this.timeout);\n\n          if (!isFocus || _this.isClick && !_this.options.clickOpen) {\n            _this.hide();\n          }\n        }));\n      }\n\n      if (hasTouch) {\n        this.$element.on('tap.zf.tooltip touchend.zf.tooltip', function () {\n          _this.isActive ? _this.hide() : _this.show();\n        });\n      }\n\n      if (this.options.clickOpen) {\n        this.$element.on('mousedown.zf.tooltip', function () {\n          if (_this.isClick) {//_this.hide();\n            // _this.isClick = false;\n          } else {\n            _this.isClick = true;\n\n            if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n              _this.show();\n            }\n          }\n        });\n      } else {\n        this.$element.on('mousedown.zf.tooltip', function () {\n          _this.isClick = true;\n        });\n      }\n\n      this.$element.on({\n        // 'toggle.zf.trigger': this.toggle.bind(this),\n        // 'close.zf.trigger': this.hide.bind(this)\n        'close.zf.trigger': this.hide.bind(this)\n      });\n      this.$element.on('focus.zf.tooltip', function () {\n        isFocus = true;\n\n        if (_this.isClick) {\n          // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n          // a real focus, otherwise on hover and come back we get bad behavior\n          if (!_this.options.clickOpen) {\n            isFocus = false;\n          }\n\n          return false;\n        } else {\n          _this.show();\n        }\n      }).on('focusout.zf.tooltip', function () {\n        isFocus = false;\n        _this.isClick = false;\n\n        _this.hide();\n      }).on('resizeme.zf.trigger', function () {\n        if (_this.isActive) {\n          _this._setPosition();\n        }\n      });\n    }\n    /**\n     * adds a toggle method, in addition to the static show() & hide() functions\n     * @function\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle() {\n      if (this.isActive) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    }\n    /**\n     * Destroys an instance of tooltip, removes template element from the view.\n     * @function\n     */\n\n  }, {\n    key: \"_destroy\",\n    value: function _destroy() {\n      this.$element.attr('title', this.template.text()).off('.zf.trigger .zf.tooltip').removeClass(this.options.triggerClass).removeClass('top right left bottom').removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n      this.template.remove();\n    }\n  }]);\n\n  return Tooltip;\n}(_foundation_positionable__WEBPACK_IMPORTED_MODULE_4__[\"Positionable\"]);\n\nTooltip.defaults = {\n  /**\n   * Time, in ms, before a tooltip should open on hover.\n   * @option\n   * @type {number}\n   * @default 200\n   */\n  hoverDelay: 200,\n\n  /**\n   * Time, in ms, a tooltip should take to fade into view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeInDuration: 150,\n\n  /**\n   * Time, in ms, a tooltip should take to fade out of view.\n   * @option\n   * @type {number}\n   * @default 150\n   */\n  fadeOutDuration: 150,\n\n  /**\n   * Disables hover events from opening the tooltip if set to true\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  disableHover: false,\n\n  /**\n   * Disable the tooltip for touch devices.\n   * This can be useful to make elements with a tooltip on it trigger their\n   * action on the first tap instead of displaying the tooltip.\n   * @option\n   * @type {booelan}\n   * @default false\n   */\n  disableForTouch: false,\n\n  /**\n   * Optional addtional classes to apply to the tooltip template on init.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  templateClasses: '',\n\n  /**\n   * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n   * @option\n   * @type {string}\n   * @default 'tooltip'\n   */\n  tooltipClass: 'tooltip',\n\n  /**\n   * Class applied to the tooltip anchor element.\n   * @option\n   * @type {string}\n   * @default 'has-tip'\n   */\n  triggerClass: 'has-tip',\n\n  /**\n   * Minimum breakpoint size at which to open the tooltip.\n   * @option\n   * @type {string}\n   * @default 'small'\n   */\n  showOn: 'small',\n\n  /**\n   * Custom template to be used to generate markup for tooltip.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  template: '',\n\n  /**\n   * Text displayed in the tooltip template on open.\n   * @option\n   * @type {string}\n   * @default ''\n   */\n  tipText: '',\n  touchCloseText: 'Tap to close.',\n\n  /**\n   * Allows the tooltip to remain open if triggered with a click or touch event.\n   * @option\n   * @type {boolean}\n   * @default true\n   */\n  clickOpen: true,\n\n  /**\n   * Position of tooltip. Can be left, right, bottom, top, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  position: 'auto',\n\n  /**\n   * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n   * @option\n   * @type {string}\n   * @default 'auto'\n   */\n  alignment: 'auto',\n\n  /**\n   * Allow overlap of container/window. If false, tooltip will first try to\n   * position as defined by data-position and data-alignment, but reposition if\n   * it would cause an overflow.  @option\n   * @type {boolean}\n   * @default false\n   */\n  allowOverlap: false,\n\n  /**\n   * Allow overlap of only the bottom of the container. This is the most common\n   * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n   * screen but not otherwise influence or break out of the container.\n   * Less common for tooltips.\n   * @option\n   * @type {boolean}\n   * @default false\n   */\n  allowBottomOverlap: false,\n\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the Y axis.\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  vOffset: 0,\n\n  /**\n   * Distance, in pixels, the template should push away from the anchor on the X axis\n   * @option\n   * @type {number}\n   * @default 0\n   */\n  hOffset: 0,\n\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n   * @option\n   * @type {number}\n   * @default 14\n   */\n  tooltipHeight: 14,\n\n  /**\n   * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n   * @option\n   * @type {number}\n   * @default 12\n   */\n  tooltipWidth: 12,\n\n  /**\n  * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n  * allowing HTML may open yourself up to XSS attacks.\n  * @option\n  * @type {boolean}\n  * @default false\n  */\n  allowHtml: false\n};\n/**\n * TODO utilize resize event trigger\n */\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 20:\n/*!********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.tooltip.js ***!\n  \\********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.tooltip.js */\"./js/entries/plugins/foundation.tooltip.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.tooltip.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.box","./foundation.util.mediaQuery","./foundation.util.motion","./js/entries/plugins/foundation.tooltip.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_tooltip__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.positionable.js","Positionable","_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","call","e","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","self","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","this","arguments","apply","getPrototypeOf","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","left","right","top","bottom","nextItem","item","array","currentIdx","indexOf","subClass","superClass","create","value","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","triedPositions","position","options","_getDefaultPosition","alignment","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","push","isExhausted","vOffset","hOffset","$anchor","$element","$parent","attr","allowOverlap","offset","GetExplicitOffsets","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","OverlapArea","allowBottomOverlap","_reposition","defaults","./js/foundation.tooltip.js","Tooltip","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_3__","_foundation_positionable__WEBPACK_IMPORTED_MODULE_4__","_get","property","receiver","get","base","object","hasOwnProperty","_superPropBase","desc","getOwnPropertyDescriptor","element","a","extend","data","className","isActive","isClick","init","_init","elemId","tipText","template","_buildTemplate","allowHtml","appendTo","document","body","html","text","hide","title","aria-describedby","data-yeti-box","data-toggle","data-resize","addClass","triggerClass","_events","elementClassName","SVGElement","baseVal","match","tooltipWidth","tooltipHeight","id","templateClasses","concat","tooltipClass","trim","role","aria-hidden","data-is-active","data-is-focus","showOn","is","css","show","_setPosition","removeClass","trigger","stop","fadeIn","fadeInDuration","_this","fadeOut","fadeOutDuration","hasTouch","ontouchstart","isFocus","disableForTouch","disableHover","on","timeout","setTimeout","hoverDelay","clearTimeout","clickOpen","close.zf.trigger","bind","off","removeAttr","remove","touchCloseText","./js/foundation.util.triggers.js","Triggers","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","triggers","el","type","split","forEach","MutationObserver","prefixes","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","timer","args","Array","slice","openListener","closeListener","toggleListener","closeableListener","animation","stopPropagation","animateOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","scrollListener","closeMeListener","pluginId","namespace","not","addClosemeListener","pluginName","yetiBoxes","plugNames","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","attributeName","pageYOffset","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","Foundation","triggersInitialized","IHearYou","20","jquery","installedModules","m","c","getter","toStringTag","t","mode","__esModule","ns","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index c4c24f752e18b12a88f4a2269afd362cea3937b3..0c7882d0d134fd98cfe90faf6ad8ce9aeaffd1a3 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.box.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.box.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_box__WEBPACK_IMPORTED_MODULE_1__","Foundation","Box","ImNotTouchingYou","element","parent","lrOnly","tbOnly","ignoreBottom","OverlapArea","GetDimensions","GetExplicitOffsets","anchor","position","alignment","vOffset","hOffset","isOverflow","topVal","leftVal","$eleDims","$anchorDims","offset","top","height","left","width","bottomOver","topOver","leftOver","eleDims","rightOver","parDims","windowDims","Math","min","sqrt","elem","length","document","Error","rect","getBoundingClientRect","parRect","parentNode","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.util.box.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.box\"] = factory(require(\"./foundation.core\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\nimport { Box } from '../../foundation.util.box';\n\nFoundation.Box = Box;\n\nexport { Foundation, Box };\n","var Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n  topOver, bottomOver, leftOver, rightOver;\n  if (parent) {\n    var parDims = GetDimensions(parent);\n\n    bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - parDims.offset.top;\n    leftOver   = eleDims.offset.left - parDims.offset.left;\n    rightOver  = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n  }\n  else {\n    bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n    topOver    = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver   = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver  = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver    = Math.min(topOver, 0);\n  leftOver   = Math.min(leftOver, 0);\n  rightOver  = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n  if (tbOnly) {\n    return topOver + bottomOver;\n  }\n\n  // use sum of squares b/c we care about overlap area.\n  return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n      var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n  // set position related attribute\n  switch (position) {\n    case 'top':\n      topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n      break;\n    case 'bottom':\n      topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n      break;\n    case 'left':\n      leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n      break;\n    case 'right':\n      leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n      break;\n  }\n\n  // set alignment related attribute\n  switch (position) {\n    case 'top':\n    case 'bottom':\n      switch (alignment) {\n        case 'left':\n          leftVal = $anchorDims.offset.left + hOffset;\n          break;\n        case 'right':\n          leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n          break;\n        case 'center':\n          leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n          break;\n      }\n      break;\n    case 'right':\n    case 'left':\n      switch (alignment) {\n        case 'bottom':\n          topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n          break;\n        case 'top':\n          topVal = $anchorDims.offset.top + vOffset\n          break;\n        case 'center':\n          topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n          break;\n      }\n      break;\n  }\n  }\n\n  return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 21);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.box.min.js","sources":["foundation.util.box.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.box\"] = factory(require(\"./foundation.core\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 21);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.box.js\":\n/*!***************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.box.js ***!\n  \\***************************************************/\n/*! exports provided: Foundation, Box */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.box */ \"./js/foundation.util.box.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Box\", function() { return _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__[\"Box\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Box = _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__[\"Box\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.box.js\":\n/*!***********************************!*\\\n  !*** ./js/foundation.util.box.js ***!\n  \\***********************************/\n/*! exports provided: Box */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Box\", function() { return Box; });\nvar Box = {\n  ImNotTouchingYou: ImNotTouchingYou,\n  OverlapArea: OverlapArea,\n  GetDimensions: GetDimensions,\n  GetExplicitOffsets: GetExplicitOffsets\n};\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\n\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n  var eleDims = GetDimensions(element),\n      topOver,\n      bottomOver,\n      leftOver,\n      rightOver;\n\n  if (parent) {\n    var parDims = GetDimensions(parent);\n    bottomOver = parDims.height + parDims.offset.top - (eleDims.offset.top + eleDims.height);\n    topOver = eleDims.offset.top - parDims.offset.top;\n    leftOver = eleDims.offset.left - parDims.offset.left;\n    rightOver = parDims.width + parDims.offset.left - (eleDims.offset.left + eleDims.width);\n  } else {\n    bottomOver = eleDims.windowDims.height + eleDims.windowDims.offset.top - (eleDims.offset.top + eleDims.height);\n    topOver = eleDims.offset.top - eleDims.windowDims.offset.top;\n    leftOver = eleDims.offset.left - eleDims.windowDims.offset.left;\n    rightOver = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n  }\n\n  bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n  topOver = Math.min(topOver, 0);\n  leftOver = Math.min(leftOver, 0);\n  rightOver = Math.min(rightOver, 0);\n\n  if (lrOnly) {\n    return leftOver + rightOver;\n  }\n\n  if (tbOnly) {\n    return topOver + bottomOver;\n  } // use sum of squares b/c we care about overlap area.\n\n\n  return Math.sqrt(topOver * topOver + bottomOver * bottomOver + leftOver * leftOver + rightOver * rightOver);\n}\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\n\n\nfunction GetDimensions(elem) {\n  elem = elem.length ? elem[0] : elem;\n\n  if (elem === window || elem === document) {\n    throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n  }\n\n  var rect = elem.getBoundingClientRect(),\n      parRect = elem.parentNode.getBoundingClientRect(),\n      winRect = document.body.getBoundingClientRect(),\n      winY = window.pageYOffset,\n      winX = window.pageXOffset;\n  return {\n    width: rect.width,\n    height: rect.height,\n    offset: {\n      top: rect.top + winY,\n      left: rect.left + winX\n    },\n    parentDims: {\n      width: parRect.width,\n      height: parRect.height,\n      offset: {\n        top: parRect.top + winY,\n        left: parRect.left + winX\n      }\n    },\n    windowDims: {\n      width: winRect.width,\n      height: winRect.height,\n      offset: {\n        top: winY,\n        left: winX\n      }\n    }\n  };\n}\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\n\n\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n  var $eleDims = GetDimensions(element),\n      $anchorDims = anchor ? GetDimensions(anchor) : null;\n  var topVal, leftVal;\n\n  if ($anchorDims !== null) {\n    // set position related attribute\n    switch (position) {\n      case 'top':\n        topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n        break;\n\n      case 'bottom':\n        topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n        break;\n\n      case 'left':\n        leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n        break;\n\n      case 'right':\n        leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n        break;\n    } // set alignment related attribute\n\n\n    switch (position) {\n      case 'top':\n      case 'bottom':\n        switch (alignment) {\n          case 'left':\n            leftVal = $anchorDims.offset.left + hOffset;\n            break;\n\n          case 'right':\n            leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n            break;\n\n          case 'center':\n            leftVal = isOverflow ? hOffset : $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2 + hOffset;\n            break;\n        }\n\n        break;\n\n      case 'right':\n      case 'left':\n        switch (alignment) {\n          case 'bottom':\n            topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n            break;\n\n          case 'top':\n            topVal = $anchorDims.offset.top + vOffset;\n            break;\n\n          case 'center':\n            topVal = $anchorDims.offset.top + vOffset + $anchorDims.height / 2 - $eleDims.height / 2;\n            break;\n        }\n\n        break;\n    }\n  }\n\n  return {\n    top: topVal,\n    left: leftVal\n  };\n}\n\n\n\n/***/ }),\n\n/***/ 21:\n/*!*********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.box.js ***!\n  \\*********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.box.js */\"./js/entries/plugins/foundation.util.box.js\");\n\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.box.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","modules","./foundation.core","./js/entries/plugins/foundation.util.box.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_box__WEBPACK_IMPORTED_MODULE_1__","Box","./js/foundation.util.box.js","ImNotTouchingYou","element","parent","lrOnly","tbOnly","ignoreBottom","OverlapArea","GetDimensions","GetExplicitOffsets","anchor","position","alignment","vOffset","hOffset","isOverflow","topVal","leftVal","$eleDims","$anchorDims","offset","top","height","left","width","bottomOver","topOver","leftOver","eleDims","rightOver","parDims","windowDims","Math","min","sqrt","elem","length","document","Error","rect","getBoundingClientRect","parRect","parentNode","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","21","installedModules","m","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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"}
\ No newline at end of file
index 93fdda3faeee499dc252eb320ccc0df7b5a4e972..305a726a42543d46476e02005dfda6b4e3ac78d5 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.imageLoader.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.imageLoader.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__","Foundation","onImagesLoaded","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","images","callback","self","length","unloaded","image","this","complete","naturalWidth","singleImageLoaded","Image","one","events","me","off","$","src","attr","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.util.imageLoader.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.imageLoader\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { onImagesLoaded } from '../../foundation.util.imageLoader';\n\nFoundation.onImagesLoaded = onImagesLoaded;\n\nexport { Foundation, onImagesLoaded };\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n  var self = this,\n      unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function(){\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    }\n    else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image();\n      // Still count image as loaded if it finalizes with an error.\n      var events = \"load.zf.images error.zf.images\";\n      $(image).one(events, function me(event){\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        $(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = $(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\nexport { onImagesLoaded };\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 22);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.imageLoader.min.js","sources":["foundation.util.imageLoader.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.imageLoader\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 22);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.imageLoader.js\":\n/*!***********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.imageLoader.js ***!\n  \\***********************************************************/\n/*! exports provided: Foundation, onImagesLoaded */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.imageLoader */ \"./js/foundation.util.imageLoader.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function() { return _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__[\"onImagesLoaded\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].onImagesLoaded = _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__[\"onImagesLoaded\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.imageLoader.js\":\n/*!*******************************************!*\\\n  !*** ./js/foundation.util.imageLoader.js ***!\n  \\*******************************************/\n/*! exports provided: onImagesLoaded */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function() { return onImagesLoaded; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\n\nfunction onImagesLoaded(images, callback) {\n  var unloaded = images.length;\n\n  if (unloaded === 0) {\n    callback();\n  }\n\n  images.each(function () {\n    // Check if image is loaded\n    if (this.complete && typeof this.naturalWidth !== 'undefined') {\n      singleImageLoaded();\n    } else {\n      // If the above check failed, simulate loading on detached element.\n      var image = new Image(); // Still count image as loaded if it finalizes with an error.\n\n      var events = \"load.zf.images error.zf.images\";\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(image).one(events, function me() {\n        // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off(events, me);\n        singleImageLoaded();\n      });\n      image.src = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('src');\n    }\n  });\n\n  function singleImageLoaded() {\n    unloaded--;\n\n    if (unloaded === 0) {\n      callback();\n    }\n  }\n}\n\n\n\n/***/ }),\n\n/***/ 22:\n/*!*****************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.imageLoader.js ***!\n  \\*****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.imageLoader.js */\"./js/entries/plugins/foundation.util.imageLoader.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.imageLoader.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.imageLoader.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__","onImagesLoaded","./js/foundation.util.imageLoader.js","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","images","callback","unloaded","length","singleImageLoaded","each","image","events","this","complete","naturalWidth","Image","one","me","off","src","attr","22","jquery","installedModules","m","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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"}
\ No newline at end of file
index 844b3d99b91bf9da2c641b3493d3e9ceefcdb918..f89ed574b6d0a667969265f1e3127041b5a94930 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.keyboard.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.keyboard.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","Foundation","Keyboard","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","keyCodes","9","13","27","32","35","36","37","38","39","40","commands","findFocusable","$element","find","filter","$","this","is","attr","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","key","which","keyCode","String","fromCharCode","toUpperCase","replace","shiftKey","concat","ctrlKey","altKey","keys","kcs","kc","k","hasOwnProperty","getKeyCodes","handleKey","component","functions","commandList","console","warn","zfIsKeyHandled","fn","ltr","Rtl","extend","rtl","returnValue","apply","handled","unhandled","register","componentName","cmds","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","on","target","preventDefault","focus","releaseFocus","off","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","bind","object","property","prototype","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.util.keyboard.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.keyboard\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\nimport { Keyboard } from '../../foundation.util.keyboard';\n\nFoundation.Keyboard = Keyboard;\n\nexport { Foundation, Keyboard };\n","/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n  if(!$element) {return false; }\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n    if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n    return true;\n  })\n  .sort( function( a, b ) {\n    if ($(a).attr('tabindex') == $(b).attr('tabindex')) {\n      return 0;\n    }\n    let aTabIndex = parseInt($(a).attr('tabindex')),\n      bTabIndex = parseInt($(b).attr('tabindex'));\n    // Undefined is treated the same as 0\n    if (typeof $(a).attr('tabindex') == 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n    if (typeof $(b).attr('tabindex') == 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex == 0 && bTabIndex > 0) {\n      return 1;\n    }\n    if (bTabIndex == 0 && aTabIndex > 0) {\n      return -1;\n    }\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n  // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n  key = key.replace(/\\W+/, '');\n\n  if (event.shiftKey) key = `SHIFT_${key}`;\n  if (event.ctrlKey) key = `CTRL_${key}`;\n  if (event.altKey) key = `ALT_${key}`;\n\n  // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n  key = key.replace(/_$/, '');\n\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey(event, component, functions) {\n    var commandList = commands[component],\n      keyCode = this.parseKey(event),\n      cmds,\n      command,\n      fn;\n\n    if (!commandList) return console.warn('Component not defined!');\n\n    // Ignore the event if it was already handled\n    if (event.zfIsKeyHandled === true) return;\n\n    // This component does not differentiate between ltr and rtl\n    if (typeof commandList.ltr === 'undefined') {\n        cmds = commandList; // use plain list\n    } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n        if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n        else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n    }\n    command = cmds[keyCode];\n\n    fn = functions[command];\n     // Execute the handler if found\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply();\n\n      // Mark the event as \"handled\" to prevent future handlings\n      event.zfIsKeyHandled = true;\n\n      // Execute function when event was handled\n      if (functions.handled || typeof functions.handled === 'function') {\n          functions.handled(returnValue);\n      }\n    } else {\n       // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n          functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n\n  register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n\n\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n\n    $element.on('keydown.zf.trapfocus', function(event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      }\n      else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n  var k = {};\n  for (var kc in kcs) k[kcs[kc]] = kcs[kc];\n  return k;\n}\n\nexport {Keyboard};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 23);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.keyboard.min.js","sources":["foundation.util.keyboard.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.keyboard\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 23);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.keyboard.js\":\n/*!********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.keyboard.js ***!\n  \\********************************************************/\n/*! exports provided: Foundation, Keyboard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.keyboard */ \"./js/foundation.util.keyboard.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Keyboard = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.keyboard.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.keyboard.js ***!\n  \\****************************************/\n/*! exports provided: Keyboard */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Keyboard\", function() { return Keyboard; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/*******************************************\n *                                         *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n *                                         *\n ******************************************/\n\n\nvar keyCodes = {\n  9: 'TAB',\n  13: 'ENTER',\n  27: 'ESCAPE',\n  32: 'SPACE',\n  35: 'END',\n  36: 'HOME',\n  37: 'ARROW_LEFT',\n  38: 'ARROW_UP',\n  39: 'ARROW_RIGHT',\n  40: 'ARROW_DOWN'\n};\nvar commands = {}; // Functions pulled out to be referenceable from internals\n\nfunction findFocusable($element) {\n  if (!$element) {\n    return false;\n  }\n\n  return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {\n    if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n      return false;\n    } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n    return true;\n  }).sort(function (a, b) {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex')) {\n      return 0;\n    }\n\n    var aTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex'), 10),\n        bTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex'), 10); // Undefined is treated the same as 0\n\n    if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n      return 1;\n    }\n\n    if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n      return -1;\n    }\n\n    if (aTabIndex === 0 && bTabIndex > 0) {\n      return 1;\n    }\n\n    if (bTabIndex === 0 && aTabIndex > 0) {\n      return -1;\n    }\n\n    if (aTabIndex < bTabIndex) {\n      return -1;\n    }\n\n    if (aTabIndex > bTabIndex) {\n      return 1;\n    }\n  });\n}\n\nfunction parseKey(event) {\n  var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n  key = key.replace(/\\W+/, '');\n  if (event.shiftKey) key = \"SHIFT_\".concat(key);\n  if (event.ctrlKey) key = \"CTRL_\".concat(key);\n  if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n  key = key.replace(/_$/, '');\n  return key;\n}\n\nvar Keyboard = {\n  keys: getKeyCodes(keyCodes),\n\n  /**\n   * Parses the (keyboard) event and returns a String that represents its key\n   * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n   * @param {Event} event - the event generated by the event handler\n   * @return String key - String that represents the key pressed\n   */\n  parseKey: parseKey,\n\n  /**\n   * Handles the given (keyboard) event\n   * @param {Event} event - the event generated by the event handler\n   * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n   * @param {Objects} functions - collection of functions that are to be executed\n   */\n  handleKey: function handleKey(event, component, functions) {\n    var commandList = commands[component],\n        keyCode = this.parseKey(event),\n        cmds,\n        command,\n        fn;\n    if (!commandList) return console.warn('Component not defined!'); // Ignore the event if it was already handled\n\n    if (event.zfIsKeyHandled === true) return; // This component does not differentiate between ltr and rtl\n\n    if (typeof commandList.ltr === 'undefined') {\n      cmds = commandList; // use plain list\n    } else {\n      // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n      if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n    }\n\n    command = cmds[keyCode];\n    fn = functions[command]; // Execute the handler if found\n\n    if (fn && typeof fn === 'function') {\n      var returnValue = fn.apply(); // Mark the event as \"handled\" to prevent future handlings\n\n      event.zfIsKeyHandled = true; // Execute function when event was handled\n\n      if (functions.handled || typeof functions.handled === 'function') {\n        functions.handled(returnValue);\n      }\n    } else {\n      // Execute function when event was not handled\n      if (functions.unhandled || typeof functions.unhandled === 'function') {\n        functions.unhandled();\n      }\n    }\n  },\n\n  /**\n   * Finds all focusable elements within the given `$element`\n   * @param {jQuery} $element - jQuery object to search within\n   * @return {jQuery} $focusable - all focusable elements within `$element`\n   */\n  findFocusable: findFocusable,\n\n  /**\n   * Returns the component name name\n   * @param {Object} component - Foundation component, e.g. Slider or Reveal\n   * @return String componentName\n   */\n  register: function register(componentName, cmds) {\n    commands[componentName] = cmds;\n  },\n  // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n  //\n\n  /**\n   * Traps the focus in the given element.\n   * @param  {jQuery} $element  jQuery object to trap the foucs into.\n   */\n  trapFocus: function trapFocus($element) {\n    var $focusable = findFocusable($element),\n        $firstFocusable = $focusable.eq(0),\n        $lastFocusable = $focusable.eq(-1);\n    $element.on('keydown.zf.trapfocus', function (event) {\n      if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n        event.preventDefault();\n        $firstFocusable.focus();\n      } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n        event.preventDefault();\n        $lastFocusable.focus();\n      }\n    });\n  },\n\n  /**\n   * Releases the trapped focus from the given element.\n   * @param  {jQuery} $element  jQuery object to release the focus for.\n   */\n  releaseFocus: function releaseFocus($element) {\n    $element.off('keydown.zf.trapfocus');\n  }\n};\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\nfunction getKeyCodes(kcs) {\n  var k = {};\n\n  for (var kc in kcs) {\n    if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n  }\n\n  return k;\n}\n\n\n\n/***/ }),\n\n/***/ 23:\n/*!**************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.keyboard.js ***!\n  \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.keyboard.js */\"./js/entries/plugins/foundation.util.keyboard.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.keyboard.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.keyboard.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","Keyboard","./js/foundation.util.keyboard.js","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","keyCodes","9","13","27","32","35","36","37","38","39","40","commands","findFocusable","$element","find","filter","this","is","attr","sort","a","b","aTabIndex","parseInt","bTabIndex","parseKey","event","key","which","keyCode","String","fromCharCode","toUpperCase","replace","shiftKey","concat","ctrlKey","altKey","keys","kcs","kc","k","hasOwnProperty","getKeyCodes","handleKey","component","functions","commandList","console","warn","zfIsKeyHandled","fn","ltr","Object","extend","rtl","returnValue","apply","handled","unhandled","register","componentName","cmds","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","on","target","preventDefault","focus","releaseFocus","off","23","jquery","installedModules","m","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","bind","object","property","prototype","call","p","s","moduleId","i","l"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,qBAAsBA,QAAQ,WACtC,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,oBAAqB,UAAWJ,GACd,iBAAZC,QACdA,QAAQ,4BAA8BD,EAAQG,QAAQ,qBAAsBA,QAAQ,YAEpFJ,EAA8B,wBAAIA,EAA8B,yBAAK,GAAIA,EAA8B,wBAAE,4BAA8BC,EAAQD,EAA8B,wBAAE,mBAAoBA,EAAa,SARlN,CASGO,OAAQ,SAASC,EAA8CC,GAClE,OAA0BC,EAsFhB,CAEJC,oBAKA,SAAUR,EAAQD,GAExBC,EAAOD,QAAUM,GAIXI,mDAKA,SAAUT,EAAQU,EAAqBC,gBAG7CA,EAAoBC,EAAEF,GACD,IAAIG,EAAgDF,EAA6C,qBAExFA,EAAoBG,EAAEJ,EAAqB,aAAc,WAAa,OAAOG,EAA0D,aAEhJ,IAAIE,EAAyDJ,EAA0D,oCAC9GA,EAAoBG,EAAEJ,EAAqB,WAAY,WAAa,OAAOK,EAAiE,WAI1KF,EAA0D,WAAEG,SAAWD,EAAiE,UAKlIE,mCAKA,SAAUjB,EAAQU,EAAqBC,gBAG7CA,EAAoBC,EAAEF,GACSC,EAAoBG,EAAEJ,EAAqB,WAAY,WAAa,OAAOM,IACrF,IAAIE,EAAsCP,EAAkC,UACxEQ,EAA2DR,EAAoBS,EAAEF,GACjFG,EAAsDV,EAAmD,qBAW9HW,EAAW,CACbC,EAAG,MACHC,GAAI,QACJC,GAAI,SACJC,GAAI,QACJC,GAAI,MACJC,GAAI,OACJC,GAAI,aACJC,GAAI,WACJC,GAAI,cACJC,GAAI,cAEFC,EAAW,GAEf,SAASC,EAAcC,GACrB,QAAKA,GAIEA,EAASC,KAAK,gLAAgLC,OAAO,WAC1M,SAAKlB,GAAAA,CAA8CmB,MAAMC,GAAG,aAAepB,GAAAA,CAA8CmB,MAAME,KAAK,YAAc,KAMjJC,KAAK,SAAUC,EAAGC,GACnB,GAAIxB,GAAAA,CAA8CuB,GAAGF,KAAK,cAAgBrB,GAAAA,CAA8CwB,GAAGH,KAAK,YAC9H,OAAO,EAGT,IAAII,EAAYC,SAAS1B,GAAAA,CAA8CuB,GAAGF,KAAK,YAAa,IACxFM,EAAYD,SAAS1B,GAAAA,CAA8CwB,GAAGH,KAAK,YAAa,IAE5F,YAAiF,IAAtErB,GAAAA,CAA8CuB,GAAGF,KAAK,aAA2C,EAAZM,EACvF,OAGwE,IAAtE3B,GAAAA,CAA8CwB,GAAGH,KAAK,aAA2C,EAAZI,GACtF,EAGQ,IAAdA,GAA+B,EAAZE,EACd,EAGS,IAAdA,GAA+B,EAAZF,GAInBA,EAAYE,GAHN,EAOMA,EAAZF,EACK,OADT,IAMJ,SAASG,EAASC,GAChB,IAEAC,GAFIA,EAAM3B,EAAS0B,EAAME,OAASF,EAAMG,UAAYC,OAAOC,aAAaL,EAAME,OAAOI,eAE3EC,QAAQ,MAAO,IAMzB,OALIP,EAAMQ,WAAUP,EAAM,SAASQ,OAAOR,IACtCD,EAAMU,UAAST,EAAM,QAAQQ,OAAOR,IAGxCA,GAFkBA,EAAdD,EAAMW,OAAc,OAAOF,OAAOR,GAEhCA,GAAIM,QAAQ,KAAM,IAI1B,IAAIvC,EAAW,CACb4C,KAsGF,SAAqBC,GACnB,IAESC,EAFLC,EAAI,GAER,IAASD,KAAMD,EACTA,EAAIG,eAAeF,KAAKC,EAAEF,EAAIC,IAAOD,EAAIC,IAG/C,OAAOC,EA7GDE,CAAY3C,GAQlByB,SAAUA,EAQVmB,UAAW,SAAmBlB,EAAOmB,EAAWC,GAC9C,IAAIC,EAAcpC,EAASkC,GACvBhB,EAAUb,KAAKS,SAASC,GAI5B,IAAKqB,EAAa,OAAOC,QAAQC,KAAK,2BAET,IAAzBvB,EAAMwB,kBAUVC,EAAKL,QAR0B,IAApBC,EAAYK,IACdL,EAGHM,OAAOtD,EAAyD,IAAhEsD,GAA6ExD,EAA4CuB,EAAEkC,OAAO,GAAIP,EAAYK,IAAKL,EAAYQ,KAAiB1D,EAA4CuB,EAAEkC,OAAO,GAAIP,EAAYQ,IAAKR,EAAYK,MAGjQvB,MAGS,mBAAPsB,GACXK,EAAcL,EAAGM,QAErB/B,EAAMwB,gBAAiB,GAEnBJ,EAAUY,SAAwC,mBAAtBZ,EAAUY,SACxCZ,EAAUY,QAAQF,KAIhBV,EAAUa,WAA4C,mBAAxBb,EAAUa,WAC1Cb,EAAUa,cAUhB/C,cAAeA,EAOfgD,SAAU,SAAkBC,EAAeC,GACzCnD,EAASkD,GAAiBC,GAS5BC,UAAW,SAAmBlD,GAC5B,IAAImD,EAAapD,EAAcC,GAC3BoD,EAAkBD,EAAWE,GAAG,GAChCC,EAAiBH,EAAWE,IAAI,GACpCrD,EAASuD,GAAG,uBAAwB,SAAU1C,GACxCA,EAAM2C,SAAWF,EAAe,IAA0B,QAApB1C,EAASC,IACjDA,EAAM4C,iBACNL,EAAgBM,SACP7C,EAAM2C,SAAWJ,EAAgB,IAA0B,cAApBxC,EAASC,KACzDA,EAAM4C,iBACNH,EAAeI,YASrBC,aAAc,SAAsB3D,GAClCA,EAAS4D,IAAI,2BAsBXC,GAKA,SAAUhG,EAAQD,EAASY,GAEjCX,EAAOD,QAAUY,EAAwH,qDAKnIsF,OAKA,SAAUjG,EAAQD,GAExBC,EAAOD,QAAUO,IA/VH4F,EAAmB,GA4BvBvF,EAAoBwF,EAAI5F,EAGxBI,EAAoByF,EAAIF,EAGxBvF,EAAoBG,EAAI,SAASf,EAASsG,EAAMC,GAC3C3F,EAAoB4F,EAAExG,EAASsG,IAClC1B,OAAO6B,eAAezG,EAASsG,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhE3F,EAAoBC,EAAI,SAASb,GACX,oBAAX4G,QAA0BA,OAAOC,aAC1CjC,OAAO6B,eAAezG,EAAS4G,OAAOC,YAAa,CAAEC,MAAO,WAE7DlC,OAAO6B,eAAezG,EAAS,aAAc,CAAE8G,OAAO,KAQvDlG,EAAoBmG,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlG,EAAoBkG,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKtC,OAAOuC,OAAO,MAGvB,GAFAvG,EAAoBC,EAAEqG,GACtBtC,OAAO6B,eAAeS,EAAI,UAAW,CAAER,YAAY,EAAMI,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAI5D,KAAO4D,EAAOlG,EAAoBG,EAAEmG,EAAIhE,EAAK,SAASA,GAAO,OAAO4D,EAAM5D,IAAQkE,KAAK,KAAMlE,IAC9I,OAAOgE,GAIRtG,EAAoBS,EAAI,SAASpB,GAChC,IAAIsG,EAAStG,GAAUA,EAAOgH,WAC7B,WAAwB,OAAOhH,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAW,EAAoBG,EAAEwF,EAAQ,IAAKA,GAC5BA,GAIR3F,EAAoB4F,EAAI,SAASa,EAAQC,GAAY,OAAO1C,OAAO2C,UAAUtD,eAAeuD,KAAKH,EAAQC,IAGzG1G,EAAoB6G,EAAI,GAIjB7G,EAAoBA,EAAoB8G,EAAI,IA9EnD,SAAS9G,EAAoB+G,GAG5B,GAAGxB,EAAiBwB,GACnB,OAAOxB,EAAiBwB,GAAU3H,QAGnC,IAAIC,EAASkG,EAAiBwB,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACH7H,QAAS,IAUV,OANAQ,EAAQmH,GAAUH,KAAKvH,EAAOD,QAASC,EAAQA,EAAOD,QAASY,GAG/DX,EAAO4H,GAAI,EAGJ5H,EAAOD,QAzBT,IAAUQ,EAEZ2F"}
\ No newline at end of file
index cdbc3386cbb8739130e68736bdf6b439b192ea7d..cf91a24d29a8822a4a8a6b6f0a1739d84a97dce9 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.mediaQuery.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","Foundation","MediaQuery","_init","document","styleMedia","matchMedia","media","script","getElementsByTagName","head","style","type","parentNode","insertBefore","info","getComputedStyle","currentStyle","styleSheet","matchMedium","textContent","text","matches","queries","current","this","namedQueries","extractedStyles","appendTo","key","css","self","str","styleObject","split","reduce","ret","param","parts","push","decodeURIComponent","val","hasOwnProperty","name","concat","_getCurrentSize","_watcher","isInitialized","atLeast","size","query","only","upTo","nextSize","next","is","trim","filter","p","length","bpModifier","_parts$","bpSize","Error","get","i","value","queryIndex","findIndex","q","_this","_getQueryName","nextQuery","_typeof","TypeError","matched","currentSize","jquery__WEBPACK_IMPORTED_MODULE_0___default","on","newSize","_this2","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","Symbol","toStringTag","t","mode","__esModule","ns","create","bind","n","object","property","prototype","call","s","moduleId","l"],"mappings":"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","file":"foundation.util.mediaQuery.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.mediaQuery\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\nimport { MediaQuery } from '../../foundation.util.mediaQuery';\n\nFoundation.MediaQuery = MediaQuery;\nFoundation.MediaQuery._init();\n\nexport { Foundation, MediaQuery };\n","import $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n  'default' : 'only screen',\n  landscape : 'only screen and (orientation: landscape)',\n  portrait : 'only screen and (orientation: portrait)',\n  retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n    'only screen and (min--moz-device-pixel-ratio: 2),' +\n    'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n    'only screen and (min-device-pixel-ratio: 2),' +\n    'only screen and (min-resolution: 192dpi),' +\n    'only screen and (min-resolution: 2dppx)'\n  };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n  \"use strict\";\n\n  // For browsers that support matchMedium api such as IE 9 and webkit\n  var styleMedia = (window.styleMedia || window.media);\n\n  // For those that don't support matchMedium\n  if (!styleMedia) {\n    var style   = document.createElement('style'),\n    script      = document.getElementsByTagName('script')[0],\n    info        = null;\n\n    style.type  = 'text/css';\n    style.id    = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    }\n\n    // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n    info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n    styleMedia = {\n      matchMedium: function (media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n        // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        }\n\n        // Test if media query is true or false\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function(media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init() {\n\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = $('meta.foundation-mq');\n    if(!$meta.length){\n      $('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = $('.foundation-mq').css('font-family');\n    var namedQueries;\n\n    namedQueries = parseStyleToObject(extractedStyles);\n\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if(namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: `only screen and (min-width: ${namedQueries[key]})`\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit() {\n    this.isInitialized = false;\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo(size) {\n    const nextSize = this.next(size);\n\n    // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    }\n\n    // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is(size) {\n    const parts = size.trim().split(' ').filter(p => !!p.length);\n    const [bpSize, bpModifier = ''] = parts;\n\n    // Only the breakpont\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    }\n    // At least the breakpoint (included)\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    }\n    // Up to the breakpoint (included)\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(`\n      Invalid breakpoint passed to MediaQuery.is().\n      Expected a breakpoint name formatted like \"<size> <modifier>\", got \"${size}\".\n    `);\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get(size) {\n    for (var i in this.queries) {\n      if(this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next(size) {\n    const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n    if (queryIndex === -1) {\n      throw new Error(`\n        Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n        Ensure it is present in your Sass \"$breakpoints\" setting.\n      `);\n    }\n\n    const nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName(value) {\n    if (typeof value === 'string')\n      return value;\n    if (typeof value === 'object')\n      return value.name;\n    throw new TypeError(`\n      Invalid value passed to MediaQuery._getQueryName().\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n    `);\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher() {\n    $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n      var newSize = this._getCurrentSize(), currentSize = this.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        this.current = newSize;\n\n        // Broadcast the media query change on the window\n        $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function(ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key);\n\n    // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n    return ret;\n  }, {});\n\n  return styleObject;\n}\n\nexport {MediaQuery};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.mediaQuery.min.js","sources":["foundation.util.mediaQuery.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.mediaQuery\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 24);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.mediaQuery.js\":\n/*!**********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n  \\**********************************************************/\n/*! exports provided: Foundation, MediaQuery */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.mediaQuery */ \"./js/foundation.util.mediaQuery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"];\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery._init();\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.mediaQuery.js\":\n/*!******************************************!*\\\n  !*** ./js/foundation.util.mediaQuery.js ***!\n  \\******************************************/\n/*! exports provided: MediaQuery */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function() { return MediaQuery; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n // Default set of media queries\n// const defaultQueries = {\n//   'default' : 'only screen',\n//   landscape : 'only screen and (orientation: landscape)',\n//   portrait : 'only screen and (orientation: portrait)',\n//   retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n//     'only screen and (min--moz-device-pixel-ratio: 2),' +\n//     'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n//     'only screen and (min-device-pixel-ratio: 2),' +\n//     'only screen and (min-resolution: 192dpi),' +\n//     'only screen and (min-resolution: 2dppx)'\n//   };\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright Â© 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n/* eslint-disable */\n\nwindow.matchMedia || (window.matchMedia = function () {\n  \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n  var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n  if (!styleMedia) {\n    var style = document.createElement('style'),\n        script = document.getElementsByTagName('script')[0],\n        info = null;\n    style.type = 'text/css';\n    style.id = 'matchmediajs-test';\n\n    if (!script) {\n      document.head.appendChild(style);\n    } else {\n      script.parentNode.insertBefore(style, script);\n    } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n    info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n    styleMedia = {\n      matchMedium: function matchMedium(media) {\n        var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n        if (style.styleSheet) {\n          style.styleSheet.cssText = text;\n        } else {\n          style.textContent = text;\n        } // Test if media query is true or false\n\n\n        return info.width === '1px';\n      }\n    };\n  }\n\n  return function (media) {\n    return {\n      matches: styleMedia.matchMedium(media || 'all'),\n      media: media || 'all'\n    };\n  };\n}());\n/* eslint-enable */\n\nvar MediaQuery = {\n  queries: [],\n  current: '',\n\n  /**\n   * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n   * @function\n   * @private\n   */\n  _init: function _init() {\n    // make sure the initialization is only done once when calling _init() several times\n    if (this.isInitialized === true) {\n      return this;\n    } else {\n      this.isInitialized = true;\n    }\n\n    var self = this;\n    var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n    if (!$meta.length) {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()('<meta class=\"foundation-mq\" name=\"foundation-mq\" content>').appendTo(document.head);\n    }\n\n    var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n    var namedQueries;\n    namedQueries = parseStyleToObject(extractedStyles);\n    self.queries = []; // reset\n\n    for (var key in namedQueries) {\n      if (namedQueries.hasOwnProperty(key)) {\n        self.queries.push({\n          name: key,\n          value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n        });\n      }\n    }\n\n    this.current = this._getCurrentSize();\n\n    this._watcher();\n  },\n\n  /**\n   * Reinitializes the media query helper.\n   * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n   * @function\n   * @private\n   */\n  _reInit: function _reInit() {\n    this.isInitialized = false;\n\n    this._init();\n  },\n\n  /**\n   * Checks if the screen is at least as wide as a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n   */\n  atLeast: function atLeast(size) {\n    var query = this.get(size);\n\n    if (query) {\n      return window.matchMedia(query).matches;\n    }\n\n    return false;\n  },\n\n  /**\n   * Checks if the screen is within the given breakpoint.\n   * If smaller than the breakpoint of larger than its upper limit it returns false.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n   */\n  only: function only(size) {\n    return size === this._getCurrentSize();\n  },\n\n  /**\n   * Checks if the screen is within a breakpoint or smaller.\n   * @function\n   * @param {String} size - Name of the breakpoint to check.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n   */\n  upTo: function upTo(size) {\n    var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n    // the upper limit of this breakpoint.\n\n    if (nextSize) {\n      return !this.atLeast(nextSize);\n    } // If there is no next breakpoint, the \"size\" breakpoint does not have\n    // an upper limit and the screen will always be within it or smaller.\n\n\n    return true;\n  },\n\n  /**\n   * Checks if the screen matches to a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n   * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n   */\n  is: function is(size) {\n    var parts = size.trim().split(' ').filter(function (p) {\n      return !!p.length;\n    });\n\n    var _parts = _slicedToArray(parts, 2),\n        bpSize = _parts[0],\n        _parts$ = _parts[1],\n        bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n    if (bpModifier === 'only') {\n      return this.only(bpSize);\n    } // At least the breakpoint (included)\n\n\n    if (!bpModifier || bpModifier === 'up') {\n      return this.atLeast(bpSize);\n    } // Up to the breakpoint (included)\n\n\n    if (bpModifier === 'down') {\n      return this.upTo(bpSize);\n    }\n\n    throw new Error(\"\\n      Invalid breakpoint passed to MediaQuery.is().\\n      Expected a breakpoint name formatted like \\\"<size> <modifier>\\\", got \\\"\".concat(size, \"\\\".\\n    \"));\n  },\n\n  /**\n   * Gets the media query of a breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint to get.\n   * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n   */\n  get: function get(size) {\n    for (var i in this.queries) {\n      if (this.queries.hasOwnProperty(i)) {\n        var query = this.queries[i];\n        if (size === query.name) return query.value;\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get the breakpoint following the given breakpoint.\n   * @function\n   * @param {String} size - Name of the breakpoint.\n   * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n   */\n  next: function next(size) {\n    var _this = this;\n\n    var queryIndex = this.queries.findIndex(function (q) {\n      return _this._getQueryName(q) === size;\n    });\n\n    if (queryIndex === -1) {\n      throw new Error(\"\\n        Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n        Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n      \"));\n    }\n\n    var nextQuery = this.queries[queryIndex + 1];\n    return nextQuery ? nextQuery.name : null;\n  },\n\n  /**\n   * Returns the name of the breakpoint related to the given value.\n   * @function\n   * @private\n   * @param {String|Object} value - Breakpoint name or query object.\n   * @returns {String} Name of the breakpoint.\n   */\n  _getQueryName: function _getQueryName(value) {\n    if (typeof value === 'string') return value;\n    if (_typeof(value) === 'object') return value.name;\n    throw new TypeError(\"\\n      Invalid value passed to MediaQuery._getQueryName().\\n      Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n    \"));\n  },\n\n  /**\n   * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n   * @function\n   * @private\n   * @returns {String} Name of the current breakpoint.\n   */\n  _getCurrentSize: function _getCurrentSize() {\n    var matched;\n\n    for (var i = 0; i < this.queries.length; i++) {\n      var query = this.queries[i];\n\n      if (window.matchMedia(query.value).matches) {\n        matched = query;\n      }\n    }\n\n    return matched && this._getQueryName(matched);\n  },\n\n  /**\n   * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n   * @function\n   * @private\n   */\n  _watcher: function _watcher() {\n    var _this2 = this;\n\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n      var newSize = _this2._getCurrentSize(),\n          currentSize = _this2.current;\n\n      if (newSize !== currentSize) {\n        // Change the current media query\n        _this2.current = newSize; // Broadcast the media query change on the window\n\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n      }\n    });\n  }\n}; // Thank you: https://github.com/sindresorhus/query-string\n\nfunction parseStyleToObject(str) {\n  var styleObject = {};\n\n  if (typeof str !== 'string') {\n    return styleObject;\n  }\n\n  str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n  if (!str) {\n    return styleObject;\n  }\n\n  styleObject = str.split('&').reduce(function (ret, param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = parts[0];\n    var val = parts[1];\n    key = decodeURIComponent(key); // missing `=` should be `null`:\n    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n    val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n    if (!ret.hasOwnProperty(key)) {\n      ret[key] = val;\n    } else if (Array.isArray(ret[key])) {\n      ret[key].push(val);\n    } else {\n      ret[key] = [ret[key], val];\n    }\n\n    return ret;\n  }, {});\n  return styleObject;\n}\n\n\n\n/***/ }),\n\n/***/ 24:\n/*!****************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n  \\****************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.mediaQuery.js */\"./js/entries/plugins/foundation.util.mediaQuery.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.mediaQuery.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.mediaQuery.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__","MediaQuery","_init","./js/foundation.util.mediaQuery.js","style","info","styleMedia","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_typeof","obj","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","done","push","value","length","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","Object","toString","slice","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","matchMedia","media","document","createElement","script","getElementsByTagName","type","id","parentNode","insertBefore","head","appendChild","getComputedStyle","currentStyle","matchMedium","text","styleSheet","cssText","textContent","width","matches","queries","current","this","isInitialized","appendTo","namedQueries","styleObject","key","extractedStyles","css","str","trim","split","reduce","ret","param","parts","replace","val","decodeURIComponent","hasOwnProperty","concat","_getCurrentSize","_watcher","_reInit","atLeast","size","query","get","only","upTo","nextSize","is","_parts","filter","p","bpSize","_parts$","bpModifier","Error","_this","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","_this2","on","newSize","currentSize","trigger","24","jquery","installedModules","m","c","getter","defineProperty","enumerable","toStringTag","t","mode","__esModule","ns","create","bind","object","property","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index b246400bde7c88ee571112c86f6a3140dc5f70c5..fb31bf1336065b2068618990e1015507ff8781de 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.motion.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.motion.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__","Foundation","Motion","Move","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","initClasses","activeClasses","animateIn","element","animation","cb","animate","animateOut","duration","elem","fn","anim","prog","start","apply","trigger","triggerHandler","move","ts","cancelAnimationFrame","initClass","reset","transitionDuration","removeClass","concat","activeClass","eq","$","length","isIn","addClass","css","requestAnimationFrame","offsetWidth","finish","hide","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,EAAAG,QAAA,qBAAAA,QAAA,WACA,mBAAAC,QAAAA,OAAAC,IACAD,OAAA,CAAA,oBAAA,UAAAJ,GACA,iBAAAC,QACAA,QAAA,0BAAAD,EAAAG,QAAA,qBAAAA,QAAA,YAEAJ,EAAA,wBAAAA,EAAA,yBAAA,GAAyEA,EAAA,wBAAA,0BAAAC,EAAAD,EAAA,wBAAA,mBAAAA,EAAA,SARzE,CASCO,OAAA,SAAAC,EAAAC,GACD,O,qCCVAN,EAAAD,QAAAM,G,8ECAAE,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,qBAAAA,EAAAI,EAAAF,EAAA,aAAA,WAAA,OAAAC,EAAA,aAAA,IAAAE,EAAAL,EAAA,kCAAAA,EAAAI,EAAAF,EAAA,SAAA,WAAA,OAAAG,EAAA,SAAAL,EAAAI,EAAAF,EAAA,OAAA,WAAA,OAAAG,EAAA,OAGAC,EAAAA,WAAWC,OAASA,EAAAA,OACpBD,EAAAA,WAAWE,KAAOA,EAAAA,M,8DCJlBR,EAAAC,EAAAC,GAAAF,EAAAI,EAAAF,EAAA,OAAA,WAAA,OAAAM,IAAAR,EAAAI,EAAAF,EAAA,SAAA,WAAA,OAAAK,IAAA,IAAAE,EAAAT,EAAA,UAAAU,EAAAV,EAAAW,EAAAF,GAAAG,EAAAZ,EAAA,qBAQMa,EAAgB,CAAC,YAAa,aAC9BC,EAAgB,CAAC,mBAAoB,oBAErCP,EAAS,CACbQ,UAAW,SAASC,EAASC,EAAWC,GACtCC,GAAQ,EAAMH,EAASC,EAAWC,IAGpCE,WAAY,SAASJ,EAASC,EAAWC,GACvCC,GAAQ,EAAOH,EAASC,EAAWC,KAIvC,SAASV,EAAKa,EAAUC,EAAMC,GAC5B,IAAIC,EAAMC,EAAMC,EAAQ,KAGxB,GAAiB,IAAbL,EAGF,OAFAE,EAAGI,MAAML,QACTA,EAAKM,QAAQ,sBAAuB,CAACN,IAAOO,eAAe,sBAAuB,CAACP,I,+BAIrF,SAASQ,EAAKC,G,KACDL,EAAPA,GAAeK,GAEnBN,EAAAA,MAASH,G,IAGTE,EAAO3B,OAAGwB,sBAASS,EAAAR,IAAnBzB,OACImC,qBAAAR,GACF3B,EAAAA,QAAOmC,sBAAP,CAAAV,IAAAO,eAAA,sBAAA,CAAAP,O,oBAiBJN,IAEIiB,EAEAA,E,aAqCJjB,EAASkB,GAAAA,MAAQC,mBAAA,EACfnB,EAAQoB,YAASD,GAAAA,OAAAA,EAAjB,KAAAE,OAAAC,EAAA,KAAAD,OAAApB,KA3CJD,EAASG,GAAAA,CAAsCH,GAAAuB,GAAA,IACnCC,SAENP,EAASQ,EAAQ5B,EAAA,GAAAA,EAAA,GAEjBoB,EAAYS,EAAO7B,EAAH,GAAoBA,EAAxC,G,IAIAqB,EAAKS,SAAA1B,GAAA2B,IAAA,aAAA,QAEL5B,sBACYC,WAGZ4B,EAAAA,SAAAA,GACE7B,GAAQ2B,EAASV,S,iCAQjBjB,EAAA,GAAA8B,YACA9B,EAAQ4B,IAAGE,aAAX,IAAAH,SAAAL,K,4CAUFI,GAASK,EAASC,OAChBd,IACAA,GAAKhB,EAAAS,MAAAX,Q,qHC3FTiC,EAAA,GA4BAjD,EAAAkD,EAAAC,EAGAnD,EAAAoD,EAAAH,EAGAjD,EAAAI,EAAA,SAAAZ,EAAA6D,EAAAC,GACAtD,EAAAuD,EAAA/D,EAAA6D,IACAG,OAAAC,eAAAjE,EAAA6D,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CtD,EAAAC,EAAA,SAAAT,GACA,oBAAAoE,QAAAA,OAAAC,aACAL,OAAAC,eAAAjE,EAAAoE,OAAAC,YAAA,CAAwDC,MAAA,WAExDN,OAAAC,eAAAjE,EAAA,aAAA,CAAiDsE,OAAA,KAQjD9D,EAAA+D,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAA9D,EAAA8D,IACA,EAAAE,EAAA,OAAAF,EACA,GAAA,EAAAE,GAAA,iBAAAF,GAAAA,GAAAA,EAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAV,OAAAW,OAAA,MAGA,GAFAnE,EAAAC,EAAAiE,GACAV,OAAAC,eAAAS,EAAA,UAAA,CAAyCR,YAAA,EAAAI,MAAAA,IACzC,EAAAE,GAAA,iBAAAF,EAAA,IAAA,IAAAM,KAAAN,EAAA9D,EAAAI,EAAA8D,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAlE,EAAAW,EAAA,SAAAlB,GACA,IAAA6D,EAAA7D,GAAAA,EAAAwE,WACA,WAA2B,OAAAxE,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAO,EAAAI,EAAAkD,EAAA,IAAAA,GACAA,GAIAtD,EAAAuD,EAAA,SAAAe,EAAAC,GAAsD,OAAAf,OAAAgB,UAAAC,eAAAC,KAAAJ,EAAAC,IAGtDvE,EAAA2E,EAAA,GAIA3E,EAAAA,EAAA4E,EAAA,IA9EA,SAAA5E,EAAA6E,GAGA,GAAA5B,EAAA4B,GACA,OAAA5B,EAAA4B,GAAArF,QAGA,IAAAC,EAAAwD,EAAA4B,GAAA,CACAC,EAAAD,EACAE,GAAA,EACAvF,QAAA,IAUA,OANA2D,EAAA0B,GAAAH,KAAAjF,EAAAD,QAAAC,EAAAA,EAAAD,QAAAQ,GAGAP,EAAAsF,GAAA,EAGAtF,EAAAD,Q,MAvBAyD","file":"foundation.util.motion.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.motion\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\nimport { Motion, Move } from '../../foundation.util.motion';\n\nFoundation.Motion = Motion;\nFoundation.Move = Move;\n\nexport { Foundation, Motion, Move };\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses   = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n  animateIn: function(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n\n  animateOut: function(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n}\n\nfunction Move(duration, elem, fn){\n  var anim, prog, start = null;\n  // console.log('called');\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts){\n    if(!start) start = ts;\n    // console.log(start, ts);\n    prog = ts - start;\n    fn.apply(elem);\n\n    if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n    else{\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n  anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n  element = $(element).eq(0);\n\n  if (!element.length) return;\n\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n  // Set up the animation\n  reset();\n\n  element\n    .addClass(animation)\n    .css('transition', 'none');\n\n  requestAnimationFrame(() => {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  });\n\n  // Start the animation\n  requestAnimationFrame(() => {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element\n      .css('transition', '')\n      .addClass(activeClass);\n  });\n\n  // Clean up the animation when it finishes\n  element.one(transitionend(element), finish);\n\n  // Hides the element (for out animations), resets the element, and runs a callback\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  }\n\n  // Resets transitions and removes motion-specific classes\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(`${initClass} ${activeClass} ${animation}`);\n  }\n}\n\nexport { Move, Motion };\n\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.motion.min.js","sources":["foundation.util.motion.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.motion\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 25);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.motion.js\":\n/*!******************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.motion.js ***!\n  \\******************************************************/\n/*! exports provided: Foundation, Motion, Move */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.motion */ \"./js/foundation.util.motion.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Motion\", function() { return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Move\", function() { return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Move\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Motion = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"];\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Move = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Move\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.motion.js\":\n/*!**************************************!*\\\n  !*** ./js/foundation.util.motion.js ***!\n  \\**************************************/\n/*! exports provided: Move, Motion */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Move\", function() { return Move; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Motion\", function() { return Motion; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nvar initClasses = ['mui-enter', 'mui-leave'];\nvar activeClasses = ['mui-enter-active', 'mui-leave-active'];\nvar Motion = {\n  animateIn: function animateIn(element, animation, cb) {\n    animate(true, element, animation, cb);\n  },\n  animateOut: function animateOut(element, animation, cb) {\n    animate(false, element, animation, cb);\n  }\n};\n\nfunction Move(duration, elem, fn) {\n  var anim,\n      prog,\n      start = null;\n\n  if (duration === 0) {\n    fn.apply(elem);\n    elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    return;\n  }\n\n  function move(ts) {\n    if (!start) start = ts;\n    prog = ts - start;\n    fn.apply(elem);\n\n    if (prog < duration) {\n      anim = window.requestAnimationFrame(move, elem);\n    } else {\n      window.cancelAnimationFrame(anim);\n      elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n    }\n  }\n\n  anim = window.requestAnimationFrame(move);\n}\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\n\n\nfunction animate(isIn, element, animation, cb) {\n  element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);\n  if (!element.length) return;\n  var initClass = isIn ? initClasses[0] : initClasses[1];\n  var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation\n\n  reset();\n  element.addClass(animation).css('transition', 'none');\n  requestAnimationFrame(function () {\n    element.addClass(initClass);\n    if (isIn) element.show();\n  }); // Start the animation\n\n  requestAnimationFrame(function () {\n    // will trigger the browser to synchronously calculate the style and layout\n    // also called reflow or layout thrashing\n    // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    element[0].offsetWidth;\n    element.css('transition', '').addClass(activeClass);\n  }); // Clean up the animation when it finishes\n\n  element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback\n\n  function finish() {\n    if (!isIn) element.hide();\n    reset();\n    if (cb) cb.apply(element);\n  } // Resets transitions and removes motion-specific classes\n\n\n  function reset() {\n    element[0].style.transitionDuration = 0;\n    element.removeClass(\"\".concat(initClass, \" \").concat(activeClass, \" \").concat(animation));\n  }\n}\n\n\n\n/***/ }),\n\n/***/ 25:\n/*!************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.motion.js ***!\n  \\************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.motion.js */\"./js/entries/plugins/foundation.util.motion.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.motion.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.motion.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__","Motion","Move","./js/foundation.util.motion.js","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","initClasses","activeClasses","animateIn","element","animation","cb","animate","animateOut","duration","elem","fn","anim","prog","start","apply","trigger","triggerHandler","requestAnimationFrame","move","ts","cancelAnimationFrame","isIn","initClass","activeClass","reset","style","transitionDuration","removeClass","concat","eq","length","addClass","css","show","offsetWidth","one","Object","hide","25","jquery","installedModules","m","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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"}
\ No newline at end of file
index c5c51c0443235ac84e391327ba13db7edf96e253..a2a7fa79ae6acba3c8deb135b7233f64d346eae3 100644 (file)
@@ -166,9 +166,10 @@ var Nest = {
         $item.addClass(hasSubClass);
 
         if (applyAria) {
-          $item.children('a:first').attr({
+          var firstItem = $item.children('a:first');
+          firstItem.attr({
             'aria-haspopup': true,
-            'aria-label': $item.children('a:first').text()
+            'aria-label': firstItem.attr('aria-label') || firstItem.text()
           }); // Note:  Drilldowns behave differently in how they hide, and so need
           // additional attributes.  We should look if this possibly over-generalized
           // utility (Nest) is appropriate when we rework menus in 6.4
index 22f5f1dd42a035b598ab3a9da0976678bbf8bd9a..6d0ffca53acf140ba529844b0472711be774f16a 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.util.nest.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.nest.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","Nest","Feather","menu","type","attr","find","items","subMenuClass","subItemClass","hasSubClass","applyAria","each","$item","$","$sub","children","length","addClass","text","parent","Burn","removeClass","removeAttr","css"],"mappings":"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","file":"foundation.util.nest.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.nest\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 26);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Nest } from '../../foundation.util.nest';\n\nFoundation.Nest = Nest;\n\nexport { Foundation, Nest };\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.util.nest.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.util.nest.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","Nest","Feather","menu","type","attr","find","items","subMenuClass","subItemClass","hasSubClass","applyAria","each","$item","$","$sub","children","length","addClass","firstItem","text","parent","Burn","removeClass","removeAttr","css"],"mappings":"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","file":"foundation.util.nest.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.nest\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 26);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Nest } from '../../foundation.util.nest';\n\nFoundation.Nest = Nest;\n\nexport { Foundation, Nest };\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          const firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
\ No newline at end of file
index cc54fd895a89f0356647973fc01092d564cf7420..3ca21ccdba43ee313879660874deb2be6e371b2c 100644 (file)
@@ -1,2 +1,2 @@
-!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("./foundation.core"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery"],n):"object"==typeof exports?exports["foundation.util.nest"]=n(require("./foundation.core"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.util.nest"]=n(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.jQuery))}(window,function(t,r){return u={"./foundation.core":function(e,n){e.exports=t},"./js/entries/plugins/foundation.util.nest.js":function(e,n,t){"use strict";t.r(n);var r=t("./foundation.core");t.d(n,"Foundation",function(){return r.Foundation});var o=t("./js/foundation.util.nest.js");t.d(n,"Nest",function(){return o.Nest}),r.Foundation.Nest=o.Nest},"./js/foundation.util.nest.js":function(e,n,t){"use strict";t.r(n),t.d(n,"Nest",function(){return r});var n=t("jquery"),a=t.n(n),r={Feather:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"zf";e.attr("role","menubar"),e.find("a").attr({role:"menuitem"});var e=e.find("li").attr({role:"none"}),r="is-".concat(t,"-submenu"),o="".concat(r,"-item"),u="is-".concat(t,"-submenu-parent"),i="accordion"!==t;e.each(function(){var e=a()(this),n=e.children("ul");n.length&&(e.addClass(u),i&&(e.children("a:first").attr({"aria-haspopup":!0,"aria-label":e.children("a:first").text()}),"drilldown"===t&&e.attr({"aria-expanded":!1})),n.addClass("submenu ".concat(r)).attr({"data-submenu":"",role:"menubar"}),"drilldown"===t&&n.attr({"aria-hidden":!0})),e.parent("[data-submenu]").length&&e.addClass("is-submenu-item ".concat(o))})},Burn:function(e,n){var t="is-".concat(n,"-submenu"),r="".concat(t,"-item"),n="is-".concat(n,"-submenu-parent");e.find(">li, > li > ul, .menu, .menu > li, [data-submenu] > li").removeClass("".concat(t," ").concat(r," ").concat(n," is-submenu-item submenu is-active")).removeAttr("data-submenu").css("display","")}}},26:function(e,n,t){e.exports=t("./js/entries/plugins/foundation.util.nest.js")},jquery:function(e,n){e.exports=r}},i={},o.m=u,o.c=i,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(n,e){if(1&e&&(n=o(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(o.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var r in n)o.d(t,r,function(e){return n[e]}.bind(null,r));return t},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="",o(o.s=26);function o(e){if(i[e])return i[e].exports;var n=i[e]={i:e,l:!1,exports:{}};return u[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}var u,i});
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","jquery"],t):"object"==typeof exports?exports["foundation.util.nest"]=t(require("./foundation.core"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.util.nest"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.jQuery))}(window,function(n,r){return u={"./foundation.core":function(e,t){e.exports=n},"./js/entries/plugins/foundation.util.nest.js":function(e,t,n){"use strict";n.r(t);var r=n("./foundation.core");n.d(t,"Foundation",function(){return r.Foundation});var o=n("./js/foundation.util.nest.js");n.d(t,"Nest",function(){return o.Nest}),r.Foundation.Nest=o.Nest},"./js/foundation.util.nest.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Nest",function(){return r});var t=n("jquery"),s=n.n(t),r={Feather:function(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"zf";e.attr("role","menubar"),e.find("a").attr({role:"menuitem"});var e=e.find("li").attr({role:"none"}),o="is-".concat(r,"-submenu"),u="".concat(o,"-item"),i="is-".concat(r,"-submenu-parent"),a="accordion"!==r;e.each(function(){var e,t=s()(this),n=t.children("ul");n.length&&(t.addClass(i),a&&((e=t.children("a:first")).attr({"aria-haspopup":!0,"aria-label":e.attr("aria-label")||e.text()}),"drilldown"===r&&t.attr({"aria-expanded":!1})),n.addClass("submenu ".concat(o)).attr({"data-submenu":"",role:"menubar"}),"drilldown"===r&&n.attr({"aria-hidden":!0})),t.parent("[data-submenu]").length&&t.addClass("is-submenu-item ".concat(u))})},Burn:function(e,t){var n="is-".concat(t,"-submenu"),r="".concat(n,"-item"),t="is-".concat(t,"-submenu-parent");e.find(">li, > li > ul, .menu, .menu > li, [data-submenu] > li").removeClass("".concat(n," ").concat(r," ").concat(t," is-submenu-item submenu is-active")).removeAttr("data-submenu").css("display","")}}},26:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.util.nest.js")},jquery:function(e,t){e.exports=r}},i={},o.m=u,o.c=i,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=26);function o(e){if(i[e])return i[e].exports;var t=i[e]={i:e,l:!1,exports:{}};return u[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}var u,i});
 //# sourceMappingURL=foundation.util.nest.min.js.map
index 99ba2f6f55253fc75c1629a8ced14a651b467fb5..aabf180eaf8622fae67c935f661003393f9600bc 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.nest.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.nest.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__","Foundation","Nest","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","Feather","menu","type","arguments","length","undefined","attr","find","role","items","subMenuClass","concat","subItemClass","hasSubClass","applyAria","each","$item","$","this","$sub","children","addClass","aria-haspopup","aria-label","text","aria-expanded","data-submenu","aria-hidden","parent","Burn","removeClass","removeAttr","css","installedModules","m","modules","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.util.nest.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.nest\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Nest } from '../../foundation.util.nest';\n\nFoundation.Nest = Nest;\n\nexport { Foundation, Nest };\n","import $ from 'jquery';\n\nconst Nest = {\n  Feather(menu, type = 'zf') {\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({'role': 'menuitem'});\n\n    var items = menu.find('li').attr({'role': 'none'}),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`,\n        applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n    items.each(function() {\n      var $item = $(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n        if(applyAria) {\n          $item.children('a:first').attr({\n            'aria-haspopup': true,\n            'aria-label': $item.children('a:first').text()\n          });\n          // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n          if(type === 'drilldown') {\n            $item.attr({'aria-expanded': false});\n          }\n        }\n        $sub\n          .addClass(`submenu ${subMenuClass}`)\n          .attr({\n            'data-submenu': '',\n            'role': 'menubar'\n          });\n        if(type === 'drilldown') {\n          $sub.attr({'aria-hidden': true});\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(`is-submenu-item ${subItemClass}`);\n      }\n    });\n\n    return;\n  },\n\n  Burn(menu, type) {\n    var //items = menu.find('li'),\n        subMenuClass = `is-${type}-submenu`,\n        subItemClass = `${subMenuClass}-item`,\n        hasSubClass = `is-${type}-submenu-parent`;\n\n    menu\n      .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n      .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n      .removeAttr('data-submenu').css('display', '');\n\n  }\n}\n\nexport {Nest};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 26);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.nest.min.js","sources":["foundation.util.nest.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.nest\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 26);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.nest.js\":\n/*!****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.nest.js ***!\n  \\****************************************************/\n/*! exports provided: Foundation, Nest */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.nest */ \"./js/foundation.util.nest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Nest\", function() { return _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__[\"Nest\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Nest = _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__[\"Nest\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.nest.js\":\n/*!************************************!*\\\n  !*** ./js/foundation.util.nest.js ***!\n  \\************************************/\n/*! exports provided: Nest */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Nest\", function() { return Nest; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\nvar Nest = {\n  Feather: function Feather(menu) {\n    var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'zf';\n    menu.attr('role', 'menubar');\n    menu.find('a').attr({\n      'role': 'menuitem'\n    });\n    var items = menu.find('li').attr({\n      'role': 'none'\n    }),\n        subMenuClass = \"is-\".concat(type, \"-submenu\"),\n        subItemClass = \"\".concat(subMenuClass, \"-item\"),\n        hasSubClass = \"is-\".concat(type, \"-submenu-parent\"),\n        applyAria = type !== 'accordion'; // Accordions handle their own ARIA attriutes.\n\n    items.each(function () {\n      var $item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n          $sub = $item.children('ul');\n\n      if ($sub.length) {\n        $item.addClass(hasSubClass);\n\n        if (applyAria) {\n          var firstItem = $item.children('a:first');\n          firstItem.attr({\n            'aria-haspopup': true,\n            'aria-label': firstItem.attr('aria-label') || firstItem.text()\n          }); // Note:  Drilldowns behave differently in how they hide, and so need\n          // additional attributes.  We should look if this possibly over-generalized\n          // utility (Nest) is appropriate when we rework menus in 6.4\n\n          if (type === 'drilldown') {\n            $item.attr({\n              'aria-expanded': false\n            });\n          }\n        }\n\n        $sub.addClass(\"submenu \".concat(subMenuClass)).attr({\n          'data-submenu': '',\n          'role': 'menubar'\n        });\n\n        if (type === 'drilldown') {\n          $sub.attr({\n            'aria-hidden': true\n          });\n        }\n      }\n\n      if ($item.parent('[data-submenu]').length) {\n        $item.addClass(\"is-submenu-item \".concat(subItemClass));\n      }\n    });\n    return;\n  },\n  Burn: function Burn(menu, type) {\n    var //items = menu.find('li'),\n    subMenuClass = \"is-\".concat(type, \"-submenu\"),\n        subItemClass = \"\".concat(subMenuClass, \"-item\"),\n        hasSubClass = \"is-\".concat(type, \"-submenu-parent\");\n    menu.find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li').removeClass(\"\".concat(subMenuClass, \" \").concat(subItemClass, \" \").concat(hasSubClass, \" is-submenu-item submenu is-active\")).removeAttr('data-submenu').css('display', '');\n  }\n};\n\n\n/***/ }),\n\n/***/ 26:\n/*!**********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.nest.js ***!\n  \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.nest.js */\"./js/entries/plugins/foundation.util.nest.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.nest.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.nest.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__","Nest","./js/foundation.util.nest.js","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","Feather","menu","type","arguments","length","undefined","attr","find","role","items","subMenuClass","concat","subItemClass","hasSubClass","applyAria","each","firstItem","$item","this","$sub","children","addClass","aria-haspopup","aria-label","text","aria-expanded","data-submenu","aria-hidden","parent","Burn","removeClass","removeAttr","css","26","jquery","installedModules","m","c","name","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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"}
\ No newline at end of file
index 2398bf26b032a7c83189a4b3b6412d697044d0a2..b8fe1c4006cdf301de42b1be0b8fb7115eb4928a 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.timer.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.timer.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_timer__WEBPACK_IMPORTED_MODULE_1__","Foundation","Timer","elem","options","cb","duration","timer","_this","this","nameSpace","Object","remain","clearTimeout","start","isPaused","restart","trigger","concat","pause","end","now","installedModules","m","modules","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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","file":"foundation.util.timer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.timer\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.timer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import { Foundation } from './foundation.core';\n\nimport { Timer } from '../../foundation.util.timer';\n\nFoundation.Timer = Timer;\n\nexport { Foundation, Timer };\n","import $ from 'jquery';\n\nfunction Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,//options is an object for easily adding features later.\n      nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function() {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  }\n\n  this.start = function() {\n    this.isPaused = false;\n    // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function(){\n      if(options.infinite){\n        _this.restart();//rerun the timer.\n      }\n      if (cb && typeof cb === 'function') { cb(); }\n    }, remain);\n    elem.trigger(`timerstart.zf.${nameSpace}`);\n  }\n\n  this.pause = function() {\n    this.isPaused = true;\n    //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(`timerpaused.zf.${nameSpace}`);\n  }\n}\n\nexport {Timer};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 27);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.timer.min.js","sources":["foundation.util.timer.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.timer\"] = factory(require(\"./foundation.core\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.timer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 27);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.timer.js\":\n/*!*****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.timer.js ***!\n  \\*****************************************************/\n/*! exports provided: Foundation, Timer */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_util_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.timer */ \"./js/foundation.util.timer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Timer\", function() { return _foundation_util_timer__WEBPACK_IMPORTED_MODULE_1__[\"Timer\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Timer = _foundation_util_timer__WEBPACK_IMPORTED_MODULE_1__[\"Timer\"];\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.timer.js\":\n/*!*************************************!*\\\n  !*** ./js/foundation.util.timer.js ***!\n  \\*************************************/\n/*! exports provided: Timer */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timer\", function() { return Timer; });\nfunction Timer(elem, options, cb) {\n  var _this = this,\n      duration = options.duration,\n      //options is an object for easily adding features later.\n  nameSpace = Object.keys(elem.data())[0] || 'timer',\n      remain = -1,\n      start,\n      timer;\n\n  this.isPaused = false;\n\n  this.restart = function () {\n    remain = -1;\n    clearTimeout(timer);\n    this.start();\n  };\n\n  this.start = function () {\n    this.isPaused = false; // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n\n    clearTimeout(timer);\n    remain = remain <= 0 ? duration : remain;\n    elem.data('paused', false);\n    start = Date.now();\n    timer = setTimeout(function () {\n      if (options.infinite) {\n        _this.restart(); //rerun the timer.\n\n      }\n\n      if (cb && typeof cb === 'function') {\n        cb();\n      }\n    }, remain);\n    elem.trigger(\"timerstart.zf.\".concat(nameSpace));\n  };\n\n  this.pause = function () {\n    this.isPaused = true; //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n\n    clearTimeout(timer);\n    elem.data('paused', true);\n    var end = Date.now();\n    remain = remain - (end - start);\n    elem.trigger(\"timerpaused.zf.\".concat(nameSpace));\n  };\n}\n\n\n\n/***/ }),\n\n/***/ 27:\n/*!***********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.timer.js ***!\n  \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.timer.js */\"./js/entries/plugins/foundation.util.timer.js\");\n\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.timer.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","modules","./foundation.core","./js/entries/plugins/foundation.util.timer.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","_foundation_util_timer__WEBPACK_IMPORTED_MODULE_1__","Timer","./js/foundation.util.timer.js","elem","options","cb","start","timer","_this","this","duration","nameSpace","Object","keys","data","remain","isPaused","restart","clearTimeout","Date","now","setTimeout","infinite","trigger","concat","pause","end","27","installedModules","m","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","i","l"],"mappings":"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"}
\ No newline at end of file
index b38d907c83b2068222a7014f44a6a2aa6fd8716f..2db204fa2c5819e06065aa00c10e2435728bb151 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.touch.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.touch.js","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core__WEBPACK_IMPORTED_MODULE_2__","Touch","init","$","Foundation","startPosX","startPosY","startTime","elapsedTime","startEvent","isMoving","this","removeEventListener","onTouchMove","onTouchEnd","didMoved","a","Event","e","tapEvent","spotSwipe","preventDefault","touches","pageX","Date","getTime","dir","dx","arguments","trigger","Object","assign","concat","onTouchStart","length","passive","SpotSwipe","version","enabled","document","documentElement","moveThreshold","key","_init","value","event","special","tap","setup","setupSpotSwipe","setupTouchHandler","fn","addTouch","each","i","el","handleTouch","touchstart","first","changedTouches","eventTypes","touchend","type","MouseEvent","simulatedEvent","screenY","clientX","clientY","createEvent","screenX","initMouseEvent","target","installedModules","m","modules","c","name","getter","o","defineProperty","enumerable","get","Symbol","toStringTag","t","mode","__esModule","ns","create","bind","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"foundation.util.touch.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.touch\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","import $ from 'jquery';\n\nimport { Touch } from '../../foundation.util.touch';\n\nTouch.init($);\n\nwindow.Foundation.Touch = Touch;\n\nexport { Foundation } from './foundation.core';\nexport { Touch };\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n    startPosY,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd);\n\n  // If the touch did not move, consider it as a \"tap\"\n  if (!didMoved) {\n    var tapEvent = $.Event('tap', startEvent || e);\n    $(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n  if(isMoving) {\n    var x = e.touches[0].pageX;\n    // var y = e.touches[0].pageY;\n    var dx = startPosX - x;\n    // var dy = startPosY - y;\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n    if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    }\n    // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n    if(dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      $(this)\n        .trigger($.Event('swipe', Object.assign({}, e)), dir)\n        .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n    }\n  }\n\n}\n\nfunction onTouchStart(e) {\n\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startPosY = e.touches[0].pageY;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\nfunction teardown() {\n  this.removeEventListener('touchstart', onTouchStart);\n}\n\nclass SpotSwipe {\n  constructor($) {\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n    this.$ = $;\n    this._init();\n  }\n\n  _init() {\n    var $ = this.$;\n    $.event.special.swipe = { setup: init };\n    $.event.special.tap = { setup: init };\n\n    $.each(['left', 'up', 'down', 'right'], function () {\n      $.event.special[`swipe${this}`] = { setup: function(){\n        $(this).on('swipe', $.noop);\n      } };\n    });\n  }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\nTouch.setupSpotSwipe = function($) {\n  $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function($) {\n  $.fn.addTouch = function(){\n    this.each(function(i,el){\n      $(el).bind('touchstart touchmove touchend touchcancel', function(event)  {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function(event){\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n            touchstart: 'mousedown',\n            touchmove: 'mousemove',\n            touchend: 'mouseup'\n          },\n          type = eventTypes[event.type],\n          simulatedEvent\n        ;\n\n      if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n      }\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function ($) {\n\n  if(typeof($.spotSwipe) === 'undefined') {\n    Touch.setupSpotSwipe($);\n    Touch.setupTouchHandler($);\n  }\n};\n\nexport {Touch};\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.touch.min.js","sources":["foundation.util.touch.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.touch\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 28);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.touch.js\":\n/*!*****************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.touch.js ***!\n  \\*****************************************************/\n/*! exports provided: Foundation, Touch */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.util.touch */ \"./js/foundation.util.touch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Touch\", function() { return _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"]; });\n\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_2__[\"Foundation\"]; });\n\n\n\n_foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\nwindow.Foundation.Touch = _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"];\n\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.touch.js\":\n/*!*************************************!*\\\n  !*** ./js/foundation.util.touch.js ***!\n  \\*************************************/\n/*! exports provided: Touch */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Touch\", function() { return Touch; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nvar Touch = {};\nvar startPosX,\n    startTime,\n    elapsedTime,\n    startEvent,\n    isMoving = false,\n    didMoved = false;\n\nfunction onTouchEnd(e) {\n  this.removeEventListener('touchmove', onTouchMove);\n  this.removeEventListener('touchend', onTouchEnd); // If the touch did not move, consider it as a \"tap\"\n\n  if (!didMoved) {\n    var tapEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event('tap', startEvent || e);\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger(tapEvent);\n  }\n\n  startEvent = null;\n  isMoving = false;\n  didMoved = false;\n}\n\nfunction onTouchMove(e) {\n  if (true === jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.preventDefault) {\n    e.preventDefault();\n  }\n\n  if (isMoving) {\n    var x = e.touches[0].pageX; // var y = e.touches[0].pageY;\n\n    var dx = startPosX - x; // var dy = startPosY - y;\n\n    var dir;\n    didMoved = true;\n    elapsedTime = new Date().getTime() - startTime;\n\n    if (Math.abs(dx) >= jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.moveThreshold && elapsedTime <= jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.timeThreshold) {\n      dir = dx > 0 ? 'left' : 'right';\n    } // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n    //   dir = dy > 0 ? 'down' : 'up';\n    // }\n\n\n    if (dir) {\n      e.preventDefault();\n      onTouchEnd.apply(this, arguments);\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event('swipe', Object.assign({}, e)), dir).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(\"swipe\".concat(dir), Object.assign({}, e)));\n    }\n  }\n}\n\nfunction onTouchStart(e) {\n  if (e.touches.length === 1) {\n    startPosX = e.touches[0].pageX;\n    startEvent = e;\n    isMoving = true;\n    didMoved = false;\n    startTime = new Date().getTime();\n    this.addEventListener('touchmove', onTouchMove, {\n      passive: true === jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.preventDefault\n    });\n    this.addEventListener('touchend', onTouchEnd, false);\n  }\n}\n\nfunction init() {\n  this.addEventListener && this.addEventListener('touchstart', onTouchStart, {\n    passive: true\n  });\n} // function teardown() {\n//   this.removeEventListener('touchstart', onTouchStart);\n// }\n\n\nvar SpotSwipe = /*#__PURE__*/function () {\n  function SpotSwipe() {\n    _classCallCheck(this, SpotSwipe);\n\n    this.version = '1.0.0';\n    this.enabled = 'ontouchstart' in document.documentElement;\n    this.preventDefault = false;\n    this.moveThreshold = 75;\n    this.timeThreshold = 200;\n\n    this._init();\n  }\n\n  _createClass(SpotSwipe, [{\n    key: \"_init\",\n    value: function _init() {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special.swipe = {\n        setup: init\n      };\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special.tap = {\n        setup: init\n      };\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(['left', 'up', 'down', 'right'], function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special[\"swipe\".concat(this)] = {\n          setup: function setup() {\n            jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).on('swipe', jquery__WEBPACK_IMPORTED_MODULE_0___default.a.noop);\n          }\n        };\n      });\n    }\n  }]);\n\n  return SpotSwipe;\n}();\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and    *\n * setupTouchHandler should be idempotent,          *\n * because they directly replace functions &        *\n * values, and do not add event handlers directly.  *\n ****************************************************/\n\n\nTouch.setupSpotSwipe = function () {\n  jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe = new SpotSwipe(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n};\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\n\n\nTouch.setupTouchHandler = function () {\n  jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.addTouch = function () {\n    this.each(function (i, el) {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).bind('touchstart touchmove touchend touchcancel', function (event) {\n        //we pass the original event object because the jQuery event\n        //object is normalized to w3c specs and does not provide the TouchList\n        handleTouch(event);\n      });\n    });\n\n    var handleTouch = function handleTouch(event) {\n      var touches = event.changedTouches,\n          first = touches[0],\n          eventTypes = {\n        touchstart: 'mousedown',\n        touchmove: 'mousemove',\n        touchend: 'mouseup'\n      },\n          type = eventTypes[event.type],\n          simulatedEvent;\n\n      if ('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n        simulatedEvent = new window.MouseEvent(type, {\n          'bubbles': true,\n          'cancelable': true,\n          'screenX': first.screenX,\n          'screenY': first.screenY,\n          'clientX': first.clientX,\n          'clientY': first.clientY\n        });\n      } else {\n        simulatedEvent = document.createEvent('MouseEvent');\n        simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0\n        /*left*/\n        , null);\n      }\n\n      first.target.dispatchEvent(simulatedEvent);\n    };\n  };\n};\n\nTouch.init = function () {\n  if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe === 'undefined') {\n    Touch.setupSpotSwipe(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n    Touch.setupTouchHandler(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 28:\n/*!***********************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.touch.js ***!\n  \\***********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.touch.js */\"./js/entries/plugins/foundation.util.touch.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.touch.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./js/entries/plugins/foundation.util.touch.js","__webpack_exports__","__webpack_require__","r","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__","d","_foundation_core__WEBPACK_IMPORTED_MODULE_2__","init","a","Foundation","Touch","./js/foundation.util.touch.js","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","startPosX","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","e","this","removeEventListener","onTouchMove","tapEvent","Event","trigger","dx","dir","spotSwipe","preventDefault","x","touches","pageX","Date","getTime","Math","abs","moveThreshold","timeThreshold","apply","arguments","assign","concat","onTouchStart","addEventListener","passive","SpotSwipe","instance","Constructor","TypeError","_classCallCheck","version","enabled","document","documentElement","_init","protoProps","staticProps","value","event","special","swipe","setup","tap","each","on","noop","prototype","setupSpotSwipe","setupTouchHandler","fn","addTouch","el","bind","handleTouch","simulatedEvent","first","changedTouches","type","touchstart","touchmove","touchend","MouseEvent","bubbles","cancelable","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","28","jquery","installedModules","m","c","name","getter","o","get","Symbol","toStringTag","t","mode","__esModule","ns","create","object","property","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file
index d9e553a70a25a2507583a11928cb0bcf48edf36b..1d6973bdb465e7455d15410cf79ab1382de09f71 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/js/entries/plugins/foundation.util.triggers.js","webpack://__FOUNDATION_EXTERNAL__.[name]/js/foundation.util.triggers.js","webpack:/__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","__webpack_require__","r","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","jquery__WEBPACK_IMPORTED_MODULE_1__","jquery__WEBPACK_IMPORTED_MODULE_1___default","n","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__","Triggers","init","$","Foundation","triggers","el","type","data","split","forEach","id","concat","MutationObserver","prefixes","i","length","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","trigger","listener","timer","args","Array","prototype","slice","call","arguments","off","clearTimeout","setTimeout","apply","openListener","this","closeListener","toggleListener","closeableListener","e","animation","stopPropagation","Motion","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","on","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","attr","scrollListener","closeMeListener","pluginId","plugin","namespace","not","_this","addClosemeListener","pluginName","yetiBoxes","plugNames","push","_typeof","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","target","attributeName","pageYOffset","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","onLoad","a","triggersInitialized","IHearYou","installedModules","m","modules","c","getter","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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","file":"foundation.util.triggers.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.triggers\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.triggers\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;","import { Foundation } from './foundation.core';\nimport $ from 'jquery';\n\nimport { Triggers } from '../../foundation.util.triggers';\nTriggers.init($, Foundation);\n\nexport { Foundation, Triggers };\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n  for (var i=0; i < prefixes.length; i++) {\n    if (`${prefixes[i]}MutationObserver` in window) {\n      return window[`${prefixes[i]}MutationObserver`];\n    }\n  }\n  return false;\n}());\n\nconst triggers = (el, type) => {\n  el.data(type).split(' ').forEach(id => {\n    $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n}\n\nTriggers.Listeners.Basic  = {\n  openListener: function() {\n    triggers($(this), 'open');\n  },\n  closeListener: function() {\n    let id = $(this).data('close');\n    if (id) {\n      triggers($(this), 'close');\n    }\n    else {\n      $(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function() {\n    let id = $(this).data('toggle');\n    if (id) {\n      triggers($(this), 'toggle');\n    } else {\n      $(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function(e) {\n    let animation = $(this).data('closable');\n\n    // Only close the first closable element. See https://git.io/zf-7833\n    e.stopPropagation();\n\n    if(animation !== ''){\n      Motion.animateOut($(this), animation, function() {\n        $(this).trigger('closed.zf');\n      });\n    }else{\n      $(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function() {\n    let id = $(this).data('toggle-focus');\n    $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n  }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global  = {\n  resizeListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('resizeme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a resize event\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function($nodes) {\n    if(!MutationObserver){//fallback for IE 9\n      $nodes.each(function(){\n        $(this).triggerHandler('scrollme.zf.trigger');\n      });\n    }\n    //trigger all listening elements and signal a scroll event\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function(e, pluginId){\n    let plugin = e.namespace.split('.')[0];\n    let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n    plugins.each(function(){\n      let _this = $(this);\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n  var yetiBoxes = $('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if(pluginName){\n    if(typeof pluginName === 'string'){\n      plugNames.push(pluginName);\n    }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n      plugNames = plugNames.concat(pluginName);\n    }else{\n      console.error('Plugin names must be strings');\n    }\n  }\n  if(yetiBoxes.length){\n    let listeners = plugNames.map((name) => {\n      return `closeme.zf.${name}`;\n    }).join(' ');\n\n    $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  let timer, args = Array.prototype.slice.call(arguments, 3);\n  $(window).off(trigger).on(trigger, function(e) {\n    if (timer) { clearTimeout(timer); }\n    timer = setTimeout(function(){\n      listener.apply(null, args);\n    }, debounce || 10);//default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n  let $nodes = $('[data-resize]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n  let $nodes = $('[data-scroll]');\n  if($nodes.length){\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n  if(!MutationObserver){ return false; }\n  let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n  //element callback\n  var listeningElementsMutation = function (mutationRecordsList) {\n    var $target = $(mutationRecordsList[0].target);\n\n    //trigger the event handler for the element depending on type\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n         }\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n    }\n  }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n  let $document = $(document);\n\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n  let $document = $(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener();\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n  onLoad($(window), function () {\n    if ($.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      $.triggersInitialized = true;\n    }\n  });\n\n  if(Foundation) {\n    Foundation.Triggers = Triggers;\n    // Legacy included to be backwards compatible for now.\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n  }\n}\n\nexport {Triggers};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 29);\n"]}
\ No newline at end of file
+{"version":3,"file":"foundation.util.triggers.min.js","sources":["foundation.util.triggers.min.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.util.motion\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.util.triggers\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.triggers\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 29);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n  \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.util.motion\":\n/*!********************************************************************************************************************************************************************************************!*\\\n  !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n  \\********************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.util.triggers.js\":\n/*!********************************************************!*\\\n  !*** ./js/entries/plugins/foundation.util.triggers.js ***!\n  \\********************************************************/\n/*! exports provided: Foundation, Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../foundation.util.triggers */ \"./js/foundation.util.triggers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__[\"Triggers\"]; });\n\n\n\n\n_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_1___default.a, _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]);\n\n\n/***/ }),\n\n/***/ \"./js/foundation.util.triggers.js\":\n/*!****************************************!*\\\n  !*** ./js/foundation.util.triggers.js ***!\n  \\****************************************/\n/*! exports provided: Triggers */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Triggers\", function() { return Triggers; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ \"./foundation.util.motion\");\n/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\nvar MutationObserver = function () {\n  var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n  for (var i = 0; i < prefixes.length; i++) {\n    if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n      return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n    }\n  }\n\n  return false;\n}();\n\nvar triggers = function triggers(el, type) {\n  el.data(type).split(' ').forEach(function (id) {\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n  });\n};\n\nvar Triggers = {\n  Listeners: {\n    Basic: {},\n    Global: {}\n  },\n  Initializers: {}\n};\nTriggers.Listeners.Basic = {\n  openListener: function openListener() {\n    triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n  },\n  closeListener: function closeListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n    }\n  },\n  toggleListener: function toggleListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n    if (id) {\n      triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n    }\n  },\n  closeableListener: function closeableListener(e) {\n    var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n    e.stopPropagation();\n\n    if (animation !== '') {\n      _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n      });\n    } else {\n      jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n    }\n  },\n  toggleFocusListener: function toggleFocusListener() {\n    var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n  }\n}; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\nTriggers.Initializers.addOpenListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n  $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}; // Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\nTriggers.Initializers.addCloseListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n  $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\nTriggers.Initializers.addToggleListener = function ($elem) {\n  $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n  $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\nTriggers.Initializers.addCloseableListener = function ($elem) {\n  $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n  $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\nTriggers.Initializers.addToggleFocusListener = function ($elem) {\n  $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n  $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}; // More Global/complex listeners and triggers\n\n\nTriggers.Listeners.Global = {\n  resizeListener: function resizeListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a resize event\n\n\n    $nodes.attr('data-events', \"resize\");\n  },\n  scrollListener: function scrollListener($nodes) {\n    if (!MutationObserver) {\n      //fallback for IE 9\n      $nodes.each(function () {\n        jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n      });\n    } //trigger all listening elements and signal a scroll event\n\n\n    $nodes.attr('data-events', \"scroll\");\n  },\n  closeMeListener: function closeMeListener(e, pluginId) {\n    var plugin = e.namespace.split('.')[0];\n    var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n    plugins.each(function () {\n      var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n      _this.triggerHandler('close.zf.trigger', [_this]);\n    });\n  }\n}; // Global, parses whole document.\n\nTriggers.Initializers.addClosemeListener = function (pluginName) {\n  var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n      plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n  if (pluginName) {\n    if (typeof pluginName === 'string') {\n      plugNames.push(pluginName);\n    } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n      plugNames = plugNames.concat(pluginName);\n    } else {\n      console.error('Plugin names must be strings');\n    }\n  }\n\n  if (yetiBoxes.length) {\n    var listeners = plugNames.map(function (name) {\n      return \"closeme.zf.\".concat(name);\n    }).join(' ');\n    jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n  }\n};\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n  var timer,\n      args = Array.prototype.slice.call(arguments, 3);\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n    if (timer) {\n      clearTimeout(timer);\n    }\n\n    timer = setTimeout(function () {\n      listener.apply(null, args);\n    }, debounce || 10); //default time to emit scroll event\n  });\n}\n\nTriggers.Initializers.addResizeListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addScrollListener = function (debounce) {\n  var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n  if ($nodes.length) {\n    debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n  }\n};\n\nTriggers.Initializers.addMutationEventsListener = function ($elem) {\n  if (!MutationObserver) {\n    return false;\n  }\n\n  var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n  var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n    var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n    switch (mutationRecordsList[0].type) {\n      case \"attributes\":\n        if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n        }\n\n        if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n          $target.triggerHandler('resizeme.zf.trigger', [$target]);\n        }\n\n        if (mutationRecordsList[0].attributeName === \"style\") {\n          $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n          $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        }\n\n        break;\n\n      case \"childList\":\n        $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n        $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n        break;\n\n      default:\n        return false;\n      //nothing\n    }\n  };\n\n  if ($nodes.length) {\n    //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n    for (var i = 0; i <= $nodes.length - 1; i++) {\n      var elementObserver = new MutationObserver(listeningElementsMutation);\n      elementObserver.observe($nodes[i], {\n        attributes: true,\n        childList: true,\n        characterData: false,\n        subtree: true,\n        attributeFilter: [\"data-events\", \"style\"]\n      });\n    }\n  }\n};\n\nTriggers.Initializers.addSimpleListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addOpenListener($document);\n  Triggers.Initializers.addCloseListener($document);\n  Triggers.Initializers.addToggleListener($document);\n  Triggers.Initializers.addCloseableListener($document);\n  Triggers.Initializers.addToggleFocusListener($document);\n};\n\nTriggers.Initializers.addGlobalListeners = function () {\n  var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n  Triggers.Initializers.addMutationEventsListener($document);\n  Triggers.Initializers.addResizeListener(250);\n  Triggers.Initializers.addScrollListener();\n  Triggers.Initializers.addClosemeListener();\n};\n\nTriggers.init = function (__, Foundation) {\n  Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n    if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n      Triggers.Initializers.addSimpleListeners();\n      Triggers.Initializers.addGlobalListeners();\n      jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n    }\n  });\n\n  if (Foundation) {\n    Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n    Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n  }\n};\n\n\n\n/***/ }),\n\n/***/ 29:\n/*!**************************************************************!*\\\n  !*** multi ./js/entries/plugins/foundation.util.triggers.js ***!\n  \\**************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.triggers.js */\"./js/entries/plugins/foundation.util.triggers.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n  !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n  \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.util.triggers.js.map"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_util_motion__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","./foundation.core","./foundation.util.motion","./js/entries/plugins/foundation.util.triggers.js","__webpack_exports__","__webpack_require__","r","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","d","jquery__WEBPACK_IMPORTED_MODULE_1__","jquery__WEBPACK_IMPORTED_MODULE_1___default","n","_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__","init","a","./js/foundation.util.triggers.js","Triggers","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__","_typeof","obj","Symbol","iterator","constructor","prototype","triggers","el","type","data","split","forEach","id","concat","MutationObserver","prefixes","i","length","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","trigger","listener","timer","args","Array","slice","call","arguments","on","clearTimeout","setTimeout","apply","openListener","this","closeListener","toggleListener","closeableListener","e","animation","stopPropagation","animateOut","fadeOut","toggleFocusListener","triggerHandler","addOpenListener","$elem","off","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","each","attr","scrollListener","closeMeListener","pluginId","plugin","namespace","not","_this","addClosemeListener","pluginName","yetiBoxes","plugNames","push","console","error","listeners","map","name","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","$target","target","attributeName","pageYOffset","closest","find","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","document","addGlobalListeners","__","Foundation","Object","triggersInitialized","IHearYou","29","jquery","installedModules","m","c","getter","o","defineProperty","enumerable","get","toStringTag","value","t","mode","__esModule","ns","create","key","bind","object","property","hasOwnProperty","p","s","moduleId","l"],"mappings":"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"}
\ No newline at end of file